JGroups UDP群集不起作用

2020-09-18 19:17发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好!

我们正在尝试在此处运行JGroups UDP多播集群,但无法使节点加入其中。
我们有3台Hybris服务器。
行为如下:
1.启动节点 1
2.启动节点2
3.可以在 hac-> Monitoring-> Cluster
中的每个节点上查看群集中可用节点的列表。4.启动节点3
5.缺少节点1和2之间的群集,但是,节点分别正常工作
6.如下获取节点3上的日志消息:

信息| jvm 1 | 主| 2016/08/17 12:58:53.689 | WARN [CronJob Timer master] [DefaultBroadcastService]广播方法jgroups :: de.hybris.platform.cluster.jgroups.JGroupsBroadcastMethod@5d79b381尚未初始化-无法发送消息[?://?| ver:4010100 | 15481803675868800-2124288858064- 0 | 1 | 1of1(内容:79个字节)] INFO | jvm 1
| 主| 2016/08/17 12:58:53.789 | WARN [CronJob Timer master] [DefaultBroadcastService]广播方法jgroups :: de.hybris.platform.cluster.jgroups.JGroupsBroadcastMethod@5d79b381尚未初始化-无法发送消息[?://?| ver:4010100 | 15481803675868800-2124288858064- 1 | 1 | 1of1(内容:79个字节)]

信息| jvm 1 | 主| 2016/08/17 12:59:02.798 | WARN [TransferQueueBundler,hybris-jgroups,hybrisnode-0] [UDP] JGRP000032:hybrisnode-0:a3e0a1d1-4976-1c1c-967b-3a28c957c5cc没有物理地址,丢弃了消息

local.properties 群集配置:
clustermode = true
cluster.id = 0#将节点从0更改为2,因为我们在群集中有3个节点
cluster .maxid = 3
cluster.ping.interval = 60
cluster.ping.load.on.startup = true cluster.broadcast.methods = jgroups cluster.broadcast.method.jgroups = de.hybris。 platform.cluster.jgroups.JGroupsBroadcastMethod cluster.broadcast.method.jgroups.udp.mcast_port = 44448 cluster.broadcast.method.jgroups.channel.name = hybris-jgroups cluster.broadcast.method.jgroups.configuration = jgroups-udp.xml log4j.logger.de.hybris.platform.cluster.PingBroadcastHandler = DEBUG log4j.logger.de.hybris.platform.cluster.udp.UnicastBroadcastMethod = DEBUG log4j.logger.de.hybris.platform.cache.udp = debug

jgroups-udp.xml 是未经任何修改的标准。 就像这里一样:
https://wiki。 hybris.com/display/release5/Configuring+a+hybris+Cluster#ConfiguringahybrisCluster-JGroupsUDP

在所有Hybris服务器上禁用防火墙。
在所有Hybris服务器上禁用Selinux。
网络内部没有任何限制。
在一个子网内的所有Hybris服务器。

tomcat.generaloptions 中,我启用了以下属性:
-Djava.net.preferIPv6Addresses = false
-Djava.net .preferIPv4Stack = true
-Djava.net.preferIPv4Addresses = true
所有服务器都具有单个网络接口" eth0 "
所有服务器 在物理虚拟机管理程序上进行了拆分,但是它们之间的多播没有任何限制。

我已经执行了测试,它成功了。
我已经在2台服务器上启动了接收方,并在第三台服务器上启动了发送方,如下所示:

java -Djava.net.preferIPv6Addresses = false -Djava.net.preferIPv4Stack = true -Djava.net.preferIPv4Addresses = true -cp ext/core/lib/jgroups-3.4.1.Final.jar org.jgroups.tests .McastReceiverTest-端口44448 java -Djava.net.preferIPv6Addresses = false -Djava.net.preferIPv4Stack = true -Djava.net.preferIPv4Addresses = true -cp ext/core/lib/jgroups-3.4.1.Final.jar org.jgroups .tests.McastSenderTest-端口44448

另一个有趣的事情是服务器可以成对运行,但是,当我启动任何一个节点时,第三个集群出现故障,并且每个节点都单独工作。
说,我已经停止了集群。< br>已启动的节点1和3。
集群可用。
但是,当我启动节点2时,群集失败。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好!

我们正在尝试在此处运行JGroups UDP多播集群,但无法使节点加入其中。
我们有3台Hybris服务器。
行为如下:
1.启动节点 1
2.启动节点2
3.可以在 hac-> Monitoring-> Cluster
中的每个节点上查看群集中可用节点的列表。4.启动节点3
5.缺少节点1和2之间的群集,但是,节点分别正常工作
6.如下获取节点3上的日志消息:

信息| jvm 1 | 主| 2016/08/17 12:58:53.689 | WARN [CronJob Timer master] [DefaultBroadcastService]广播方法jgroups :: de.hybris.platform.cluster.jgroups.JGroupsBroadcastMethod@5d79b381尚未初始化-无法发送消息[?://?| ver:4010100 | 15481803675868800-2124288858064- 0 | 1 | 1of1(内容:79个字节)] INFO | jvm 1
| 主| 2016/08/17 12:58:53.789 | WARN [CronJob Timer master] [DefaultBroadcastService]广播方法jgroups :: de.hybris.platform.cluster.jgroups.JGroupsBroadcastMethod@5d79b381尚未初始化-无法发送消息[?://?| ver:4010100 | 15481803675868800-2124288858064- 1 | 1 | 1of1(内容:79个字节)]

信息| jvm 1 | 主| 2016/08/17 12:59:02.798 | WARN [TransferQueueBundler,hybris-jgroups,hybrisnode-0] [UDP] JGRP000032:hybrisnode-0:a3e0a1d1-4976-1c1c-967b-3a28c957c5cc没有物理地址,丢弃了消息

local.properties 群集配置:
clustermode = true
cluster.id = 0#将节点从0更改为2,因为我们在群集中有3个节点
cluster .maxid = 3
cluster.ping.interval = 60
cluster.ping.load.on.startup = true cluster.broadcast.methods = jgroups cluster.broadcast.method.jgroups = de.hybris。 platform.cluster.jgroups.JGroupsBroadcastMethod cluster.broadcast.method.jgroups.udp.mcast_port = 44448 cluster.broadcast.method.jgroups.channel.name = hybris-jgroups cluster.broadcast.method.jgroups.configuration = jgroups-udp.xml log4j.logger.de.hybris.platform.cluster.PingBroadcastHandler = DEBUG log4j.logger.de.hybris.platform.cluster.udp.UnicastBroadcastMethod = DEBUG log4j.logger.de.hybris.platform.cache.udp = debug

jgroups-udp.xml 是未经任何修改的标准。 就像这里一样:
https://wiki。 hybris.com/display/release5/Configuring+a+hybris+Cluster#ConfiguringahybrisCluster-JGroupsUDP

在所有Hybris服务器上禁用防火墙。
在所有Hybris服务器上禁用Selinux。
网络内部没有任何限制。
在一个子网内的所有Hybris服务器。

tomcat.generaloptions 中,我启用了以下属性:
-Djava.net.preferIPv6Addresses = false
-Djava.net .preferIPv4Stack = true
-Djava.net.preferIPv4Addresses = true
所有服务器都具有单个网络接口" eth0 "
所有服务器 在物理虚拟机管理程序上进行了拆分,但是它们之间的多播没有任何限制。

我已经执行了测试,它成功了。
我已经在2台服务器上启动了接收方,并在第三台服务器上启动了发送方,如下所示:

java -Djava.net.preferIPv6Addresses = false -Djava.net.preferIPv4Stack = true -Djava.net.preferIPv4Addresses = true -cp ext/core/lib/jgroups-3.4.1.Final.jar org.jgroups.tests .McastReceiverTest-端口44448 java -Djava.net.preferIPv6Addresses = false -Djava.net.preferIPv4Stack = true -Djava.net.preferIPv4Addresses = true -cp ext/core/lib/jgroups-3.4.1.Final.jar org.jgroups .tests.McastSenderTest-端口44448

另一个有趣的事情是服务器可以成对运行,但是,当我启动任何一个节点时,第三个集群出现故障,并且每个节点都单独工作。
说,我已经停止了集群。< br>已启动的节点1和3。
集群可用。
但是,当我启动节点2时,群集失败。

付费偷看设置
发送
10条回答
SC_Yao
1楼-- · 2020-09-18 19:37

最常见的问题是,第三台服务器位于不同的物理管理程序主机上,并且在两个管理程序之间未正确配置多播。 如果您没有在Java中强制使用ipv4,也可能会遇到问题,您应该使用tomcat.generaloptions中的jvm选项强制使用ipv4选项:-Djava.net.preferIPv4Stack = true -Djava.net.preferIPv4Addresses = true 最后,如果您的服务器具有多个网络接口,请确保您绑定所有服务器上的同一接口。 不幸的是,您需要在jgroups_udp.xml中进行设置:bind_addr =" match-interface:eth0"

土豆飞人
2楼-- · 2020-09-18 19:35

错误消息

JGroupsBroadcastMethod @ 5d79b381尚未初始化-无法发送消息

类de.hybris.platform.cluster.DefaultBroadcastService生成的代码指示该方法无法开始。 在启动时,您是否还看到前面提到的其他错误? 您是否可以将DEBUG日志记录放到类de.hybris.platform.cluster.DefaultBroadcastService上,并检查初始化是否已正确完成?
95年老男孩
3楼-- · 2020-09-18 19:20

有新行为。
群集中连接的所有3台服务器。
但是,在3或4分钟后,群集将失败,并且日志中没有任何错误消息。
每个节点仍处于运行状态并单独运行。

当学会了学习
4楼-- · 2020-09-18 19:23

bind_addr =" match-interface:eth0"行最适合我! 在我的前端服务器中,我有3个网络接口,Hybris从外部局域网接口获取IP

葫芦娃快救爷爷
5楼-- · 2020-09-18 19:24

嗨,Mykhailo,我遇到了同样的问题。 我正在为jgroup udp使用云服务器,您如何解决此问题? 服务器启动后,jgroup群集可以正常工作,我们可以看到jgroup群集的成员,但是经过一段时间后,其他成员将不可见。 我已经尝试过接收方和发送方,它具有相同的行为。

java -Djava.net.preferIPv4Stack = true -Djava.net.preferIPv4Addresses = true -cp ext/core/lib/jgroups-3.4.1.Final.jar org.jgroups.tests.McastReceiverTest -mcast_addr 228.8.8.8- 端口9414

java -Djava.net.preferIPv4Stack = true -Djava.net.preferIPv4Addresses = true -cp ext/core/lib/jgroups-3.4.1.Final.jar org.jgroups.tests.McastSenderTest -mcast_addr 228.8.8.8- 端口9414

三十六小时_GS
6楼-- · 2020-09-18 19:24

嗨,尼克,我们决定使用JGroups TCP代替JGroups UDP。
但是,我们从默认的JDBC_PING转移到TCPPING协议,在该协议中我们定义了每个IP下的IP列表
因此,我们需要为多个环境另外维护许多jgroups-tcp-envname.xml文件。

一周热门 更多>