我有两台JGroups正在运行的机器。我面临的问题是,一旦在其中一台机器上创建了实例,几秒钟之后我就会启动其他实例。它们都是分开启动(相同群集),即它们不会一起加入群集。 10到15秒后,他们都会沟通并加入到一起。
此延迟导致我的商家在代码中出现问题... 在程序启动时也会抛出警告
警告:套接字java.net.MulticastSocket@5954864a的发送缓冲区设置为640KB,但操作系统仅分配135.17KB。这可能会导致性能问题。请在操作系统中正确设置最大发送缓冲区(例如Linux上的net.core.wmem_max)
这与问题有关吗?
答案 0 :(得分:3)
你绝对需要增加这些值 - 否则就是UNICAST 几乎无法使用。
如果您不熟悉如何操作,请修改/etc/sysctl.conf 文件。这些是我在节点上的值。
JGroups UDP配置
net.core.rmem_max = 25480000
net.core.wmem_max = 25480000
要重新加载这些值,请发出" sysctl -p"以root身份强制重新加载 这个文件。
来源:http://comments.gmane.org/gmane.comp.java.javagroups.general/7922
答案 1 :(得分:1)
警告与您的问题无关,这只会导致性能问题,因为您的多播缓冲区的OS缓冲区很小。
关于您的问题:检查您的日志中是否有所有jgroups消息(不仅是警告)并检查它们的时间。并发布您的群集配置。
答案 2 :(得分:1)
通过更改此值(net.core.wmem_max)编辑/etc/sysctl.conf并运行“sysctl -p”