多點廣播 (Multicast)
多播廣播註冊中心(僅用於開發階段)
多播註冊中心不需要啟動任何中心節點,只要廣播地址相同,它們就可以互相發現。
1 使用說明
<dubbo:registry address="multicast://224.5.6.7:1234" />
或
<dubbo:registry protocol="multicast" address="224.5.6.7:1234" />
注意事項
為了減少廣播量,Dubbo 預設使用單播將提供者地址資訊發送給消費者。如果在一台機器上同時啟動多個消費者程序,則消費者必須宣告 unicast=false
,否則只有一個消費者可以收到訊息;當伺服器和消費者運行在同一台機器上時,消費者也必須宣告 unicast=false
,否則消費者無法收到訊息,導致 No provider available for the service 的異常。
<dubbo:application name="demo-consumer">
<dubbo:parameter key="unicast" value="false" />
</dubbo:application>
或
<dubbo:consumer>
<dubbo:parameter key="unicast" value="false" />
</dubbo:consumer>
2 運作方式
2.1 基本流程
- 提供者在啟動時廣播自身的地址
- 消費者在啟動時廣播訂閱請求
- 提供者收到訂閱請求後,會單播自身的地址給訂閱者。如果設定了
unicast=false
,則會廣播給訂閱者。 - 消費者收到提供者的地址後,會連接到該地址進行 RPC 呼叫。
2.2 使用限制
多播受限於網路結構,僅適用於小規模應用或開發階段。多播地址段:224.0.0.0 - 239.255.255.255
最後修改日期:2023 年 1 月 2 日:增強英文文件 (#1798) (95a9f4f6c1c)