gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:11:24 27 4
gpt4 key购买 nike

我正在尝试为两个 tomcat 实例之间的发布/订阅设置一个 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());
}

现在,我面临的问题是,当我启动 tomcat 时,出现以下错误:

INFO: Starting Servlet Engine: Apache Tomcat/6.0.36
hzapp: Creating hazelcast instance...
Jan 23, 2014 10:43:26 AM com.hazelcast.instance.DefaultAddressPicker
INFO: Prefer IPv4 stack is true.
Jan 23, 2014 10:43:26 AM com.hazelcast.instance.DefaultAddressPicker
INFO: Picked Address[192.168.1.10]:5702, using socket ServerSocket[addr=/0:0:0:0:0:0:0:0%0,localport=5702], bind any local is true
Jan 23, 2014 10:43:26 AM com.hazelcast.system
INFO: [192.168.1.10]:5702 [dev] Hazelcast Community Edition 3.1.4 (20140111) starting at Address[192.168.1.10]:5702
Jan 23, 2014 10:43:26 AM com.hazelcast.system
INFO: [192.168.1.10]:5702 [dev] Copyright (C) 2008-2013 Hazelcast.com
Jan 23, 2014 10:43:26 AM com.hazelcast.instance.Node
INFO: [192.168.1.10]:5702 [dev] Creating MulticastJoiner
Jan 23, 2014 10:43:26 AM com.hazelcast.core.LifecycleService
INFO: [192.168.1.10]:5702 [dev] Address[192.168.1.10]:5702 is STARTING
Jan 23, 2014 10:43:26 AM com.hazelcast.nio.SocketConnector
INFO: [192.168.1.10]:5702 [dev] Connecting to /192.168.1.10:5701, timeout: 0, bind-any: true
Jan 23, 2014 10:43:26 AM com.hazelcast.nio.TcpIpConnectionManager
INFO: [192.168.1.10]:5702 [dev] 55635 accepted socket connection from /192.168.1.10:5701
Jan 23, 2014 10:43:50 AM com.hazelcast.instance.Node
WARNING: [192.168.1.10]:5702 [dev] Trying to rejoin:
======================================================
Couldn't connect to discovered master! tryCount: 50
address: Address[192.168.1.10]:5702
masterAddress: Address[192.168.1.10]:5701
multicast: true
connection: null
======================================================

知道这里出了什么问题吗?我使用的是 Hazelcast 版本 3.1.4,我在 WEB-INF/lib 中有 hazelcast-all-3.1.4.jar。

无论我尝试过什么,它永远不会超出 Hazelcast.newHazelcastInstance(cfg);

最佳答案

您能否尝试使用 tcp ip discovery 而不是 multicast 来确保除了 multicast 之外没有其他问题:

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

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

关于java - 无法连接到发现的主机 - hazelcast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21299970/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com