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

歡迎訪問 生活随笔!

生活随笔

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

javascript

gateway动态路由_无语!SpringCloud Gateway动态路由之Nacos,我已经讲得很清楚了

發布時間:2025/3/15 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gateway动态路由_无语!SpringCloud Gateway动态路由之Nacos,我已经讲得很清楚了 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

當我們的網關Gateway程序開發完成之后,需要部署到生產環境,這個時候你的程序不能是單點運行的,肯定是多節點啟動(獨立部署或者docker等容器部署),防止單節點故障導致整個服務不能訪問,網關是對客戶端的入口與出口,在生產運行中極為重要,哪怕是簡單的重啟也會導致部分請求的丟失。

網關的路由配置這個時候就是一個大問題,是代碼里面編寫還是配置文件配置?他們都有一個致命的缺點,當有新的程序需要接入到網關進行路由或者有服務需要下線時候需要修改代碼或者配置,然后重啟整個網關程序,導致其他正常的服務路由受到了影響。

所以在實際生產環境中為了保證高可靠和高可用,是盡量要避免重啟網關,所以實現動態路由是非常有必要的;

本文主要介紹Spring Cloud Gateway 實現的思路,并且把路由信息存放在外部源中,這粒以Nacos為數據源來講解。

實現要點

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

1、網關啟動時,動態路由的數據怎樣加載進來
2、靜態路由與動態路由以那個為準
3、監聽動態路由的數據源變化
4、數據有變化時怎樣通知gateway刷新路由

ps:靜態路由指的是配置文件里寫死的路由配置

具體實現

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

1、PropertiesRouteDefinitionLocator:從配置文件中讀取路由信息(如YML、Properties等)
2、RouteDefinitionRepository:從存儲器中讀取路由信息(如內存、配置中心、Redis、MySQL等)
3、DiscoveryClientRouteDefinitionLocator:從注冊中心中讀取路由信息(如Nacos、Eurka、Zookeeper等)

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

上面代碼核心的是重寫 getRouteDefinitions 方法實現路由信息的讀取;這個方法中涉及到了ConfigService對象Api的方法。

管理Api方法,這個老顧這里不詳細說了;小伙伴們可以理解為就是操作nacos config的對象

配置Nacos監聽器,監聽路由配置信息的變化,也是利用api方法,也就是addListener方法;此方法一看就知道,就是用來監聽config信息變化的。

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

這樣就達到了動態更新路由了。

配置類

為了更好的把此動態路由作為公共core,我們需要利用配置類,達到是否啟用的方式;可以讓開發者自行配置。

上面的配置類,有兩個重要的@ConditionalOnProperty,這個就是用來控制是否啟用動態路由,以及是否用nacos作為存儲。

里面還有@Value注解定義我們存儲路由信息的DataId和Group,application.yml如果不配置默認值為scg-routes和SCG_GATEWAY

添加Nacos路由配置

在同一個namespace中創建scg-routes和SCG_GATEWAY

格式選擇json,json體里面的格式其實就是RouteDefinition類的屬性

注意上面的配置的json是數組格式哦,也就是可以有很多路由哦

"id": "baidu", "order": 0, "predicates": [{ "args": { "pattern": "/baidu/**" }, "name": "Path" }], "uri": "https://www.baidu.com" },{ "id": "sina", "order": 2, "predicates": [{ "args": { "pattern": "/sina/**" }, "name": "Path" }], "uri": "http://www.sina.com.cn" }]

測試

在網關項目中的application.yml中配置

gateway: dynamicRoute: enabled: true

并且在application.yml中配置

endpoints: web: exposure: include: '*' endpoint: gateway: enabled: true health: show-details: always

這樣我們就可以訪問http://localhost:8081/actuator/gateway/routes,就可以看到路由信息

小伙伴們可以嘗試修改一下nacos中的dataId為scg-routes,我們可以發現路由及時 得到了更改。

老萬只修改了route_id的名稱,路由就及時更新了

我們也看到了控制臺日志也有相應的變化

總結

gateway的動態路由是非常實用的功能,在生產環境中是必備功能,小伙伴們一定要掌握哦,當然小伙伴們也可以用其他的數據源。謝謝!!!

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的gateway动态路由_无语!SpringCloud Gateway动态路由之Nacos,我已经讲得很清楚了的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产精品亚洲自拍 | 蜜臀视频在线播放 | 欧美激情一二三 | 全部孕妇毛片丰满孕妇孕交 | 免费看黄色片的网站 | 欧美私人影院 | 中文字幕一区二区人妻电影丶 | 人妻少妇被猛烈进入中文字幕 | 户外少妇对白啪啪野战 | 国产精品黄色 | 黄色av网站在线免费观看 | 色综合天天综合 | 韩国三级bd高清中字2021 | 91cn.com| 国产精品女主播 | 欧美性生交大片免费看 | 处女朱莉第一次 | 九九这里只有精品视频 | 久久久久久久久久久福利 | 欧美理论片在线观看 | 久久精品国产亚洲av麻豆色欲 | 国产毛片a | 亚洲国产精品无码观看久久 | 啪啪免费小视频 | 色婷婷综合五月 | 91国内精品久久久久 | 黑人爱爱视频 | 九久久久久 | 男人操女人下面视频 | 美女又大又黄 | 国产中文久久 | 亚洲国产一区二区在线 | 日韩视频h | 日韩精品欧美激情 | 极品少妇一区二区 | 美女调教视频 | 成人做爰www看视频软件 | 午夜亚洲成人 | 亚洲精品国产精品国自产网站按摩 | 神马午夜我不卡 | 中文字幕日韩一区二区三区不卡 | av官网在线观看 | 午夜影院在线观看视频 | 午夜激情在线播放 | www久久| 国产又黄又爽又色 | 超碰v | 天堂va蜜桃一区二区三区 | 中文字幕人妻一区二区三区在线视频 | av嫩草| 欧美日韩国产一级片 | 一二三毛片 | 国产一区二区三区四区五区 | 中文字幕亚洲乱码熟女一区二区 | 69精品丰满人妻无码视频a片 | 草碰在线 | 日韩视频一 | 人妻熟人中文字幕一区二区 | 韩日黄色片| 欧美91看片特黄aaaa | 悠悠色综合 | 亚洲在线免费观看视频 | 人人爽av | 国产精品情侣 | www一起操 | 欧美日韩久久久久 | 国产在线拍揄自揄拍无码 | 尤物视频在线观看视频 | jzzijzzij亚洲成熟少妇 | 在线观看免费看片 | 鲁丝av| 熟妇大屁股一区二区三区视频 | 丰满人妻一区二区三区免费视频 | 国产三级大片 | 免费看黄色小视频 | 亚洲特黄一级片 | 两口子交换真实刺激高潮 | 欧美性猛交bbbbb精品 | 韩国三色电费2024免费吗怎么看 | 91国产在线免费观看 | 亚洲国产av一区二区 | 亚洲视频一区二区 | 日韩精品久久久久久 | 视频在线国产 | 影音先锋婷婷 | 久久影院精品 | 华人色 | 国产精品7 | 国产精品熟女一区二区不卡 | 伊人免费在线 | 人妻丰满熟妇av无码久久洗澡 | 日本色区| 在线亚洲天堂 | 九九香蕉视频 | 丝袜美腿亚洲一区二区图片 | 亚洲成人日韩在线 | 91中文字幕 | 精品免费一区 | 成年免费在线观看 |