带Springboot的Hazelcast

时间:2019-02-25 12:55:23

标签: spring-boot hazelcast

我正在研究hazelcast,发现与springboot有一些很好的集成。但是,我想了解是不是这样,或者我们是否需要hazelcast服务器来进行产品准备就绪的实现。有人可以指出一种可以在其中查看设置的资源

2 个答案:

答案 0 :(得分:2)

您可以在嵌入式模式(Hazelcast群集节点与应用程序客户端位于同一位置)中运行Hazelcast,也可以在客户端服务器模式下运行,其中Hazelcast群集与应用程序客户端分开。两者都可以用于生产。嵌入式通常更容易快速启动和运行。如果希望独立于应用程序客户端来调整和扩展群集,则“客户端服务器”可能会更好。

请参见https://support.hazelcast.com/hc/en-us/articles/115004441586-What-s-the-difference-between-client-server-vs-embedded-topologies-

在架构之间切换的应用程序代码的唯一变化是实例化客户端的代码行

Hazelcast.newHazelcastInstance(); // creates an embedded client instance

同时

Hazelcast.newHazelcastClient(); // creates a server client instance

我建议参考手册作为配置选项以及如何实现所需功能的权威信息

https://docs.hazelcast.org/docs/latest/manual/html-single/

答案 1 :(得分:0)

我建议您阅读参考手册。但是我也想分享一下如何在生产服务器上部署hazelcast实例以及如何使用它。

第1步:创建xml配置文件。

 <?xml version="1.0" encoding="UTF-8"?>
     <hazelcast
    xsi:schemaLocation="http://www.hazelcast.com/schema/config https://hazelcast.com/schema/config/hazelcast-config-3.9.xsd"
    xmlns="http://www.hazelcast.com/schema/config"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <group>
    <name>"your_service_name"</name>
    <password>"service_password_chosen"</password>
</group>

<properties>
    <property name="hazelcast.partition.count">83</property>
</properties>

<management-center enabled="true" update-interval="3">--url--</management-center>
<network>
    <join>
        <multicast enabled="false"/>
        <aws enabled="false"></aws>
        <tcp-ip enabled="true">
            <member>"internal ip of your instance"</member>
            <member>"internal ip of other instance</member>
        </tcp-ip>
    </join>
</network>

<map name="*.ttl3hr">
    <max-size policy="USED_HEAP_PERCENTAGE">3</max-size>
    <eviction-policy>LFU</eviction-policy>
    <statistics-enabled>true</statistics-enabled>
    <backup-count>0</backup-count>
    <async-backup-count>1</async-backup-count>
    <read-backup-data>true</read-backup-data>

    <time-to-live-seconds>10800</time-to-live-seconds>  <!--3 hours-->
</map>

第2步:添加@EnableCaching并在文件中添加一个@Configuration注释的bean。

@Bean
public CacheManager cacheManager(HazelcastInstance hazelcastInstance) {
    return new com.hazelcast.spring.cache.HazelcastCacheManager(hazelcastInstance);
}

步骤3:然后,您可以使用@Cacheable注释来注释方法。

@Cacheable(cacheNames = "your_cache_name")
public POJO foo(Parameter1 parameter1,
        Parameter2 parameter2) {
    return pojoRepository.findByParameters(parameter1, parameter2);
}