kafka是什么?

Kafka 是什么?Apache Kafka 是一款开源的消息引擎系统(也有翻译为消息队列、消息中间件),旨在实现系统间松耦合异步数据传输。

传输消息的模式支持点对点模式和发布-订阅模式。

相关概念:

主题:Topic。主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。

分区:Partition。一个有序不变的消息序列,每个主题下可以有多个分区。

消息位移:Offset。表示分区中每条消息的位置信息,是一个单调递增且不变的值。

副本:Replica。Kafka 中同一条消息能够被拷贝到多个地方以提供数据冗余,这些地方就是所谓的副本。副本还分为领导者(leader)副本和追随者(follower)副本,各自有不同的角色划分。副本是在分区层级下的,即每个分区可配置多个副本实现高可用。

生产者:Producer。向主题发布新消息的应用程序。

消费者:Consumer。从主题订阅新消息的应用程序。

消费者位移:Consumer Offset。表征消费者消费进度,每个消费者都有自己的消费者位移。

消费者组:Consumer Group。多个消费者共同组成的一个组,同时消费多个分区以实现高吞吐。

重平衡:Rebalance。消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程。Rebalance 是 Kafka 消费者端实现高可用的重要手段。

服务器:Kafka集群包含一个或多个服务器,这种服务器被称为broker;

生产者产生发布消息,放入某个topic,消费者订阅1个到多个topic;

一个topic对应多个分区,分区物理分布在broker集群上,每个分区有一个leader分区和0或多个follower分区,其中leader分区可以读写,follower分区只定期拉去leader分区的内容做备份,leader分区挂了follow分区顶上。

每个分区可以存放N个消息,消息位移从0开始,顺序递增;

以图中为例:假定一个主题有3个分区0,1,2,分布在3个broker上,不同生产者都可以往同一topic中发消息,然后消息分别放入不同分区存储; 订阅了该topic的消费者可以读取消息。

相关推荐
yumgpkpm25 分钟前
腾讯云TBDS与CDH迁移常见问题有哪些?建议由CDH迁移到CMP 7.13 平台(类Cloudera CDP,如华为鲲鹏 ARM 版)
hive·hadoop·zookeeper·flink·spark·kafka·hbase
2501_941142137 小时前
基于 Kotlin 构建移动端高并发后台服务与实时数据同步系统的架构设计与工程实践分享
kafka
yumgpkpm1 天前
数据可视化AI、BI工具,开源适配 Cloudera CMP 7.3(或类 CDP 的 CMP 7.13 平台,如华为鲲鹏 ARM 版)值得推荐?
人工智能·hive·hadoop·信息可视化·kafka·开源·hbase
Zhao·o1 天前
KafkaMQ采集指标日志
运维·中间件·kafka
青靴1 天前
轻量级 CI/CD 实战(三):Kafka消费者Docker容器化部署
分布式·docker·kafka
galaxyffang1 天前
RocketMQ 为什么性能不如 Kafka?
分布式·kafka·rocketmq
2501_941881401 天前
ClickHouse OLAP 数据仓库在互联网大规模分析场景下性能优化与查询加速实践经验分享
kafka
一叶飘零_sweeeet1 天前
从 Kafka 到 RocketMQ:迁移实战全攻略
分布式·kafka·rocketmq
2501_941146322 天前
Java高性能微服务架构与Spring Boot实践分享:服务设计与性能优化经验
kafka
熊猫钓鱼>_>2 天前
数据处理的艺术:从Kafka到实时流处理平台的技术深度剖析
分布式·flink·kafka·数据治理·状态管理·管道·数据工程师