javascript
angularjs 让当前路由重新加载_Spring Cloud Gateway的动态路由怎样做?集成Nacos实现很简单...
一、說明
網關的核心概念就是路由配置和路由規則,而作為所有請求流量的入口,在實際生產環境中為了保證高可靠和高可用,是盡量要避免重啟的,所以實現動態路由是非常有必要的;本文主要介紹 Spring Cloud Gateway 實現的思路,并且以Nacos為數據源來講解
PS:關于 Spring Cloud Zuul 的動態路由請看文章《Spring Cloud Zuul的動態路由怎樣做?集成Nacos實現很簡單》
二、實現要點
要實現動態路由只需關注下面4個點
三、具體實現
Spring Cloud Gateway 中加載路由信息分別由以下幾個類負責
我們可以通過自定義 RouteDefinitionRepository 的實現類來實現動態路由的目的
3.1. 實現動態路由的數據加載
創建一個Nacos的RouteDefinitionRepository實現類
NacosRouteDefinitionRepository類可查看:NacosRouteDefinitionRepository.java
重寫 getRouteDefinitions 方法實現路由信息的讀取配置Nacos監聽器,監聽路由配置信息的變化
路由變化只需要往 ApplicationEventPublisher 推送一個 RefreshRoutesEvent 事件即刻,gateway會自動監聽該事件并調用 getRouteDefinitions 方法更新路由信息3.2. 創建配置類
DynamicRouteConfig類可查看:DynamicRouteConfig.java
3.3. 添加Nacos路由配置
新增配置項:
- Data Id:scg-routes
- Group:SCG_GATEWAY
- 配置內容:
四、測試
啟動網關通過 /actuator/gateway/routes 端點查看當前路由信息
可以看到 Nacos 里配置的兩條路由信息完整的Spring Cloud Gateway代碼請查看
https://gitee.com/zlt2000/microservices-platform/tree/master/zlt-gateway/sc-gateway
推薦閱讀
- 日志排查問題困難?分布式日志鏈路跟蹤來幫你
- zuul集成Sentinel最新的網關流控組件
- Spring Cloud Zuul的動態路由怎樣做?集成Nacos實現很簡單
- Spring Cloud開發人員如何解決服務沖突和實例亂竄?
- Spring Cloud同步場景分布式事務怎樣做?試試Seata
- Spring Cloud異步場景分布式事務怎樣做?試試RocketMQ
掃碼關注有驚喜!
總結
以上是生活随笔為你收集整理的angularjs 让当前路由重新加载_Spring Cloud Gateway的动态路由怎样做?集成Nacos实现很简单...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 交互式电子杂志_交互环境中电子杂志的生存
- 下一篇: python中文件路径如何读取提示nos