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 - 跨交换机的多播问题的主要内容,如果未能解决你的问题,请参考以下文章