多播

组播广播注册中心(仅在开发阶段使用)。

组播注册中心不需要启动任何中心节点,只要广播地址相同,它们就可以相互发现。

/user-guide/images/multicast.jpg

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,否则消费者无法收到消息,导致服务不可用异常

<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 基本流程

  1. 提供者在启动时广播自己的地址
  2. 消费者启动时广播订阅请求
  3. 当提供者收到订阅请求时,它会将自己的地址单播给订阅者。如果设置了 unicast=false,它将广播给订阅者
  4. 当消费者收到提供者的地址时,它会连接到该地址进行 RPC 调用。

2.2 使用限制

组播受网络结构限制,仅适用于小规模应用或开发阶段。组播地址段:224.0.0.0 - 239.255.255.255


上次修改时间:2023 年 1 月 2 日:增强英文文档 (#1798) (95a9f4f6c1c)