Hazelcast介绍
全称是Hazelcast IMDG (In-Memory Data Grid),内存数据网格。
特点
- 开源
- 仅需要JAR文件,无需安装其他软件。
- 提供类库,不影响业务架构。
- 提供开箱即用的分布式数据结构,例如Map, Queue, MultiMap, Topic, Lock and Executor。
- 无主概念,没有单点故障,成员都是对等。
- 集群动态扩展,新增成员可以弹性提高内存和计算能力。
- 数据相互冗余和备份,防止成员宕机导致的数据丢失。
- 成员相互感知,区别于传统的kv缓存解决方案。
- 可使用SPI构建自定义分布式数据结构
- 开源社区长久持续开发
适合选型
- 应用分析,需要大数据分区处理
- 网格化数据读取
- 缓存,且支持JCache及弹性分布式扩展
- 数据存储,支持高性能、可扩展、低延迟
- 基于内存NoSQL-kv存储
- 发布/订阅,应用间支持高传播和可用性
- 在分布式云环境支持弹性扩展
- 高可用cache
- 支持Coherence and Terracotta
优势
支持并发数据结构,提供Java常用的数据结构,例如 Map, Queue, ExecutorService, Lock and JCache。
轻量级、易用,提供JAR可快速集成,无需额外依赖。
支持分布式缓存, 同步, 集群, 发布/订阅等,
部署简单,启动hazelcast.jar即可快速扩展分布式集群。
去中心化,点对点。无master 和 slave,无单点故障,所有成员数据对等。可以在程序中引入server或client。
自动扩展,可以支持成百上千集群,支持成员自动发信和线性增长内存和处理能力,成员间在TCP层进行连接。
快速查询和更新,内存存储。
冗余,多成员间互相冗余数据,成员宕机后由副本成员提供不间断的操作支持。
数据上报
Hazelcast内部采用Phone Home
进行内部实例初始化和集群同步的情况上报;上报时间为启动时和每隔24小时。
上报地址是:http://phonehome.hazelcast.com/ping
(版本3.6+)
上报内容是:
- Hazelcast IMDG 版本
- Hazelcast IMDG 成员id
- 集群hash值
- 集群启动时间
- ..
关闭上报:hazelcast.phone.home.enabled=false
JDK版本兼容
Hazelcast3.11+,支持JDK6-11