暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Kafka 为什么要放弃 Zookeeper

IT技术精选文摘 2021-11-21
785

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

1.Kafka简介

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

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

  • 消息队列,Kafka
    具有系统解耦、流量削峰、缓冲、异步通信等消息队列的功能。
  • 分布式存储系统,Kafka
    可以把消息持久化,同时用多副本来实现故障转移,可以作为数据存储系统来使用。
  • 实时数据处理,Kafka
    提供了一些和数据处理相关的组件,比如Kafka Streams
    Kafka Connect
    ,具备了实时数据的处理功能。

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

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

  • producer
    consumer
    : 消息队列中的生产者和消费者,生产者将消息推送到队列,消费者从队列中拉取消息。
  • consumer group
    :消费者集合,这些消费者可以并行消费同一个topic
    下不同partition
    中的消息。
  • broker
    Kafka
    集群中的服务器。
  • topic
    :消息的分类。
  • partition
    topic
    物理上的分组,一个topic
    可以有partition
    ,每个partition
    中的消息会被分配一个有序的id
    作为offset
    。每个consumer group
    只能有一个消费者来消费一个partition

2.Kafka和Zookeeper关系

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

看下面这张图:

2.1 注册中心

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

5.升级

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

6.总结

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

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

点击下方

文章转载自IT技术精选文摘,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论