Kafka 为什么要放弃 Zookeeper
2023-03-15 23:22:56 时间
最近,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
是必然趋势,这也符合大道至简的架构思想。
相关文章
- 从本体论开始说起——运营商关系图谱的构建及应用
- 如何成为一名数据科学家?
- 从未见过的堂兄杀了人,你的DNA是关键证据
- 20个安全可靠的免费数据源,各领域数据任你挑
- 20个安全可靠的免费数据源,各领域数据任你挑
- 阿里云李飞飞:All in Cloud时代,云原生数据库优势明显
- 基于Hadoop生态系统的一高性能数据存储格式CarbonData(性能篇)
- 大数据告诉你:10年漫威,到底有多少角色
- TigerGraph:实时图数据库助力金融风控升级
- Splunk利用Splunk Connected Experiences和Splunk Business Flow 扩大数据访问
- 大数据开发常见的9种数据分析手段
- 以免在景区看人,我爬了5W条全国景点门票数据...
- 【实战解析】基于HBase的大数据存储在京东的应用场景
- 数据科学家告诉你哪些计算机科学书籍是你应该看的
- Kafka作为大数据的核心技术,你了解多少?
- Spring Boot 整合 Redis 实现缓存操作
- 大数据学习必须掌握的五大核心技术有哪些?
- 基于Antlr在Apache Flink中实现监控规则DSL化的探索实践
- 甲骨文再次被Gartner评为分析型数据管理解决方案魔力象限领导者
- 爬取吴亦凡微博102118条转发数据,扒一扒流量的真假