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 实例,除非您告诉它使用现有实例。这或许可以解释额外实例的来源。