当前位置: 首页 > news >正文

大数据生态圈的一致性

大数据生态圈中,保证一致性的方式举不胜举
Hadoop 用 Zookeeper(Zab, Paxos + 事务顺序)
ElasticSearch 用 Hash 路由算法(非 一致性 Hash)
Cassandra 用 Gossip 闲话算法
Redis 用 Raft 选举算法

他们各有什么区别,为什么会如此选型?
Paxos 选举算法
 Paxos 是最先解决拜占庭将军问题的算法,利用过半选举的机制,保证了集群数据副本的一致性(微服务中服务注册与发现的场景,其实已经不再适用了)
Raft 选举算法
 Redis 使用 Raft 实现了自己的分布式一致性。Raft 本身和 Paxos 并没有场景上的区别。更多的是,协议上的简化、Term 概念的强化、Log 只会从 Leader 到 Follower 单向同步,使得实现起来会很方便
Zab 原子广播协议
 Hadoop 偏向于离线的海量数据处理,利用 Zookeeper 来保证数据副本的一致性,是最为合适的
Hash 路由算法
 ElasticSearch 希望能在服务宕机的时候,也能提供查询的功能,并且希望能达到 较高的数据存储的 负载均衡的能力
一致性Hash
 数据存储的负载均衡
 最新的进展,是在去年 Google 发表的一篇 有界负载的一致性 Hash 算法的论文。该算法保证了负载均衡一致性和稳定性的同时,在均匀性方面做出了实质性地改进。同时,Consistent Hashing with Bounded Loads 算法 也在 HaProxy 开源项目中得以应用,有效减少了其 8 倍的缓存带宽
Gossip 闲话算法
 Gossip 主要被 Cassandra 用于实现其分布式一致性。因为 Cassandra 框架,更看重 去中心化 和 容错 的特性,在不违背 CAP 定理的情况下,能够接受 最终一致性

转自,侵删
https://yuzhouwan.com/posts/54206/

转载于:https://www.cnblogs.com/AndersonX/p/8710512.html

相关文章:

  • Java 8 并发篇 - 冷静分析 Synchronized(上)
  • 运维面试题
  • react-router了解一下
  • 狼叔:Node全栈为前端带来更多可能
  • 滚动条
  • 精通比特币系列---挖矿与共识
  • c:if test=/c:if如何判断空(使用例子)
  • 企业做营销型网站有什么特点
  • RxJava操作符之Share, Publish, Refcount
  • node.js学习之流解析(一)
  • SpringBoot之@EnableAutoConfiguration原理及自定义扩展
  • CentOS 6.5 安全加固
  • python之路——常用模块
  • 排序算法之选择排序
  • PostgreSQL入门及提权
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • CSS中外联样式表代表的含义
  • interface和setter,getter
  • IOS评论框不贴底(ios12新bug)
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • PHP面试之三:MySQL数据库
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Vue 动态创建 component
  • Web Storage相关
  • 爱情 北京女病人
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 大快搜索数据爬虫技术实例安装教学篇
  • 前端面试题总结
  • 时间复杂度与空间复杂度分析
  • 使用Swoole加速Laravel(正式环境中)
  • 首页查询功能的一次实现过程
  • 微服务入门【系列视频课程】
  • 携程小程序初体验
  •  一套莫尔斯电报听写、翻译系统
  • 用简单代码看卷积组块发展
  • 原生js练习题---第五课
  • Semaphore
  • zabbix3.2监控linux磁盘IO
  • ​iOS实时查看App运行日志
  • #mysql 8.0 踩坑日记
  • $forceUpdate()函数
  • (12)目标检测_SSD基于pytorch搭建代码
  • (8)STL算法之替换
  • (ros//EnvironmentVariables)ros环境变量
  • (转)IOS中获取各种文件的目录路径的方法
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET 的程序集加载上下文
  • .net 设置默认首页
  • .NET 中的轻量级线程安全
  • ::before和::after 常见的用法
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [Android]创建TabBar