當前位置:首頁 » 數據倉庫 » spring白名單如何配置
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

spring白名單如何配置

發布時間: 2023-03-08 19:30:47

『壹』 Spring微服務灰度發布(熱部署)的實現(二)

接著上篇說,我們微服務中用到的nepxion discovery主要採用了三種灰度發布方式,一種是web圖形化界面發布,二是zuul過濾器灰度發布,三是業務參數策略灰度發布。下面將重點介紹三種方式的實現。

一、web圖形化界麵灰度發布

因為我們項目用到了eureka注冊中心,所以選擇web圖形化界麵灰度發布比較合適。

1) 首先需要建立一個discovery控制台工程console, 埠為2222,控制台工程負責web圖形化界面請求的處理,運行console工程。

2) 下載discovery ui,地址:https://github.com/Nepxion/DiscoveryUI,運行discovery UI,埠為8090

3)瀏覽器中輸入localhost:8090,即可打開控制台,如下

注意:全鏈路灰度發布需要在「配置中心」下才可用。灰度發布配置中心,負責存儲全鏈路灰度發布規則,並將規則推送到各個微服務中。而配置中心可用nacos,redis等,Discovery 中提供了相應配置中心的插件包。

二、zuul網關過濾器灰度發布

通過網關過濾器傳遞Http Header的方式傳遞全鏈路灰度路由規則。下面代碼只適用於Zuul和Spring Cloud Gateway網關,Service微服務不需要加該方式。

三、業務參數在策略類中自定義灰度路由規則

通過策略方式自定義灰度路由規則。下面代碼既適用於Zuul和Spring Cloud Gateway網關,也適用於Service微服務,同時全鏈路中網關和服務都必須加該方式

上面說了具體灰度規則發布方式,那究竟怎麼定義灰度規則呢??

規則是基於XML或者Json為配置方式,存儲於本地文件或者遠程配置中心,可以通過遠程配置中心修改的方式達到規則動態化。其核心代碼參考discovery-plugin-framework以及它的擴展、discovery-plugin-config-center以及它的擴展和discovery-plugin-admin-center等,規則示例

XML示例(Json示例見discovery-springcloud-example-service下的rule.json)

黑/白名單的IP地址注冊的過濾規則

微服務啟動的時候,禁止指定的IP地址注冊到服務注冊發現中心。支持黑/白名單,白名單表示只允許指定IP地址前綴注冊,黑名單表示不允許指定IP地址前綴注冊。規則如何使用,見示例說明

最大注冊數的限制的過濾規則

微服務啟動的時候,一旦微服務集群下注冊的實例數目已經達到上限(可配置),將禁止後續的微服務進行注冊。規則如何使用,見示例說明

黑/白名單的IP地址發現的過濾規則

微服務啟動的時候,禁止指定的IP地址被服務發現。它使用的方式和「黑/白名單的IP地址注冊的過濾規則」一致

版本訪問的灰度發布規則

版本權重的灰度發布規則

全局版本權重的灰度發布規則

區域權重的灰度發布規則

全局區域權重的灰度發布規則

網關端全鏈路路由策略的灰度發布規則

注意 路由策略的入口有三個(以{"discovery-springcloud-example-a":"1.0", "discovery-springcloud-example-b":"1.0", "discovery-springcloud-example-c":"1.0;1.2"})為例:

其作用的優先順序為外界傳入>網關Filter指定>配置中心或者本地rule.xml配置

您可以根據自己需求,自由定義灰度發布規則,靈活實現微服務的灰度發布。

源碼位置:https://github.com/Nepxion/Discovery