文章目录
Spring Cloud 学习 | - 09 -Zuul路由网关(二)
学习
Spring Cloud
之路,文中Spring Boot
版本为2.1.3.RELEASE
,Spring Cloud
版本为Greenwich.SR1
。因能力有限,难免会有不足或者错误之处,还望不吝指正,谢!
在上篇 Spring Cloud 学习 | - 08 -Zuul路由网关(一)的路由规则中,路径对应的服务地址是写死的。如果同一服务有多个实例的话,这样显然就不合适了。
我们应该根据服务的名称,去Eureka注册中心查找 服务对应的所有实例列表,然后进行动态路由才对。
开始着手!
1. 添加依赖
在上一篇的spring-cloud-zuul服务中添加如下依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2. 开启服务发现
在主启动类上开启服务发现功能:@EnableDiscoveryClient
:
@SpringBootApplication
// 开启Zuul的网关功能
@EnableZuulProxy
@EnableDiscoveryClient
public class SpringCloudZuulApplication {
public static void main(String[] args) {
SpringApplication.run(SpringCloudZuulApplication.class, args);
}
}
3. 编写配置
3.1 添加eureka配置,获取注册信息
application.yml
:
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka
registry-fetch-interval-seconds: 5 # 获取服务列表的周期 5s
instance:
prefer-ip-address: true
3.2 修改zuul配置
application.yml
:
zuul:
routes:
user-provider: # 这里是路由id,自定义即可
path: /user-provider/** # 这里是映射路径
# url: http://localhost:8090 # 映射路径对应的实际url地址
serviceId: user-provider # 指定服务名称
4. 启动测试
- 先启动Eureka注册中心;
- 再启动user-provider服务;
- 启动spring-cloud-zuul服务;
- 访问
http://localhost:9090/user-provider/user/list
: