當前位置:編程學習大全網 - 源碼下載 - 實現Spring Cloud Gateway路由動態加載及持久化

實現Spring Cloud Gateway路由動態加載及持久化

Spring Cloud Gateway提供了添加、刪除和查詢路由的 API ,通過API添加的路由默認存儲在內存之中。應用重啟時,通過API添加的路由會丟失,進而導致應用的功能受損。如果應用有多個實例,Spring Cloud Gateway也沒有提供路由同步機制,多個實例之間的路由信息不壹致,影響正常的業務。由於Spring Cloud Gateway默認實現在可靠性和壹致性方面存在不足,進而無法直接部署在生產環境,為此需要自定義實現路由的存儲和同步機制。

在Spring Cloud Gateway中壹個RouteDefinition對象定義壹個路由。Spring Cloud Gateway啟動時首先加載所有的RouteDefinition,然後生成路由並講路由加載到內中(有緩存機制,主要目的是提供路由匹配的效率)。Spring Cloud Gateway可以從四個數據源加載RouteDefinition:配置文件,Fluent Route API,RouteDefinitionRepository和DiscoveryClient(Spring Cloud定義的服務發現接口)。從路由的加載機制可以看出,能夠實現動態添加、刪除、修改路由的方式就是自定義實現RouteDefinitionRepository,從而可以保證在Spring Cloud Gateway啟動時加載之前已經添加過的路由。

Spring Cloud Gateway定義了壹個RouteRefreshListener用來監聽路由變化事件RefreshRoutesEvent,因此在添加、刪除、更新路由後只需要發布壹個RefreshRoutesEvent事件以讓所有存儲路由的組件更新路由即可。

實現步驟:

基於mysql的實現源碼參考 Spring Cloud Gateway Example

  • 上一篇:四大名著之通俗演義電子書txt全集下載
  • 下一篇:怎麽自學php?
  • copyright 2024編程學習大全網