91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Cloud Gateway的動態路由及集成Nacos實現示例分析

發布時間:2021-12-18 14:47:58 來源:億速云 閱讀:265 作者:柒染 欄目:大數據

這篇文章將為大家詳細講解有關Spring Cloud Gateway的動態路由及集成Nacos實現示例分析,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

一、說明

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

二、實現要點

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

  1. 網關啟動時,動態路由的數據怎樣加載進來

  2. 靜態路由動態路由以那個為準,ps:靜態路由指的是配置文件里寫死的路由配置

  3. 監聽動態路由的數據源變化

  4. 數據有變化時怎樣通知gateway刷新路由

三、具體實現

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

  1. PropertiesRouteDefinitionLocator:從配置文件中讀取路由信息(如YML、Properties等)

  2. RouteDefinitionRepository:從存儲器中讀取路由信息(如內存、配置中心、RedisMySQL等)

  3. DiscoveryClientRouteDefinitionLocator:從注冊中心中讀取路由信息(如Nacos、Eurka、Zookeeper等)

我們可以通過自定義 RouteDefinitionRepository 的實現類來實現動態路由的目的

3.1. 實現動態路由的數據加載

創建一個NacosRouteDefinitionRepository實現類

NacosRouteDefinitionRepository

Spring Cloud Gateway的動態路由及集成Nacos實現示例分析

重寫 getRouteDefinitions 方法實現路由信息的讀取

配置Nacos監聽器,監聽路由配置信息的變化Spring Cloud Gateway的動態路由及集成Nacos實現示例分析

路由變化只需要往 ApplicationEventPublisher 推送一個 RefreshRoutesEvent 事件即可,gateway會自動監聽該事件并調用 getRouteDefinitions 方法更新路由信息

3.2. 創建配置類

DynamicRouteConfig

Spring Cloud Gateway的動態路由及集成Nacos實現示例分析

3.3. 添加Nacos路由配置

Spring Cloud Gateway的動態路由及集成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 端點查看當前路由信息

Spring Cloud Gateway的動態路由及集成Nacos實現示例分析

可以看到 Nacos 里配置的兩條路由信息

關于Spring Cloud Gateway的動態路由及集成Nacos實現示例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

五莲县| 屯门区| 许昌县| 定襄县| 浮梁县| 青龙| 栾川县| 太仓市| 璧山县| 磐石市| 忻城县| 张掖市| 庆阳市| 汉阴县| 昌吉市| 达拉特旗| 开化县| 中牟县| 武平县| 定远县| 义马市| 盐城市| 丰镇市| 沐川县| 乌拉特中旗| 临漳县| 蒙自县| 夏邑县| 屏东县| 隆子县| 漳浦县| 华宁县| 兖州市| 呼伦贝尔市| 德钦县| 任丘市| 资阳市| 化隆| 临沂市| 德庆县| 洛隆县|