码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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-through 和 read-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显然更加适合。

  • 相关阅读:
    如何验收安卓PCBA主板的质量和性能
    【无标题】
    C语言-入门-const关键字(十九)
    剑指 Offer 62 圆圈中最后剩下的数字 Java
    Pytorch DistributedDataParallel(DDP)教程二:快速入门实践篇
    解决Vue发布后新旧包切换点击路由报错问题
    循环神经网络-简洁实现
    基于晶体结构算法优化概率神经网络PNN的分类预测 - 附代码
    诊断故障码(Diagnostic Trouble Code-DTC)
    firewalld服务讲解
  • 原文地址:https://blog.csdn.net/qq_35427539/article/details/133167248
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号