springcloud-GateWay配置动态路由
之前学习GateWay进行请求的转发,URI是固定的,也就是在单机的情况下。不过实际开发中,服务很多时候是集群,因此URI就不能写固定的IP了。而动态路由的方式能够实现对集群的负载均衡转发。
动态路由:说简单点,根据请求地址,从注册中心选择 合适的服务实例的列表,根据负载均衡的策略,从中选择一个实例进行转发
下面动态路由实现步骤:
1.依赖。由于注册中心使用的是eureka,gateway需要注册到eureka并且要获取eureka上的其他服务的注册信息,需要下面的依赖:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
2. yml配置:
spring: application: name: cloud-gateway cloud: gateway: discovery: locator: enabled: true #开启注册中心路由功能,实现动态路由 # lower-case-service-id: true routes: - id: payment_routh #最好是服务名 uri: lb://cloud-payment-service #固定写法: lb://服务名;lb表示启用gateway的负载均衡功能
predicates: - Path=/payment/get/** - id: payment_routh2 uri: lb://cloud-payment-service predicates: - Path=/payment/myrule/**