gateway整合eureka实现路由

介绍

创建gateway子工程(配置文件方式) 文中介绍的路由,是写死的,当部署ums集群后,路由只访问一个ums微服务

本文将gateway整合eureka实现路由,gateway 从 eureka server 获取 ums 服务列表,然后通过客户端负载均衡策略,选出一台ums微服务,进行调用

修改application.yml文件

修改gateway工程的application.yml文件:

spring:
  application:
    name: gateway

  cloud:
    gateway:
      discovery:
        locator:
          enabled: true   # 开启从注册中心动态创建路由功能
      routes:    # 可以有多个
        - id: ums-getNoticeById    # 路由id必须唯一
#          uri: http://localhost:8081   # 路由地址
          uri: lb:http://UMS   # 路由地址是eureka server中的ums服务名。lb表示负载均衡
          predicates:   # 支持多个断言
            - Path=/getNotice/**  # 断言,匹配路径才进行路由,**表示参数

        - id: ums-sendNotice
#          uri: http://localhost:8081
          uri: lb:http://UMS
          predicates:
            - Path=/follow/**
解释:

uri: lb:http://UMS

  • lb 表示使用客户端负载均衡,有全局过滤器实现

  • UMS,见下图:


原文出处:/show_1EF5iklMn6xa.html