系列文章
Hazelcast系列(一):初识hazelcast
Hazelcast系列(二):hazelcast集成
目录
前言
集成
环境
配置
配置一
配置二
配置三
测试
其他
总结
前言
前面通过 Hazelcast系列(一):初识hazelcast 让我们对Hazelcast有了一个大概得认识和了解,接下来我们对 Hazelcast 进行集成使用。
Hazelcast集成可以单独依赖 hazelcast.jar ,以及在Spring中搭配 hazelcast-spring.jar 使用 。
这里,我们多种方式都使用一下,当前集成主要是用于内存数据库使用,选择模式为 嵌入式。
关于发现方式,这里使用默认的发现方式: auto-detection,老版本默认的发现方式是:multicast 。当前版本 5.1.7 使用的是 auto-detection。
集成
-
环境
名称 | 版本 |
jdk | 1.8.0_361 |
spring-boot | 2.7.16 |
hazelcast | 5.1.7 |
hazelcast-spring | 5.1.7 |
-
配置
-
配置一
- 说明:只依赖 hazelcast.jar ,通过 Config set参数
- 代码 和 pom
-
/**
* hazelcast配置类
*/
@Configuration
public class HazelcastServerConfig {
/**
* 配置方式一
* @return
*/
@Bean
public Config serverConfig() {
Config config = new Config();
config.setClusterName("hazelcast-cluster");
config.setInstanceName("hazelInstance_local2");
//TODO 继续设置相关服务集群信息
return config;
}
}
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>5.1.7</version>
</dependency>
-
配置二
- 说明:只依赖 hazelcast.jar ,通过 ClasspathYamlConfig 等加载自定义配置类 hazelcast.yaml
- 代码 和 pom 以及 hazelcast.yaml
/**
* hazelcast配置类
*/
@Configuration
public class HazelcastServerConfig {
/**
* 配置方式二
*
* @return
*/
@Bean
public Config serverConfigTwo() {
// ClasspathXmlConfig xmlConfig = new ClasspathXmlConfig("hazelcast.xml");
Config config = new ClasspathYamlConfig("hazelcast.yaml");
return config;
}
}
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>5.1.7</version>
</dependency>
hazelcast:
cluster-name: hazelcast-cluster
instance-name: hazelInstance_local1
-
配置三
- 说明:除了依赖 hazelcast.jar ,再添加 hazelcast-spring.jar 依赖,配置hazelcast.yaml,Springboot 扫描 hazelcast.yaml 自动注入 Config 对象
- pom 以及 hazelcast.yaml
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>5.1.7</version>
</dependency>
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast-spring</artifactId>
<version>5.1.7</version>
</dependency>
hazelcast:
cluster-name: hazelcast-cluster
instance-name: hazelInstance_local1
测试
- 说明:这里我们随便选择一种或者多种集成配置方式,分别放在两个本地应用中,查看是否自动发现并组成集群,这里采用 配置二 和 配置三
- 结果:
- 应用1:
- 应用2:
其他
- Hazelcast的 auto-detection 发现方式,默认支持 AWS,Azure,GCP,Kubernetes 等环境,如果没有发现上述环境,则默认退化为 multicast,不建议生成环境中使用
- Muticast 组播需要组播协议的支持,如果禁用了组播协议,则成员之间无法自动发现并形成集群,不建议生成环境中使用
- 所有的成员都是通过TCP/IP进行通信,无论何种发现方式
- SringBoot默认管理了Hazelcast的依赖,所以如果使用了SpringBoot的依赖管理,我们可以直接依赖后使用
- clusterName 表示形成集群的名称,用于隔离多个集群,老版本为 groupName
- instanceName 表示当前节点的名称
总结
Hazelcast集成还是比较方便和快捷的,特别是如果和Spring集成,咱们关注的,主要还是服务器环境下成员之间的发现方式以及后续的CRUD操作。