Aeron 基本 pub/sub 对在同一主机上连接,跨主机失败
Aeron basic pub/sub pair connects on same host, fails across hosts
我正在 运行ning https://github.com/real-logic/aeron 中的 BasicPublisher/BasicSubscriber 对,将它们绑定到同一个多播组+端口。当它们 运行 在同一主机上时,它们会连接,但是当它们 运行 在不同的主机(相同的交换机+子网+vlan)上时,发布者报告“提供失败,因为发布者未连接到订阅者”。这里是我的配置:
艾伦一对:
java -Daeron.sample.channel="aeron:udp?endpoint=225.10.9.7:4050" \
-Daeron.sample.embeddedMediaDriver=true \
-cp ./aeron-all/build/libs/aeron-all-1.29.1-SNAPSHOT.jar \
io.aeron.samples.BasicPublisher
java -Daeron.sample.channel="aeron:udp?endpoint=225.10.9.7:4050" \
-Daeron.sample.embeddedMediaDriver=true \
-cp ./aeron-all/build/libs/aeron-all-1.29.1-SNAPSHOT.jar \
io.aeron.samples.BasicSubscriber
我 运行 同一主机上的一个 iperf udp 对绑定到同一组+端口,我认为这证明交换机没有阻止多播流量。我希望我只是错误地使用了 Aeron;或者我可以检查一些其他网络问题?
IPERF 对:
iperf -c 225.10.9.7 -p 4050 -u -T 32 -t 300 -I 1 -b 1G
[ 3] 46.0-47.0 sec 128 MBytes 1.07 Gbits/sec
…
iperf -s -u -B 225.10.9.7 -p 4050 -I 1 -b 1G
[ 3] 45.0-46.0 sec 128 MBytes 1.07 Gbits/sec 0.001 ms 35/91304 (0.038%)
…
Java: java-1.8.0-openjdk.x86_64
OS: Centos7 3.10.0-514.26.2.el7.x86_64
使用多播端点时,还需要为某些操作系统提供远程接口。接口可以有一个掩码来简化子网上所有机器的配置。例如:
aeron:udp?endpoint=224.0.1.1:40456|interface=192.168.1.4
aeron:udp?endpoint=224.0.1.1:40456|interface=192.168.1.0/24
https://github.com/real-logic/aeron/wiki/Channel-Configuration
我遇到了类似的问题,通过添加 ttl 配置选项解决了这个问题
aeron:udp?endpoint=224.0.1.1:40456|interface=192.168.1.4|ttl=16
aeron:udp?endpoint=224.0.1.1:40456|interface=192.168.1.0/24|ttl=16
我正在 运行ning https://github.com/real-logic/aeron 中的 BasicPublisher/BasicSubscriber 对,将它们绑定到同一个多播组+端口。当它们 运行 在同一主机上时,它们会连接,但是当它们 运行 在不同的主机(相同的交换机+子网+vlan)上时,发布者报告“提供失败,因为发布者未连接到订阅者”。这里是我的配置:
艾伦一对:
java -Daeron.sample.channel="aeron:udp?endpoint=225.10.9.7:4050" \
-Daeron.sample.embeddedMediaDriver=true \
-cp ./aeron-all/build/libs/aeron-all-1.29.1-SNAPSHOT.jar \
io.aeron.samples.BasicPublisher
java -Daeron.sample.channel="aeron:udp?endpoint=225.10.9.7:4050" \
-Daeron.sample.embeddedMediaDriver=true \
-cp ./aeron-all/build/libs/aeron-all-1.29.1-SNAPSHOT.jar \
io.aeron.samples.BasicSubscriber
我 运行 同一主机上的一个 iperf udp 对绑定到同一组+端口,我认为这证明交换机没有阻止多播流量。我希望我只是错误地使用了 Aeron;或者我可以检查一些其他网络问题?
IPERF 对:
iperf -c 225.10.9.7 -p 4050 -u -T 32 -t 300 -I 1 -b 1G
[ 3] 46.0-47.0 sec 128 MBytes 1.07 Gbits/sec
…
iperf -s -u -B 225.10.9.7 -p 4050 -I 1 -b 1G
[ 3] 45.0-46.0 sec 128 MBytes 1.07 Gbits/sec 0.001 ms 35/91304 (0.038%)
…
Java: java-1.8.0-openjdk.x86_64
OS: Centos7 3.10.0-514.26.2.el7.x86_64
使用多播端点时,还需要为某些操作系统提供远程接口。接口可以有一个掩码来简化子网上所有机器的配置。例如:
aeron:udp?endpoint=224.0.1.1:40456|interface=192.168.1.4
aeron:udp?endpoint=224.0.1.1:40456|interface=192.168.1.0/24
https://github.com/real-logic/aeron/wiki/Channel-Configuration
我遇到了类似的问题,通过添加 ttl 配置选项解决了这个问题
aeron:udp?endpoint=224.0.1.1:40456|interface=192.168.1.4|ttl=16
aeron:udp?endpoint=224.0.1.1:40456|interface=192.168.1.0/24|ttl=16