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 是一个开源内存数据网格 (IMDG)。它提供弹性可扩展的分布式内存计算,并被广泛认为是提高应用程序性能的最快且最具可扩展性的方法。更重要的是,Hazelcast 通过提供许多对开发人员友好的 Java 接口(例如 Map、Queue、ExecutorService、Lock 和 JCache)的分布式实现,使分布式查询、计算变得简单。

Hazelcast 具有高度可扩展性和可用性。分布式应用程序可以使用 Hazelcast 进行分布式缓存、同步、集群、处理、发布/订阅消息传递等。

当前,Hazelcast也提供商业版本,分为  Pro 和 Enterprise 。Enterprise 商业版提供了内存存储压缩、热重启持久化、安全套件等额外的功能。

Hazelcast服务模式分为 嵌入型服务器/客户端

嵌入型仅需使用对应的 hazelcast.jar 即可开启本地缓存服务,缓存的数据通过序列化后放在 堆内存 中,同业务存储数据耦合。

服务器/客户端模式拆分独立的服务器开启缓存集群,客户端通过 ClientConfig 进行缓存访问。

   

特点

  • Hazelcast简单,单用Java语言编写的,没有其他依赖,直接添加 hazelcast.jar 就可以使用
  • Hazelcast可扩展性好,具有天然的集群优势,通过多种发现模式,自动发现成员并添加到集群
  • Hazelcast速度快,数据存放在内存中,读取和更新非常迅速
  • Hazelcast数据冗余,每个节点都有其他节点的分区数据,成员节点发生故障能快速从备份中恢复
  • Hazelcast提供缓存一致性解决方案,write-throughread-through 等。
  • Hazelcast提供分布式存储、查询和计算,能极大的利用集群中每个服务器CPU和内存空间。

      

优劣势

这里仅和同为key/value的存储数据库 Redis 对比。

Hazelcast VS Redis

HazelcastRedis
开发语言JAVA        C
线程多线程,分为3种类型:接收请求、读取数据、写入数据单线程
缓存一致性缓存服务提供 write-through 等直写等策略旁路策略,需要额外的线程处理
数据存储序列化后存储在堆内存,数据太多会导致垃圾回收器 stop the world

jemalloc内存分配器,经过编码压缩在内

存中

备份通过271个分区,每个节点都有自己的主数据,每个节点都有数据备份主从sentinel
查询基础查询和支持复杂的查询,类SQL查询语言

基础查询和通过设计复杂key实现复杂的

查询

性能多节点线程越多提升越快单节点CRUD性能较强
分布式集群   自带的多种发现机制形成集群自带redis-cluster
脑裂                通过限制最小成员数量和合并策略,无法根本解决

从节点通信数和通信ACK时间来处理脑裂

,无法根本解决

技术文档      文档较少,社区活跃度不高文档非常多,社区非常活跃
语言支持        相对较少,主要是java更多

     

其他  

  • Hazelcast因为放在堆内存,所以当数据量很大,导致垃圾回收器长时间 Stop The World,会导致整个应用程序不可用
  • Hazelcast Platfrom 是将 Hazelcast IMDG 和 Hazelcast Jet 进行整合合并的统一版本,从5.0 开始
  • 使用 Hazelcast 可以仅使用 Hazalcast.jar 依赖,当然,如果配合 Spring Boot,可以添加hazelcast-spring 依赖,它默认扫描 hazelcast.yaml 并注入 HazelcastInstance 对象
  • Hazelcast 自己提供 Management Center 用于监控和治理整个Hazelcast集群
  • Hazelcast 每个版本 jar 里面都有当前版本所有的配置项文件 hazelcast-full-example.yaml 和 默认配置项 hazelcast-default.yaml,当然,也有客户端的,这对于使用配置项和了解当前版本情况非常有帮助

          

总结

如上所述,Hazelcast 更专注于内存数据管理、分布式计算和查询,而 Redis 是一种更通用的数据存储,具有高级功能和更广泛的语言支持。如果只是作为简单的内存数据库使用,Redis显然更加适合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值