标签:副本 分区 偏移量 Kafka 消息 offset 原理 基本概念
简介
kafka是用于构建实时数据管道和数据流的应用程序。具有实时横向扩展、高吞吐量、支持大量堆积具有容错性和速度快等特点。它是一个高性能分布式消息系统。通常一个分布式流数据平台它具有三个特点:
- 发布和订阅功能,类似于消息系统
- 以容错的方式记录流
- 处理流
基础概念
Broker
:其实就是Kafka服务,一个Kafka服务叫做一个实例,也就是一个代理。一个集群通常包含多台代理,每个代理有一个非负整数的id,且在整个集群中id值是唯一的。
topic
:就是消息的分类,生产者将消息发送到特定主题,消费者订阅该主题或者主题的分区来进行消费。是一个物理概念。
Partition
:每个topic可以有一个或多个partition(分区)。分区是在物理层面上的,不同的分区对应着不同的数据文件。Kafka使用分区支持物理上的并发写入和读取,从而大大提高了吞吐量。
Producer
:生产者,用来向Kafka中发送数据(record)。
Consumer
:消费者,用来读取Kafka中的数据(record)。
Consumer Group
:一个消费者组可以包含一个或多个消费者。使用多分区+多消费者方式可以极大提高数据下游的处理速度。
offset
:发布到分区的消息会追加到日志文件的尾部,每条消息在日志文件中的位置都会对应一个按序递增的偏移量。不过偏移量不表示消息在磁盘上的位置,而且kafka几乎不允许对消息进行随机读写,消费者可以指定偏移量的的起始位置进行消费。旧版消费者将偏移量保存到Zookeeper中,新版则保存到Kafka内部的一个主题中,消费者也可以保存偏移量到其他地方。
ISR
:所有与leader副本保持一定程度同步的副本(包括leader副本在内)组成 ISR (In Sync Replicas)。 ISR 集合是 AR 集合的一个子集。
AR
:分区中的所有副本统称为 AR (Assigned Replicas)。
OSR
:leader副本同步滞后过多的副本(不包括leader副本)将组成 OSR (Out-of-Sync Replied)
由此可见,AR = ISR + OSR。
HW
:俗称高水位(High Watermark),它标识了一个特定的消息偏移量(offset),消费者只能拉取到这个offset之前的消息。
LEO
:标识当前日志文件中下一条待写入的消息的offset。上图中offset为9的位置即为当前日志文件的 LEO,LEO 的大小相当于当前日志分区中最后一条消息的offset值加1.
标签:副本,分区,偏移量,Kafka,消息,offset,原理,基本概念 来源: https://www.cnblogs.com/jiaxzeng/p/15988713.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。