2017-09-13 157 views
0

我有一个多服务部署,其中一些服务使用Hazelcast进行缓存。在实际部署中,服务驻留在单独的VM中,hazelcast实例在端口5701上启动。但是,在本地执行测试时,所有服务驻留在同一个VM上。这意味着第一个Hazelcast实例在5701上启动,第二个在5702上等等(自动增量在配置中设置为true)。Hazelcast客户端连接端口

问题是,hazelcast客户端尝试连接到5701到5703并且不再进行搜索。

为了确保在端口中没有任何重叠(因此没有自动增量完成),我手动配置了Hazelcast实例的端口。因此,对于其中一项服务,我将其设置为5710.但是,客户端尝试从5701连接。

我读过网络端口不适用于Hazelcast Client配置,但我找不到指定要尝试连接的端口?

我使用Hazelcast 3.6

配置文件:

<group> 
     <name>myNode</name> 
     <password>MyPass</password> 
    </group> 
    <properties> 
     <property name="hazelcast.rest.enabled">true</property> 
     <property name="hazelcast.shutdownhook.enabled">false</property> 
    </properties> 
    <management-center enabled="false"/> 
    <network> 
     <port auto-increment="true">5701</port> 
     <join> 
      <multicast enabled="true"/> 
      <tcp-ip enabled="false"/> 
      <aws enabled="false"/> 
     </join> 
    </network> 

回答

0

的解决方案是群集配置添加到客户端配置XML:

<network> 
     <cluster-members> 
      <address>127.0.0.1:57xx</address> 
     </cluster-members> 
    </network> 
0

你刚才的转交地址(IP:端口)连接到客户端的连接配置。无论如何,我不知道你在一台机器上做了多少独立的集群成员(不同的集群?)。

+0

我真的不能指定IP:端口。我得到缓存管理器使用这样的东西: 'Properties properties = new Properties(); properties.setProperty(HazelcastCachingProvider.HAZELCAST_CONFIG_LOCATION,“classpath:hazelcast.xml”); CacheManager manager = Caching.getCachingProvider() .getCacheManager(new URI(“opp_transaction”),null,properties);' 所以我没有实际的配置权限。 –

+1

关于你的问题,就像我刚才提到的,这是针对通常运行不同机器的不同服务。仅用于本地测试,我遇到了这个问题。 –

+1

找到解决方案:) –