千家信息网

spring boot与内存数据库Hazelcast整合是怎样的

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇文章为大家展示了spring boot与内存数据库Hazelcast整合是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言spring boot
千家信息网最后更新 2026年11月03日spring boot与内存数据库Hazelcast整合是怎样的

本篇文章为大家展示了spring boot与内存数据库Hazelcast整合是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

前言

spring boot 在此就不多做介绍了,想来大家对他应该都不陌生了

Hazelcast 可能大家就毕竟陌生了:

  • 简单易用
    Hazelcast是用Java编写的,没有其他依赖关系。只需简单的把jar包引入项目的classpath即可创建集群。

  • 无主从模式
    与许多NoSQL解决方案不同,Hazelcast节点是点对点的。没有主从关系; 所有成员都存储相同数量的数据,并进行相等的处理,避免了单点故障。

  • 弹性可扩展
    Hazelcast旨在扩展成千上万的成员。新成员启动,将自动发现群集,并线性增加存储和处理能力。成员之间通过TCP保持连接和通讯。

  • 读写快速高效
    Hazelcast所有数据都存储在内存中,提供基于内存快速高效的读写能力。

PS:另外就是--根据基准测试,Hazelcast在获取数据方面比Redis快56%,在设置数据方面比Redis快44%。

用例

下面主要是讲讲springboot和Hazelcast的整合,并给出Hazelcast支持的数据类型MAP、List、Topic、Queue给出了使用实例。

整合配置:

@Configurationpublic class HazelcastConfig {        @Bean        public Config config() {                Config config = new Config();                GroupConfig gc=new GroupConfig(Const.HAZELCAST_NAME);//解决同网段下,不同库项目                                config.setInstanceName("hazelcast-instance")                                .addMapConfig(new MapConfig().setName("configuration")                                .setMaxSizeConfig(new MaxSizeConfig(2000, MaxSizeConfig.MaxSizePolicy.FREE_HEAP_SIZE))                                .setEvictionPolicy(EvictionPolicy.LRU).setTimeToLiveSeconds(-1))                                .setGroupConfig(gc);                return config;        }                @Bean        public HazelcastInstance hazelcastInstance(Config config) {                HazelcastInstance hzInstance = Hazelcast.newHazelcastInstance(config);                 //分布式map监听                IMap imap = hzInstance.getMap(Const.MAP_NAME);                imap.addLocalEntryListener(new IMapListener());                //拦截器(没写内容)                imap.addInterceptor(new IMapInterceptor());                //发布/订阅模式                ITopic topic = hzInstance.getTopic(Const.TOPIC_NAME);                 topic.addMessageListener(new TopicListener());                                return hzInstance;        }}

map数据变化的拦截器实现:

public class IMapInterceptor implements MapInterceptor{        private static final long serialVersionUID = 3556808830046436753L;        @Override        public Object interceptGet(Object value) {                // TODO Auto-generated method stub                return null;        }        @Override        public void afterGet(Object value) {                // TODO Auto-generated method stub                        }        @Override        public Object interceptPut(Object oldValue, Object newValue) {                // TODO Auto-generated method stub                return null;        }        @Override        public void afterPut(Object value) {                // TODO Auto-generated method stub                        }        @Override        public Object interceptRemove(Object removedValue) {                // TODO Auto-generated method stub                return null;        }        @Override        public void afterRemove(Object oldValue) {                // TODO Auto-generated method stub                        }}

map数据变化的监听器实现:

public class IMapListener implements EntryAddedListener{        @Override        public void entryAdded(EntryEvent event) {                // TODO Auto-generated method stub                //干你监听的操作                System.out.println("MAP分布式监听:"+event.getValue());        }}

Topic订阅接收消息:

public class TopicListener implements MessageListener {                @Override        public void onMessage(Message message) {                String msg=message.getMessageObject();                System.out.println("收到Topic消息:"+msg);        }}

List和Queue的实例

这两个我就没写在实际代码中,在test写了2个main方法

//生产数据public class HazelcastGetStartServerMaster {    public static void main(String[] args) {        // 创建一个 hazelcastInstance实例        HazelcastInstance instance = Hazelcast.newHazelcastInstance();        // 创建集群Map        IList clusterMap = instance.getList("myList");        clusterMap.add("list0");        clusterMap.add("list1");        // 创建集群Queue        Queue clusterQueue = instance.getQueue("MyQueue");        clusterQueue.offer("Hello hazelcast!");        clusterQueue.offer("Hello hazelcast queue!");    }}
//消费数据public class HazelcastGetStartServerSlave {    public static void main(String[] args) {        //创建一个 hazelcastInstance实例        HazelcastInstance instance = Hazelcast.newHazelcastInstance();        IList clusterList = instance.getList("myList");        Queue clusterQueue = instance.getQueue("MyQueue");                System.out.println("Map Value:" + clusterList.get(1));        System.out.println("Queue Size :" + clusterQueue.size());        System.out.println("Queue Value 1:" + clusterQueue.poll());        System.out.println("Queue Value 2:" + clusterQueue.poll());        System.out.println("Queue Size :" + clusterQueue.size());    }}

这个时候启动项目显示如下:

当前只有一个节点,端口为:5701

这个时候写个main方法测试分布式map:

public class IMapTest {        public static void main(String[] args) {                Config config = new Config();                GroupConfig gc=new GroupConfig(Const.HAZELCAST_NAME);                config.setGroupConfig(gc);                HazelcastInstance hzInstance = Hazelcast.newHazelcastInstance(config);                                 IMap imap = hzInstance.getMap(Const.MAP_NAME);                imap.put("myKey", "myObject");    }}

运行main方法发现原来启动的项目找那个Member变成了2个,因为main方法中也启动了一个Hazelcast实例加入了集群中。imap的拦截器,我监听器都生效了。并获取到了main方法中加的数据,因为Hazelcast是集群的,数据可以在许多应用程序实例之间共享。

上述内容就是spring boot与内存数据库Hazelcast整合是怎样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

数据 实例 方法 集群 监听 内存 整合 成员 项目 内容 分布式 拦截器 存储 数据库 不同 陌生 主从 之间 就是 技能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 精品咖啡豆 中关村互联网 科技集团 互联网科技公司的优势 互联网是不是新科技 金融科技创新监管互联网金融 互联网科技小贷 小马过河互联网科技 广州善班互联网科技 重庆科技学院互联网 深圳卡尔迅互联网科技有限公司怎么样 老年人脱离互联网科技的作文 恒银科技与互联网金融 宁夏科技产业互联网案例 南平创想时代互联网科技有限公司 世界互联网领先科技成果获奖 厦门江牛科技互联网 上海创道互联网络科技有限公司 半导体是互联网高科技吗 互联网科技企业商标注意事项 伍佰万互联网科技是干嘛的 蓝思科技飞鸽互联网 互联网科技公司华为 科技与互联网 互联网巨头反垄断金融科技 互联网科技产品 智腾互联网科技有限公司 合肥互联网科技公司公章图片 锡山区互联网智能科技产品供应 21世纪互联网科技成就 版纳互联网科技选哪家
0