@Spring Cloud | NO.3 - 路由器和过滤器 Zuul
什么是Zuul
路由是微服务体系结构的一个组成部分。例如,/
可以映射到您的Web应用程序,/api/users
映射到用户服务,并将/api/shop
映射到商店服务。Zuul是Netflix的基于JVM的路由器和服务器端负载均衡器。
Netflix使用Zuul进行以下操作:
- 认证
- 洞察
- 压力测试
- 金丝雀测试
- 动态路由
- 服务迁移
- 负载脱落
- 安全
- 静态响应处理
- 主动/主动流量管理
Zuul的规则引擎允许基本上写任何JVM语言编写规则和过滤器,内置Java和Groovy。
以上内容官方直译
项目集成之Zuul
1. pom.xml引入Maven依赖
<parent> <!-- spring boot --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <!-- netflix-eureka-client--> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <!-- netflix-zuul --> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <!-- spring cloud --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Finchley RC1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
注意:
Zuul
引入的Maven依赖中artifactId
有变动,SpringBoot2.0之前
的版本为spring-cloud-starter-zuul
2. 添加注解支持
@EnableZuulProxy @EnableDiscoveryClient @SpringBootApplication public class ZuulServiceApplication { public static void main(String[] args) { SpringApplication.run(ServiceZuulApplication.class, args); } }
3. application.yml
配置
eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/ server: port: 8769 spring: application: name: service-zuul zuul: routes: api-a: path: /api-a/** serviceId: service-ribbon api-b: path: /api-b/** serviceId: service-feign
将名称为service-zuul
的Zuul
服务注册到注册中心,端口为8769
配置路由相关参数,将path属性值
对应的地址转发
给服务名称为serviceId属性值
的服务
4. 运行概览图
启动一个服务注册中心,两个服务提供者,一个服务消费者(Ribbon),一个服务消费者(Feign),一个Zuul路由服务
访问 http://localhost:8769/api-a/h...,浏览器显示:
hi forezp,i am from port:8762
访问 http://localhost:8769/api-b/h...,浏览器显示:
hi forezp,i am from port:8762
附加说明
- 本文参考资料
相关推荐
baobaozai 2020-08-15
莫问前程 2020-08-02
liuqipao 2020-05-26
84397110 2020-05-18
85354290 2020-04-06
jiangtie 2019-12-20
isHooky 2019-12-13
whutjiajiao 2019-12-12
红雪中国 2019-12-12
范群松 2019-12-14
zllbirdonland 2019-12-09
PpikachuP 2019-11-19
csdnyasin 2019-11-10
RogerCoderLife 2019-11-04
安得情怀似旧时 2019-10-29
Guyuebingchuan 2017-08-29
liwenbocsu 2019-06-06
whileinsist 2019-01-31
夜影风个人空间 2019-04-02