网站首页 > 技术文章 正文
大家好,我是mikechen。
Kafka是非常重要的消息中间件,在大型架构、以及大厂都有非常广泛的应用,本篇就重点谈谈Kafka的架构@mikechen
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
Kafka
Kafka是分布式发布-订阅消息系统,Kafka最初由LinkedIn公司开发,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。
Kafka应用场景有:日志收集系统和消息系统。
Kafka架构
Kafka架构,由多个组件组成,如下图所示:
主要会包含:Topic、生产者、消费者、消费组等组件。
服务代理(Broker)
Broker是Kafka集群中的一个节点,每个节点都是一个独立的Kafka服务器。
它负责存储和处理发布到Kafka的消息,消息以主题(topic)的形式进行分类和组织。
如下图所示:
每个Broker可以承载多个主题的分区(partition),并使用日志文件(log)来持久化存储消息。
Topic(主题)
Topic可以理解为一个队列,Topic是消息的分类单元,一个 Topic 又分为一个或多个分区。
每个Topic可以被分成多个分区,每个分区在不同的Broker节点上进行存储。
Topic主题的数据以一系列有序的消息进行组织。
生产者(Producer)
Producer是向Kafka发送消息的客户端应用程序,它将消息发布到指定的主题。
可以选择将消息发送到特定分区,或让Kafka自动选择分区。
如下图所示:
生产者负责将消息进行缓冲和批量发送,以提高性能和吞吐量。
消费者(Consumer)
Consumer是从Kafka订阅和接收消息的客户端应用程序,它订阅一个或多个主题,并从指定的分区中拉取消息。
如下图所示:
消费者可以以不同的消费组(consumer group)形式组织,每个消费组内的消费者共同消费主题中的消息,以实现负载均衡和容错。
Consumer Group(消费组)
消费组是一组具有相同消费者组ID的消费者的集合,在同一个消费组内,每个分区只能由一个消费者进行消费,以实现负载均衡。
如果消费者组中的消费者数量多于主题分区的数量,那么一些消费者将处于空闲状态。
ZooKeeper
ZooKeeper是Kafka使用的协调服务,用于管理和协调整个Kafka集群。
它负责维护Broker的元数据、主题的配置信息和消费者组的状态信息。
如下图所示:
ZooKeeper还用于进行Leader选举、分区分配和故障恢复等操作。
以上
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
猜你喜欢
- 2024-10-25 使用自带zookeeper安装单机kafka(适合刚接触kafka的同学)
- 2024-10-25 不用 zookeeper 照样部署kafka集群
- 2024-10-25 Kafka最全详解(图文全面总结) kafka基础知识
- 2024-10-25 深入了解Apache Kafka 深入了解对方的36个问题
- 2024-10-25 kafka和zookeeper在k8s集群踩的一些坑
- 2024-10-25 Kafka 2.8独立运行,不再需要ZooKeeper
- 2024-10-25 告别 ZooKeeper:Kafka 将提供自管理的元数据仲裁机制
- 2024-10-25 Zookeeper集群搭建及原理 zookeeper集群主要有哪三种角色
- 2024-10-25 Kafka架构和原理机制(图文全面详解)
- 2024-10-25 玩了分布式这么久,你不会连Kafka都不清楚吧
你 发表评论:
欢迎- 最近发表
-
- 吴谨言专访大反转!痛批耍大牌后竟翻红,六公主七连发力显真诚
- 港股2月28日物业股涨幅榜:CHINAOVSPPT涨1.72%位居首位
- 港股2月28日物业股午盘:CHINAOVSPPT涨1.72%位居首位
- 港股3月2日物业股涨幅榜:CHINAOVSPPT涨1.03%位居首位
- 港股3月2日物业股午盘:CHINAOVSPPT涨1.03%
- 天赋与心痛的背后:邓鸣贺成长悲剧引发的深刻反思
- 冯小刚女儿徐朵追星范丞丞 同框合照曝光惹人羡,回应网友尽显亲民
- “资本大佬”王冉:51岁娶小17岁童瑶,并承诺余生为娇妻保驾护航
- 港股3月2日物业股午盘:CHINAOVSPPT涨1.03%位居首位
- 「IT之家开箱」vivo S15 图赏:双镜云窗,盛夏风光
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)