Hazelcast系列(二):hazelcast集成

系列文章

Hazelcast系列(一):初识hazelcast

Hazelcast系列(二):hazelcast集成

Hazelcast系列(三):hazelcast管理中心

Hazelcast系列(四):Auto-Detection发现机制

Hazelcast系列(五):Multicast发现机制

Hazelcast系列(六): TCP-IP发现机制

目录

前言

集成

        环境

        配置 

                配置一

                配置二       

                配置三

测试

其他

总结


前言

前面通过 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.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;
    }

}
    
            com.hazelcast
            hazelcast
            5.1.7
    
  • 配置二
    • 说明:只依赖  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;
    }
}
 
            com.hazelcast
            hazelcast
            5.1.7
 
hazelcast:
  cluster-name: hazelcast-cluster
  instance-name: hazelInstance_local1
  • 配置三
    • 说明:除了依赖  hazelcast.jar ,无需再添加任何配置Springboot 扫描 hazelcast.yaml 自动注入 Config 对象
    • pom 以及 hazelcast.yaml

	com.hazelcast
	hazelcast
	5.1.7


hazelcast:
  cluster-name: hazelcast-cluster
  instance-name: hazelInstance_local1

注意:SpringBoot自动配置已经帮我们实现了扫描配置并注入 Config 以及 HazelcastInstance 的功能

扫描路径:

  • file:./hazelcast.xml
  • classpath:/hazelcast.xml 
  • file:./hazelcast.yaml
  • classpath:/hazelcast.yaml
  • file:./hazelcast.yml
  • classpath:/hazelcast.yml

测试

  • 说明:这里我们随便选择一种或者多种集成配置方式,分别放在两个本地应用中,查看是否自动发现并组成集群,这里采用 配置二 配置三
  • 结果:
    • 应用1:Hazelcast系列(二):hazelcast集成_第1张图片
    • 应用2:Hazelcast系列(二):hazelcast集成_第2张图片

其他

  1. Hazelcast的 auto-detection 发现方式,默认支持 AWS,Azure,GCP,Kubernetes 等环境,如果没有发现上述环境,则默认退化为 multicast,不建议生成环境中使用
  2. Muticast 组播需要组播协议的支持,如果禁用了组播协议,则成员之间无法自动发现并形成集群,不建议生成环境中使用
  3. 所有的成员都是通过 TCP/IP 进行通信,无论何种发现方式
  4. SringBoot 默认管理了 Hazelcast 的依赖,所以如果使用了 SpringBoot 的依赖管理,我们可以直接依赖后使用 
  5. clusterName 表示形成集群的名称,用于隔离多个集群,老版本为 groupName
  6. instanceName 表示当前节点的名称

总结

Hazelcast 集成还是比较方便和快捷的,特别是如果和 Spring 集成,咱们关注的,主要还是服务器环境下成员之间的发现方式以及后续的 CRUD 操作。

你可能感兴趣的:(数据库,Hazelcast,Hazelcast集成)