gateway如何集成注册中心nacos

本文来详细说下gateway如何集成注册中心nacos。

概述

通过前文咱们了解到Spring Cloud Gateway的核心是路由配置,然后在本地application.yml中配置了一条路由,但这种修改本地配置文件的方式缺乏灵活性,未必能满足灵活多变的业务需求,因此,本篇的目的就是找出本地配置之外的其他配置方式来,满足各种实际需求

gateway集成nacos实战

动态获取URI

搭建了一个order-service服务,存在两个实例
yaml文件配置
server:
  port: 8888

spring:
  application:
    name: api-gateway
  cloud: #nacos注册中心地址的配置
    nacos:
      discovery:
        server-addr: localhost:8848  # nacos 注册中心的地址
    gateway:
      #路由规则
      routes:
         #路由ID,唯一
        - id: server-order
          #服务名路由,lb为负载均衡的缩写
          uri: lb://order-service
          predicates:
          #匹配对应URL的请求,将匹配到的请求追加在目标URI之后
          - Path=/order/**
测试结果

搭建了一个order-service服务,存在两个实例。搭建了一个product-service服务,存在两个实例。
服务测试结果
yaml文件配置
server:
  port: 8888

spring:
  application:
    name: api-gateway
  cloud: #nacos注册中心地址的配置
    nacos:
      discovery:
        server-addr: localhost:8848  # nacos 注册中心的地址
    gateway:
      #路由规则
      routes:
         #路由ID,唯一
        - id: server-order
          #服务名路由,lb为负载均衡的缩写
          uri: lb://order-service
          predicates:
          #匹配对应URL的请求,将匹配到的请求追加在目标URI之后
          - Path=/order/**
          #路由ID,唯一
        - id: server-product
          #服务名路由,lb为负载均衡的缩写
          uri: lb://product-service
          predicates:
          #匹配对应URL的请求,将匹配到的请求追加在目标URI之后
          - Path=/product/**
现在配置了两个服务,需要配置两个服务的路由信息,要是服务有很多,这样配置似乎不太方便,gateway提供了更加简单的配置。简化版的yaml文件为下
测试

这时候,就发现只要按照网关地址/微服务/接口的格式去访问,就可以得到成功响应。


本文小结

经验分享 程序员 微信小程序 职场和发展