【问题标题】:3 node are created in localhost hazelcast on port 5710,5711,5712,5713 (hazelcast version 3.1.3)在端口 5710,5711,5712,5713 的 localhost hazelcast 中创建了 3 个节点(hazelcast 版本 3.1.3)
【发布时间】:2017-05-16 19:10:10
【问题描述】:

您好,我目前正在使用默认配置版本并为二级缓存运行 spring+JPA+Hibernate+Hazelcast。 在我的一台服务器上创建了多个 hazelcast 节点,以下是我的配置

    <group>
            <name>user-dev</name>
            <password>user-dev-pass</password>
        </group>
         <property name="hibernate.cache.hazelcast.instance_name">SERVER1_HAZELCAST</property>
        <management-center enabled="true">http://localhost:8080/mancenter-3.1.8</management-center>
        <network>
            <port auto-increment="true" port-count="100">5711</port>
            <outbound-ports>
                <!--
                Allowed port range when connecting to other nodes.
                0 or * means use system provided port.
                -->
                <ports>0</ports>
            </outbound-ports>
            <join>
                <multicast enabled="false">
                    <multicast-group>224.2.2.3</multicast-group>
                    <multicast-port>54320</multicast-port>
                </multicast>
                <tcp-ip enabled="true">
                    <interface>127.0.0.1:5710</interface>
                </tcp-ip>

            </join>
            <interfaces enabled="false">
                <interface>10.10.1.*</interface>
            </interfaces>
            <ssl enabled="false" />
            <socket-interceptor enabled="false" />  

Below are the logs:
Members [4] {
    Member [127.0.0.1]:5710 this
    Member [127.0.0.1]:5711
    Member [127.0.0.1]:5712
    Member [127.0.0.1]:5713
}

16:37:25,555 INFO  [com.hazelcast.cluster.ClusterService] (hz.WS-DBCacheInstance.cached.thread-7) [127.0.0.1]:5711 [user-dev] 

Members [4] {
    Member [127.0.0.1]:5710
    Member [127.0.0.1]:5711 this
    Member [127.0.0.1]:5712
    Member [127.0.0.1]:5713
}

谁能帮我解决这个问题

编辑添加的代码:--

@Configuration
public class HazelcastConfig {
    private static final String INSTANCE_NAME = "mycache";
    private static final String HAZELCAST_CONFIG_XML = "hazelcast.xml";

    @Bean
    public HazelcastInstance hazelcastInstance() {
        HazelcastInstance instance = Hazelcast.getHazelcastInstanceByName(INSTANCE_NAME);
        if (instance == null) {
            Config config = new ClasspathXmlConfig(HAZELCAST_CONFIG_XML);
            config.setInstanceName(INSTANCE_NAME);
            config.setProperty("hazelcast.logging.type", "none");
            instance = Hazelcast.newHazelcastInstance(config);
        }
        return instance;
    }

    @Bean
    public HazelcastCacheManager cacheManager(HazelcastInstance hazelcastInstance) {
        return new HazelcastCacheManager(hazelcastInstance);
    }

【问题讨论】:

  • 问题是什么?也许我错过了。
  • @noctarius 为什么 hazelcast 创建多个节点,我在 1 台服务器上有 2 台服务器,它工作正常,只创建一个节点,在服务器 2 上创建 3 个节点,所以总共创建了 4 个节点,据我了解2台服务器必须只有2个节点,如果我的理解有误,请纠正我。
  • 你能添加代码 sn-p 来说明你是如何启动 Hazelcast 节点的吗?顺便说一句,您可以在每台服务器上运行任意数量的节点。
  • 代码在 spring 中添加了它的 just bean 配置

标签: hazelcast


【解决方案1】:

好的,让我试着改写你的问题,我希望我做对了。你想使用 Hazelcast (plain) 和 Hazelcast Hibernate 集成吗?您的 Hibernate 配置和您自己创建的 Hazelcast 实例必须具有相同的名称。或者,您可以将 Hibernate 集成配置为 Hazelcast 客户端以连接到您的集群。

https://github.com/hazelcast/hazelcast-hibernate#setting-client-server-for-hibernate http://docs.hazelcast.org/docs/3.8/javadoc/com/hazelcast/core/Hazelcast.html#getHazelcastInstanceByName-java.lang.String-

【讨论】:

  • 不,我举个例子:-我有2个war文件,分别是spring+hibernate+hazelcast配置。
  • 不,让我举个例子:-我有 2 个战争文件,它们是 spring+hibernate+hazelcast 配置。当我只启动服务器 1 并且服务器 2 停止时,它工作正常,反之亦然而且我只能看到 1 个成员节点,但是当我同时运行它们时它们形成 4 个成员,因此我很困惑。这是非常旧的应用程序,因此配置对我来说有点混乱。配置了缓存管理器,但在 hazelcast 时代码实例名称不同实例被调用并且 JPA 中 hazelcast 实例名称的配置不同,但是当只有 1 个服务器启动时它可以正常工作
  • 我认为问题出在 hazelcast 实例名称上。在获取 hazelcast 实例时,cachemanager 中使用了不同的名称。当在所有配置中保持相同的名称时,它工作正常。感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2011-11-04
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多