TCP-IP加入Hazelcast不能在servicemix中工作

时间:2015-06-03 04:13:56

标签: hazelcast apache-karaf apache-servicemix

根据hazelcast文章http://docs.hazelcast.org/docs/2.4/manual/html/ch12s02.html在hazelcast.xml中添加了另一台PC的主机名,该主机名在SERVICEMIX_HOME / etc中生成,如下所示。

<tcp-ip enabled="true">
    <hostname>FABLRDT061:5702</hostname>
    <interface>127.0.0.1</interface>
</tcp-ip>

如果我启动servicemix,由于以下连接拒绝,它无法连接到我指定的主机名。其他电脑中的日志信息如下

[172.16.25.64]:5702 [cellar] 5702 is accepting socket connection from /172.16.25.71:60770
[172.16.25.64]:5702 [cellar] 5702 accepted socket connection from /172.16.25.71:60770
[172.16.25.64]:5702 [cellar] Wrong bind request from Address[127.0.0.1]:5701! This node is not requested endpoint: Address[FABLRDT061]:5702
[172.16.25.64]:5702 [cellar] Connection [/172.16.25.71:60770] lost. Reason: Explicit close

可能是什么原因?有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

Hazelcast是配置文件,使用它可以配置节点的发现。

尽管教程解释了以下几点, 根据我的动手,我理解

  1. 多播用于在同一系统中自动发现地窖节点。

  2. 如果通过网络在不同系统中存在地窖节点,我们使用tcp-ip配置。

  3. 对于多播,我们不需要改变任何东西,直到我们编写不同的多播组。

  4. 为了使用tcp-ip发现节点,我们需要指定ipaddresses(正如许多教程所解释的那样但不完全是如何。

  5. {li>

    tcp-ip标记下创建一个名为hostname的标记,其中应提及其他系统或ipaddress的主机名。在interface标记中,指定当前系统的ipaddress。

  6. 同样在其他节点中也应该这样做。

答案 1 :(得分:1)

我会远离使用主机名,但用ip地址替换它。