四 nacos gateway 路由动态刷新

第四章

Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。Spring Cloud Gateway作为Spring Cloud生态系中的网关,目标是替代ZUUL,其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。

本章节介绍nacos 与gateway 实现路由的动态刷新。

(1)新建项目gateway

(2)在nacos服务器配置列表uat中添加 gateway.properties 文件

四 nacos gateway 路由动态刷新_第1张图片


(3)pom.xml文件

四 nacos gateway 路由动态刷新_第2张图片
gateway
四 nacos gateway 路由动态刷新_第3张图片
nacos

(3)启动gateway 项目。访问http://localhost:9000/actuator/gateway/routes,


四 nacos gateway 路由动态刷新_第4张图片

(4)在gateway.properties 文件中加入

nacos.dataId=routes.json

nacos.group=DEFAULT_GROUP

(5)在uat 配置列表中加入 routes.json文件

四 nacos gateway 路由动态刷新_第5张图片
routes.json

(6)创建自定义路由,实现RouteDefinitionRepository类

四 nacos gateway 路由动态刷新_第6张图片
实现RouteDefinitionRepository类

(7)创建nacos 监听器,监听路由变化

nacos监听器文档:https://nacos.io/zh-cn/docs/nacos-spring.html

四 nacos gateway 路由动态刷新_第7张图片
nacos 监听器

(8)再访问 http://localhost:9000/actuator/gateway/routes

四 nacos gateway 路由动态刷新_第8张图片
/actuator/gateway/routes

发现只有一个nacosa 项目,访问http://localhost:9000/nacosa/ribbon/geta,返回成功,说明可以。

接着,到routes.json文件删除 nacos 配置。

访问:http://localhost:9000/nacosa/ribbon/geta 返回404,或者访问http://localhost:9000/actuator/gateway/routes 返回空路由

(9)关于gateway 日志打印

第一种如下

#logging.level.org.springframework.cloud.gateway=trace

#logging.level.org.springframework.http.server.reactive=debug

#logging.level.org.springframework.web.reactive=debug

#logging.level.reactor.ipc.netty=debug

第二种,在代码 /config/log 中,自定义过滤器打印log

(10)logging.level.com.alibaba.nacos.client.naming=info 是打印nacos 日志,且日志有些频繁可以不打印。

(11)项目地址:https://github.com/renzheyizhe/demo/tree/master/gateway


(12)也可以使用pring.cloud.gateway.discovery.locator.enabled=true 实现服务自动路由配置,但在实际开发中并不使用。

你可能感兴趣的:(四 nacos gateway 路由动态刷新)