Dubbo之參數配置(六)

目錄

令牌驗證

路由規則

條件路由規則

 腳本路由規則


 

令牌驗證

驗證步驟
  • 使用場景
  • 防止消費者繞過註冊中心訪問提供者
  • 在註冊中心控制權限,以決定要不要下發令牌給消費者
  • 註冊中心可靈活改變授權方式,而不需要修改或升級提供者

(1)全局設置開啓令牌驗證

<!--隨機token令牌,使用UUID生成-->
<dubbo:provider interface="com.foo.BarService" token="true" />

<!--固定token令牌,相當於密碼-->
<dubbo:provider interface="com.foo.BarService" token="123456" />

(2)服務級別設置

<dubbo:service interface="com.foo.BarService" token="true" />

<dubbo:service interface="com.foo.BarService" token="123456" />

(3)協議級別設置

<dubbo:protocol name="dubbo" token="true" />

<dubbo:protocol name="dubbo" token="123456" />

路由規則

  • 2.20以上版本支持

(1)向註冊中心寫入路由規則:(通常由監控中心或治理中心的頁面完成)

RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();
Registry registry = registryFactory.getRegistry(URL.valueOf("zookeeper://1.1.1.1:111"));
registry.register(URL.valueOf("condition://0.0.0.0/com.foo.BarService?catagory=routers&dynamic=false&rule=" + URL.encode("host = 1.1.1.10 => host = 1.1.1.11") + "));

 

條件路由規則

  • 示例
#排除預發佈機
=> host != 172.22.3.91

#白名單(一個服務只能有一條白名單規則,否則兩條規則交叉,就都被篩選掉了)
host != 172.22.3.91,172.22.3.92 =>

#黑名單
hsot = 172.22.3.91,172.22.3.92 =>

#服務寄宿在應用上,只暴露一部分的機器,防止整個集羣掛掉
=> host = 172.22.3,1*,172.22.3.2*

#爲重要應用提供額外的機器
application != kylin => host != 172.22.3.91,172.22.3.92

#讀寫分離
method = find*,list*,get*,is* => host = 172.22.3.91,172.22.3.92
method != find*,list*,get*,is* => host = 172.22.3.93,172.22.3.94

#前後臺分離
application = bops => host = 172.22.3.91,172.22.3.92
application != bops => host = 172.22.3.93,172.22.3.94

#隔離不同機房網段
host != 172.22.3.* => host != 172.22.3.*

#提供者與消費者部署在同集羣內,本機只訪問本機的服務
=> host = $host

 腳本路由規則

支持JDK腳本引擎的所有腳本,比如:javascript,jruby,groovy等,通過type=javascript參數設置腳本類型,缺省爲javascript。腳本沒有沙箱約束,可執行任意代碼,存在後門風險。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章