我正在尝试将 hazelcast 添加到我的项目中。 下面的配置生成了很多成员。 我需要的只是拖曳。
配置
<hz:hazelcast id="instance">
<hz:config>
<hz:group name="mass-storage-${env}" password="tomcat-${env}"></hz:group>
<hz:properties>
<hz:property name="hazelcast.merge.first.run.delay.seconds">5</hz:property>
<hz:property name="hazelcast.merge.next.run.delay.seconds">5</hz:property>
</hz:properties>
<hz:network port="${hazelcast.config-cluster.discovery-port}" port-auto-increment="false">
<hz:join>
<hz:multicast enabled="false"/>
<hz:tcp-ip>
<hz:member>${hazelcast.config-cluster.address-1}</hz:member>
<hz:member>${hazelcast.config-cluster.address-2}</hz:member>
</hz:tcp-ip>
</hz:join>
</hz:network>
<hz:map name="driveAccessTokensCache">
<hz:near-cache time-to-live-seconds="${drive.access.token.ttl.seconds}" max-idle-seconds="10" eviction-policy="LRU" invalidate-on-change="true" max-size="5000"/>
</hz:map>
<hz:map name="accessTokensCache">
<hz:near-cache time-to-live-seconds="${user.access.token.ttl.seconds}" max-idle-seconds="10" eviction-policy="LRU" invalidate-on-change="true" max-size="5000"/>
</hz:map>
</hz:config>
</hz:hazelcast>
这就是我得到的:
Members [2] {
Member [ecarbsul1680h11]:18934 this
Member [ecarbsul1550h11]:18934
}
03-Jun-2020 17:16:17.657 INFO [hz._hzInstance_2_dev.ServiceThread] com.hazelcast.cluster.ClusterManager.null [10.30.197.120]:5701 [dev]
Members [6] {
Member [10.30.197.223]:18934
Member [10.30.197.223]:5701
Member [10.30.197.226]:18934
Member [10.30.197.226]:5701
Member [10.30.197.120]:5701 this
Member [10.30.197.253]:5701
}
这就是我想要得到的:
Members [2] {
Member [ecarbsul1680h11]:18934 this
Member [ecarbsul1550h11]:18934
}
你能帮我知道我的配置有什么问题吗? 谢谢
XML 中的此行
<hz:hazelcast id="instance">
将指示 Spring 创建 1 个类型为"HazelcastInstance"的 @Bean,Bean 名称为"instance"。
如果使用此文件,您将看到提及群集名称mass-storage-${env}
的日志消息。
您有日志消息
03-Jun-2020 17:16:17.657 INFO [hz._hzInstance_2_dev.ServiceThread] com.hazelcast.cluster.ClusterManager.null [10.30.197.120]:5701 [dev]
提及不同的群集名称(默认群集名称dev
(。
因此,创建 Hazelcast 实例的任何内容都不会使用此 XML 文件,这就是为什么它的行为不符合您的要求。
尝试使用@ImportResource("classpath:hazelcast-spring.xml")
让 Spring 加载 XML。
我也看到提到雄猫。如果您将 Tomcat 与 Hazelcast 一起使用进行会话缓存,Tomcat 将创建自己的 Hazelcast 实例,除非您告诉它使用现有实例。这可以解释额外的实例来自哪里。