zoukankan      html  css  js  c++  java
  • 大数据生态圈的一致性

    大数据生态圈中,保证一致性的方式举不胜举
    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/

  • 相关阅读:
    powerview使用小记
    OPENWRT自动检测断线脚本
    openwrt路由在中继模式下掉线检测重启脚本
    OPENWRT断网自动关闭WIFI脚本
    jsp <li>中的多个input怎么换行
    联想笔记本G480怎么安装双系统?
    Java中List集合与Set集合
    JS中onfocus()事件,onblur()事件,onload()事件
    java之Date(日期)、Date格式化、Calendar(日历)
    如何一条SQL语句就能统计出多个表中某数据的数量?
  • 原文地址:https://www.cnblogs.com/AndersonX/p/8710512.html
Copyright © 2011-2022 走看看