日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

angularjs 让当前路由重新加载_Spring Cloud Gateway的动态路由怎样做?集成Nacos实现很简单...

發布時間:2024/4/19 javascript 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 angularjs 让当前路由重新加载_Spring Cloud Gateway的动态路由怎样做?集成Nacos实现很简单... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、說明

網關的核心概念就是路由配置和路由規則,而作為所有請求流量的入口,在實際生產環境中為了保證高可靠和高可用,是盡量要避免重啟的,所以實現動態路由是非常有必要的;本文主要介紹 Spring Cloud Gateway 實現的思路,并且以Nacos為數據源來講解

PS:關于 Spring Cloud Zuul 的動態路由請看文章《Spring Cloud Zuul的動態路由怎樣做?集成Nacos實現很簡單》

二、實現要點

要實現動態路由只需關注下面4個點

  • 網關啟動時,動態路由的數據怎樣加載進來
  • 靜態路由與動態路由以那個為準,ps:靜態路由指的是配置文件里寫死的路由配置
  • 監聽動態路由的數據源變化
  • 數據有變化時怎樣通知gateway刷新路由
  • 三、具體實現

    Spring Cloud Gateway 中加載路由信息分別由以下幾個類負責

  • PropertiesRouteDefinitionLocator:從配置文件中讀取路由信息(如YML、Properties等)
  • RouteDefinitionRepository:從存儲器中讀取路由信息(如內存、配置中心、Redis、MySQL等)
  • DiscoveryClientRouteDefinitionLocator:從注冊中心中讀取路由信息(如Nacos、Eurka、Zookeeper等)
  • 我們可以通過自定義 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
    • 配置內容:
    [{"id": "csdn","predicates": [{"name": "Path","args": {"pattern": "/csdn/**"}}],"uri": "https://www.csdn.net/","filters": []},{"id": "github","predicates": [{"name": "Path","args": {"pattern": "/github/**"}}],"uri": "http://github.com/","filters": []} ]添加兩條路由數據

    四、測試

    啟動網關通過 /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实现很简单...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。