Hazelcast系列(二):hazelcast集成(嵌入式)

系列文章

Hazelcast系列(一):初识hazelcast

Hazelcast系列(二):hazelcast集成(嵌入式)

Hazelcast系列(三):hazelcast集成(服务器/客户端)

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

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

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

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

Hazelcast系列(八):数据结构

Hazelcast系列(九):Map(一)加载和存储

Hazelcast系列(十):Map(二)监听器和拦截器

Hazelcast系列(十一):Map(三)备份、过期驱逐与内存格式

目录

前言

集成

        环境

        配置 

                配置一

                配置二       

                配置三

测试

其他

总结


前言

前面通过 Hazelcast系列(一):初识hazelcast 让我们对Hazelcast有了一个大概得认识和了解,接下来我们对 Hazelcast 进行集成使用。

Hazelcast集成可以单独依赖 hazelcast.jar ,以及在Spring中搭配 hazelcast-spring.jar 使用

这里,我们多种方式都使用一下,当前集成主要是用于内存数据库使用,选择模式为 嵌入式

关于发现方式,这里使用默认的发现方式: auto-detection,老版本默认的发现方式是:multicast 。当前版本 5.1.7 使用的是  auto-detection

集成

  • 环境

名称版本
jdk1.8.0_361
spring-boot2.7.16
hazelcast5.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 ,无需再添加任何配置Springboot 扫描 hazelcast.yaml 自动注入 Config 对象
    • pom 以及 hazelcast.yaml
<dependency>
	<groupId>com.hazelcast</groupId>
	<artifactId>hazelcast</artifactId>
	<version>5.1.7</version>
</dependency>

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:
    • 应用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 嵌入式集成还是比较方便和快捷的,特别是如果和 SpringBoot 集成,咱们关注的,主要还是服务器环境下成员之间的发现方式以及后续的缓存处理操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值