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/**
原文地址:https://www.cnblogs.com/ibcdwx/p/14441281.html