etcdraft vs kafka

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了etcdraft vs kafka相关的知识,希望对你有一定的参考价值。

参考技术A

在最新版本的fabric中,现在存在三种共识排序方式——solo、kafka、etcdraft,其中kafka和etcdraft是多机部署模式。受此启发,对fabric和kafka做一个对比。

ETCD 是用于共享配置和服务发现的分布式,一致性的KV存储系统。

Kafka 是由[Apache软件基金会]开发的一个开源流处理平台,是一种高吞吐量的[分布式]发布订阅消息系统。

etcd和kafka都是分布式的系统,数据在各个节点之间需要保持一致。kafka是借助zookeeper来实现数据一致性,etcd是使用raft协议来保持数据一致性。下面详细介绍一下kafka和etcd分别通过什么方式来保证数据一致的.

2.1.1 首先介绍两个重要概念

2.1.2 数据同步过程
(1). 主节点接收到数据数据后,会把本地leo+1。
(2). 把数据分发给从节点。
(3). 从节点leo+1。
(4). 从节点执行完成后返回给主节点。
(5). 等ISR列表中的从节点都返回后,主节点执行hw+1。

*对于Leader新写入的msg,Consumer不能立刻消费,Leader会等待该消息被所有ISR中的replica同步后,更新HW,此时该消息才能被Consumer消费,即Consumer最多只能消费到HW位置。这样就保证了如果Leader Broker失效,该消息仍然可以从新选举的Leader中获取。对于来自内部Broker的读取请求,没有HW的限制。

以上是关于etcdraft vs kafka的主要内容,如果未能解决你的问题,请参考以下文章

多图详解Raft算法原理

CynosDB技术详解——存储集群管理

多图:Raft算法原理非常详细的解读

Hyperledger Fabric动态配置Raft节点

Fabric1.4.1视频教程即将推出

菜鸟系列Fabric——Fabric 1.4共识机制