使用zuul做边缘服务
Zuul
Zuul是Netflix的基于JVM的路由器和服务器端负载均衡器,可以使用Zuul进行以下操作:
- 洞察
- 压力测试
- 金丝雀测试
- 动态路由
- 服务迁移
- 负载脱落
- 安全
- 主动/被动流量管理
本小节主要介绍在SpringBoot应用中使用Zuul做API Gateway。关于Zuul的详细功能介绍请参考文档。
Zuul做API Gateway,即建立一个Zuul Proxy应用,在该Proxy应用中统一定义所有的微服务访问入口,通过使用不同的前缀(stripped)来区分各个微服务。本小节通过建立一个ZuulProxy SpringBoot应用来演示Zuul的API Gateway功能。
本小节介绍的ZuulProxy和ZuulServer等demo都是基于SpringBoot和ServiceComb框架的应用,具体请参考在Spring Boot中使用java chassis。
- 步骤 1在pom文件中添加依赖:
- 步骤 2在SpringBoot主类添加注解:
- 步骤 3在application.yml文件中定义路由策略:
红色的配置项表示可以根据实际开发环境进行配置。关于zuul.routers的路由策略的详细定义规则,请参考官方文献:,可更细粒度地对路由进行控制。
- 步骤 4在microservice.yaml定义微服务属性:
- 步骤 5 Run ZuulMain Application
在使用zuul做的API Gateway前,首先要启动在zuul.routers中定义的微服务提供者。
开发服务提供者,开按流程请参考3 开发服务提供者。在微服务microservice.yaml文件中需注意以下两点:
APPLICATION_ID需要于zuul proxy中定义的保持一致。
示例如下:
API Gateway的访问入口为:http://127.0.0.1:8754,所有在zuul.routers中定义的服务都可通过这个访问入口进行代理访问,访问规则如下:
这表示,Http调用http://127.0.0.1:8754/myServer/***,会转到discoveryServer服务(例如:”/myServer/101”跳转到discoveryServer 服务下的”/101”)