HazelCast 配置生成大量成员
HazelCast configuration generates a lot members
我正在尝试将 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 名称为 "instance" 的 @Bean。
如果 这个文件被使用,你会看到提到集群名称 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。如果您将 Tomcat 与 Hazelcast 一起用于会话缓存,则 Tomcat 将创建它自己的 Hazelcast 实例,除非您告诉它使用现有实例。这或许可以解释额外实例的来源。
我正在尝试将 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 名称为 "instance" 的 @Bean。
如果 这个文件被使用,你会看到提到集群名称 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。如果您将 Tomcat 与 Hazelcast 一起用于会话缓存,则 Tomcat 将创建它自己的 Hazelcast 实例,除非您告诉它使用现有实例。这或许可以解释额外实例的来源。