Kafka 为什么要放弃 Zookeeper

最近,confluent社区发表了一篇文章,主要讲述了Kafka未来的2.8版本将要放弃Zookeeper,这对于Kafka用户来说,是一个重要的改进。之前部署Kafka就必须得部署Zookeeper,而之后就只要单独部署Kafka就行了。[1]

1.Kafka简介

Apache Kafka最早是由Linkedin公司开发,后来捐献给了Apack基金会。

Kafka被官方定义为分布式流式处理平台,因为具备高吞吐、可持久化、可水平扩展等特性而被广泛使用。目前Kafka具体如下功能:

  • 消息队列,Kafka具有系统解耦、流量削峰、缓冲、异步通信等消息队列的功能。

  • 分布式存储系统,Kafka可以把消息持久化,同时用多副本来实现故障转移,可以作为数据存储系统来使用。

  • 实时数据处理,Kafka提供了一些和数据处理相关的组件,比如Kafka StreamsKafka Connect,具备了实时数据的处理功能。

下面这张图是Kafka的消息模型:[2]

0ed2b3013cad9961f13fbcb6a65d11f7.png

通过上面这张图,介绍一下Kafka中的几个主要概念:

  • producerconsumer: 消息队列中的生产者和消费者,生产者将消息推送到队列,消费者从队列中拉取消息。

  • consumer group:消费者集合,这些消费者可以并行消费同一个topic下不同partition中的消息。

  • brokerKafka集群中的服务器。

  • topic:消息的分类。

  • partitiontopic物理上的分组,一个topic可以有partition,每个partition中的消息会被分配一个有序的id作为offset。每个consumer group只能有一个消费者来消费一个partition

2.Kafka和Zookeeper关系

Kafka架构如下图:c7c65a29cd3fec675478acf329a3b09a.png从图中可以看到,Kafka的工作需要Zookeeper的配合。那他们到底是怎么配合工作呢?

看下面这张图:6c21d3f4c77111384c0392e8c4a2f765.png

2.1 注册中心

10a4f7709424b81eb2f33180b042b3c0.png

69715d378be09551491854d3fef98cbe.png

b904aa1eab57c3e179330d4a7c9cbc21.png

898e894a987a5d5c1529c490ef58155c.png

080e581ff0f5fdb4e0124c418a91dd4b.png

2926da2c60f214e714d5b05a3238c952.png

f2e3a84b6020d9b8d46ccef9266caccb.png

784ad829125a429adcf6f88a7ee4d214.png

7c7f100a1272436ebcdcac84616be07a.png

所以,Kafka单集群承载的分区数量是一个瓶颈。而这又恰恰是一些业务场景需要的。

5.升级

升级前后的架构图对比如下:

fa94b9e7a9b580ec792ffcf043a142ea.png

6b2e7d83d008d93ddfc4dcedcbb5c768.png

6.总结

在大规模集群和云原生的背景下,使用ZookeeperKafka的运维和集群性能造成了很大的压力。去除Zookeeper是必然趋势,这也符合大道至简的架构思想。

69ea508f12580c5ef51b3545106de4e4.png

烧脑?放松一下,听下音乐吧

10a8587014634e23d41600c9ca101cb6.png

点击下方

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值