1. 簡介
上一篇文章分析了集群容錯的第一部分 — 服務(wù)目錄 Directory慎颗。服務(wù)目錄在刷新 Invoker 列表的過程中,會通過 Router 進行服務(wù)路由言询,篩選出符合路由規(guī)則的服務(wù)提供者俯萎。在詳細分析服務(wù)路由的源碼之前,先來介紹一下服務(wù)路由是什么运杭。服務(wù)路由包含一條路由規(guī)則夫啊,路由規(guī)則決定了服務(wù)消費者的調(diào)用目標,即規(guī)定了服務(wù)消費者可調(diào)用哪些服務(wù)提供者辆憔。Dubbo 目前提供了三種服務(wù)路由實現(xiàn)撇眯,分別為條件路由 ConditionRouter、腳本路由 ScriptRouter 和標簽路由 TagRouter虱咧。
2. 規(guī)則說明
2.1 條件路由
條件路由規(guī)則由兩個條件組成熊榛,分別用于對服務(wù)消費者和提供者進行匹配。比如有這樣一條規(guī)則:
host = 10.20.153.10 => host = 10.20.153.11
該條規(guī)則表示 IP 為 10.20.153.10 的服務(wù)消費者只可調(diào)用 IP 為 10.20.153.11 機器上的服務(wù)腕巡,不可調(diào)用其他機器上的服務(wù)玄坦。條件路由規(guī)則的格式如下:
[服務(wù)消費者匹配條件] => [服務(wù)提供者匹配條件]
如果服務(wù)消費者匹配條件為空,表示不對服務(wù)消費者進行限制绘沉。如果服務(wù)提供者匹配條件為空煎楣,表示對某些服務(wù)消費者禁用服務(wù)。官方文檔中對條件路由進行了比較詳細的介紹车伞,大家可以參考下择懂,這里就不過多說明了。
條件路由實現(xiàn)類 ConditionRouter 在進行工作前另玖,需要先對用戶配置的路由規(guī)則進行解析困曙,得到一系列的條件。然后再根據(jù)這些條件對服務(wù)進行路由日矫。
2.2 腳本路由
待補充
2.3 標簽路由
待補充
3.參考資料
本文參考于Dubbo官網(wǎng)赂弓,詳情以官網(wǎng)最新文檔為準绑榴。