【问题标题】:Hazelcast :: Configure for only one host with SpringHazelcast :: 仅使用 Spring 为一台主机配置
【发布时间】:2020-01-06 08:26:25
【问题描述】:

现在,我正在使用 spring mvc 和 hazel cast。

我的应用程序一切正常。

为了更好的性能,我们想使用缓存方法。

我们不能使用EhCache,因为我们在同一个服务器上有两个应用程序和一个数据库。

所以,我们转移到Hazelcast,并且我们已经配置并且它正在工作。

我们得到了我们想要的,但问题是 hazelcast 正在寻找其他服务器,而其他服务器可以加入我们的服务器进行缓存过程。

这就是问题所在。

我们只想将 hazelcast 用于一台服务器,并且没有传入请求和传出请求加入多播。

我们只想在我们的一台服务器上共享数据。

但我们找不到合适的配置。

我们当前的配置如下图:

在 Java 配置中

Config config = new Config("instance");

NetworkConfig network = config.getNetworkConfig();

JoinConfig join = network.getJoin();

join.getMulticastConfig().setEnabled(false);

join.getTcpIpConfig().setEnabled(false);

在 spring-application-context.xml 中

<cache:annotation-driven cache-manager="cacheManager" />

<bean id="cacheManager" class="com.hazelcast.spring.cache.HazelcastCacheManager">
    <constructor-arg ref="instance"/>
</bean> 

<hz:hazelcast id="instance">
    <hz:config>
        <hz:group name="dev" password="password"/>
    </hz:config>
</hz:hazelcast>

缓存在上述代码中运行良好,但它加入了多个服务器。

请帮我为一台服务器配置它,不要外部加入。

谢谢

【问题讨论】:

    标签: java spring spring-mvc caching hazelcast


    【解决方案1】:

    多播是唯一默认启用的发现机制,因此关闭它应该是阻止此服务器加入其他服务器所需要的全部内容。

    spring-application-context.xml试试

        <hz:hazelcast id="instance">
            <hz:config>
                <hz:group name="dev" password="password"/>
                <hz:network port="5701" port-auto-increment="false">
                    <hz:join>
                        <hz:multicast enabled="false"/>
                    </hz:join>
                </hz:network>
            </hz:config>
        </hz:hazelcast>
    

    Java 配置看起来也不错,但我看不出它在哪里使用。

    同样,将组名更改为“dev”以外的名称。 "dev" 是默认值,所以如果您暂时使用不同的名称并在日志中看到新名称,则表明您的配置正在被使用。

    【讨论】:

    • 谢谢,我会测试并会问你是否还有其他人。我们只是使用 java 来防止加入其他人以及从其他人加入我。我认为,它不起作用。我们将尽快更改组名。
    • 我无法启动我的第二个应用程序。它显示错误Port [5701] is already in use and auto-increment is disabled. Hazelcast cannot start. 是针对同一服务器的不同应用程序的任何其他不同配置。谢谢
    • 如何防止其他服务器加入我们的服务器。关闭多播就够了吗?
    • 我可以为集群设置最大成员数吗?
    • 您可以在hz:group 部分设置name。只有名称匹配的进程才能连接在一起。但是,这不会对组中的人数设置上限,因为 Hazelcast 旨在实现可扩展性。
    猜你喜欢
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 2015-05-29
    • 2014-10-31
    相关资源
    最近更新 更多