Aeron - 跨交换机的多播问题

Posted

技术标签:

【中文标题】Aeron - 跨交换机的多播问题【英文标题】:Aeron - Issues with Multicast across Switches 【发布时间】:2021-04-12 20:53:57 【问题描述】:

我正在尝试在同一个多播/端口上运行基本发布者/订阅者对。当主机连接到同一个 Switch 时,它可以完美运行,但如果订阅者在不同的 Switch 上,则无法正常工作。

出版商

java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.1.0/24' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicPublisher

订阅者

java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.9.0/24' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicSubscriber

由于主机有多个接口,我已明确尝试将发布者/订阅者绑定到特定接口,方法是将接口参数定义为频道配置的一部分。

两个盒子之间的多播路由已使用iperf验证

【问题讨论】:

您是否尝试过为多播流量设置 TTL:aeron.socket.multicast.ttl (github.com/real-logic/aeron/wiki/Configuration-Options) iperf 是否测试了控制消息的偶数地址的返回方向? github.com/real-logic/aeron/wiki/… 数据和控制 (224.0.1.2) 多播双向工作,并通过 iperf 验证。谢谢@MartinThompson 看起来像设置 ttl 作品 - 谢谢@MichaelBarker 【参考方案1】:

我能够通过添加 ttl 配置选项使其工作。

出版商

java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.1.0/24|ttl=16' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicPublisher

订阅者

java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.9.0/24|ttl=16' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicSubscriber

【讨论】:

以上是关于Aeron - 跨交换机的多播问题的主要内容,如果未能解决你的问题,请参考以下文章

如何实现跨交换机的vlan

如何实现跨交换机的vlan

跨交换机实验VLAN

跨交换机实现VLAN

跨交换机实现VLAN

跨交换机实现VLAN