全面的讲解SpringCloud中Zuul网关原理及其配置,看它就够了
Zuul是spring cloud中的微服务网关 。 网关:是一个网络整体系统中的前置门户入口 。 请求首先通过网关 , 进行路径的路由 , 定位到具体的服务节点上 。
Zuul是一个微服务网关 , 首先是一个微服务 。 也是会在Eureka注册中心中进行服务的注册和发现 。 也是一个网关 , 请求应该通过Zuul来进行路由 。
Zuul网关不是必要的 。 是推荐使用的 。
使用Zuul , 一般在微服务数量较多(多于10个)的时候推荐使用 , 对服务的管理有严格要求的时候推荐使用 , 当微服务权限要求严格的时候推荐使用 。
一、Zuul网关的作用网关有以下几个作用:
- 统一入口:未全部为服务提供一个唯一的入口 , 网关起到外部和内部隔离的作用 , 保障了后台服务的安全性 。
- 鉴权校验:识别每个请求的权限 , 拒绝不符合要求的请求 。
- 动态路由:动态的将请求路由到不同的后端集群中 。
- 减少客户端与服务端的耦合:服务可以独立发展 , 通过网关层来做映射 。
文章插图
二、Zuul网关的应用1、网关访问方式通过zuul访问服务的 , URL地址默认格式为:http://zuulHostIp:port/要访问的服务名称/服务中的URL
【全面的讲解SpringCloud中Zuul网关原理及其配置,看它就够了】服务名称:properties配置文件中的spring.application.name 。
服务的URL:就是对应的服务对外提供的URL路径监听 。
2、网关依赖注入
org.springframework.cloud spring-cloud-starter-eurekaorg.springframework.cloud spring-cloud-starter-zuulorg.springframework.retry spring-retry
3、网关启动器/** * @EnableZuulProxy - 开启Zuul网关 。*当前应用是一个Zuul微服务网关 。 会在Eureka注册中心中注册当前服务 。 并发现其他的服务 。*Zuul需要的必要依赖是spring-cloud-starter-zuul 。*/@SpringBootApplication@EnableZuulProxypublic class ZuulApplication {public static void main(String[] args) {SpringApplication.run(ZuulApplication.class, args);}}
4、网关全局变量配置4.1 URL路径匹配# URL pattern# 使用路径方式匹配路由规则 。 # 参数key结构:zuul.routes.customName.path=xxx# 用于配置路径匹配规则 。 # 其中customName自定义 。 通常使用要调用的服务名称 , 方便后期管理# 可使用的通配符有: * ** ?# ? 单个字符# * 任意多个字符 , 不包含多级路径# ** 任意多个字符 , 包含多级路径zuul.routes.eureka-application-service.path=/api/**# 参数key结构:zuul.routes.customName.url=xxx# url用于配置符合path的请求路径路由到的服务地址 。 zuul.routes.eureka-application-service.url=
4.2 服务名称匹配# service id pattern 通过服务名称路由# key结构 :zuul.routes.customName.path=xxx# 路径匹配规则zuul.routes.eureka-application-service.path=/api/**# key结构 :zuul.routes.customName.serviceId=xxx# serviceId用于配置符合path的请求路径路由到的服务名称 。 zuul.routes.eureka-application-service.serviceId=eureka-application-service
服务名称匹配也可以使用简化的配置:# simple service id pattern 简化配置方案# 如果只配置path , 不配置serviceId 。 则customName相当于服务名称 。 # 符合path的请求路径直接路由到customName对应的服务上 。 zuul.routes.eureka-application-service.path=/api/**
4.3 路由排除配置# ignored service id pattern# 配置不被zuul管理的服务列表 。 多个服务名称使用逗号','分隔 。 # 配置的服务将不被zuul代理 。 zuul.ignored-services=eureka-application-service# 此方式相当于给所有新发现的服务默认排除zuul网关访问方式 , 只有配置了路由网关的服务才可以通过zuul网关访问# 通配方式配置排除列表 。 zuul.ignored-services=*# 使用服务名称匹配规则配置路由列表 , 相当于只对已配置的服务提供网关代理 。 zuul.routes.eureka-application-service.path=/api/**# 通配方式配置排除网关代理路径 。 所有符合ignored-patterns的请求路径都不被zuul网关代理 。 zuul.ignored-patterns=/**/test/**zuul.routes.eureka-application-service.path=/api/**
4.4 路由前缀配置# prefix URL pattern 前缀路由匹配# 配置请求路径前缀 , 所有基于此前缀的请求都由zuul网关提供代理 。 zuul.prefix=/api# 使用服务名称匹配方式配置请求路径规则 。 # 这里的配置将为:http://ip:port/api/appservice/**的请求提供zuul网关代理 , 可以将要访问服务进行前缀分类 。 # 并将请求路由到服务eureka-application-service中 。 zuul.routes.eureka-application-service.path=/appservice/**
- 智能手机市场|华为再拿第一!27%的份额领跑全行业,苹果8%排在第四名!
- 对手|一加9Pro全面曝光,或是小米11最大对手
- 同比|亚马逊公布“剁手节”创纪录战绩:第三方卖家全球销售额超48亿美元 同比大增60%
- 产业|前瞻生鲜电商产业全球周报第67期:发力社区团购!京东内部筹划“京东优选”
- 零部件|马瑞利发力电动产品,全球第七大零部件供应商在转型
- 程序|2020全景生态流量秋季大报告:TOP100APP超半数布局小程序,全景流量重塑行业竞争新格局
- V2X|V2X:确保未来道路交通数据交换的安全性
- 定制|业绩宝APP创始人戴宏伟:依靠人工智能主动获客,打通全链路
- 覆盖|iPhone13Pro概念机:机身正面被屏幕全覆盖,库克想搞事情?
- 巨头|“社区薇娅”都不够用了 一线互联网巨头全员下场卖菜