Spring boot 带弹簧靴的Hazelcast
我在研究hazelcast时发现了一些与springboot的良好集成。但是,我想了解是这样,还是我们需要hazelcast服务器来实现产品就绪。有人可以指出一个资源,我可以在其中查看设置您可以在嵌入式模式下运行Hazelcast,其中Hazelcast群集节点与应用程序客户端共存,或者在客户端-服务器模式下运行Hazelcast,其中Hazelcast群集与应用程序客户端分离。两者都可用于生产。嵌入式系统通常更容易快速启动和运行。如果希望能够独立于应用程序客户机调整和扩展集群,那么客户机服务器可能会更好 看 在架构之间切换应用程序代码的唯一变化是实例化客户机的代码行Spring boot 带弹簧靴的Hazelcast,spring-boot,hazelcast,Spring Boot,Hazelcast,我在研究hazelcast时发现了一些与springboot的良好集成。但是,我想了解是这样,还是我们需要hazelcast服务器来实现产品就绪。有人可以指出一个资源,我可以在其中查看设置您可以在嵌入式模式下运行Hazelcast,其中Hazelcast群集节点与应用程序客户端共存,或者在客户端-服务器模式下运行Hazelcast,其中Hazelcast群集与应用程序客户端分离。两者都可用于生产。嵌入式系统通常更容易快速启动和运行。如果希望能够独立于应用程序客户机调整和扩展集群,那么客户机服务器
Hazelcast.newHazelcastInstance(); // creates an embedded client instance
当
我推荐参考手册作为配置选项以及如何实现所需功能的最终来源
我建议您仔细阅读参考手册。但我还想分享我是如何在生产服务器上部署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>
步骤3:然后可以使用@Cacheable
注释对方法进行注释
@Cacheable(cacheNames = "your_cache_name")
public POJO foo(Parameter1 parameter1,
Parameter2 parameter2) {
return pojoRepository.findByParameters(parameter1, parameter2);
}
在没有附加db层的情况下使用hazelcast嵌入式模式是否安全。我有一个要求,即我只需要存储dat的数据,并且数据不敏感。我的应用程序将部署在2个实例上。嵌入式模式适合这种情况吗?如果您有2个实例,那么每个实例的分区都将备份到另一个实例(假设1个异步备份的默认配置没有更改)。因此,您可以在不丢失数据的情况下丢失一个节点。如果“数据不敏感”,则可以在没有持久层的情况下运行。但是,如果某个节点发生故障,并且您没有准备好立即投入服务的备用设备,那么您将在不受保护的情况下运行,并且有丢失所有数据的风险。
@Bean
public CacheManager cacheManager(HazelcastInstance hazelcastInstance) {
return new com.hazelcast.spring.cache.HazelcastCacheManager(hazelcastInstance);
}
@Cacheable(cacheNames = "your_cache_name")
public POJO foo(Parameter1 parameter1,
Parameter2 parameter2) {
return pojoRepository.findByParameters(parameter1, parameter2);
}