Java 无法连接到发现的主机-hazelcast

Java 无法连接到发现的主机-hazelcast,java,tomcat,hazelcast,Java,Tomcat,Hazelcast,我试图在两个tomcat实例之间为pub/sub设置一个hazelcast主题。首先,我有一个servlet,它初始化Hazelcast并在tomcat启动时创建主题。当通过HTTP GET调用时,此servlet还将向主题发布消息。以下是servlet中的init()方法: Config cfg = new Config(); System.out.println("hzapp: Creating hazelcast instance..."); hzInstance = Hazelcast

我试图在两个tomcat实例之间为pub/sub设置一个hazelcast主题。首先,我有一个servlet,它初始化Hazelcast并在tomcat启动时创建主题。当通过HTTP GET调用时,此servlet还将向主题发布消息。以下是servlet中的init()方法:

Config cfg = new Config();

System.out.println("hzapp: Creating hazelcast instance...");
hzInstance = Hazelcast.newHazelcastInstance(cfg);
System.out.println("hzapp: Created hazelcast instance.");

topic = hzInstance.getTopic("my-topic");

System.out.println("hzapp: Adding listener to the topic...");
topic.addMessageListener(new HzMessageListener());
System.out.println("hzapp: listener added to the topic.");
servlet的doGet(req,res)方法只是向主题发布一条消息,如下所示:

String message = request.getParameter("message");
System.out.println("hzapp: publishing message: " + message);
topic.publish(message);
System.out.println("hzapp: published message: " + message);
HzMessageListener不执行任何操作,只打印收到的消息:

public void onMessage(Message<String> message) {
    System.out.println("hzapp: Message Received: " + message.getMessageObject());
}
知道这里出了什么问题吗?我使用的是Hazelcast版本3.1.4,我在WEB-INF/lib中有Hazelcast-all-3.1.4.jar


无论我尝试了什么,它都不会超越Hazelcast.newhazelcastance(cfg)

您是否可以尝试使用tcp ip发现而不是多播,以确保除了多播之外没有其他问题:

Config config = new Config();
JoinConfig join = config.getNetworkConfig().getJoin();
join.getMulticastConfig().setEnabled(false);
join.getTcpIpConfig().setEnabled(true);

然后我们缩小了问题的范围。可能是您的网络不支持多播,顺便说一句。。这可能就是问题的原因。

您是否可以尝试使用tcp ip发现而不是多播,以确保除了多播之外没有其他问题:

Config config = new Config();
JoinConfig join = config.getNetworkConfig().getJoin();
join.getMulticastConfig().setEnabled(false);
join.getTcpIpConfig().setEnabled(true);

然后我们缩小了问题的范围。可能是您的网络不支持多播,顺便说一句。。这可能就是原因。

你指出的正是原因。我的网络不允许多播。谢谢你让我走。你指出的正是原因。我的网络不允许多播。谢谢你让我走。