Kafka

2020-03-23  本文已影响0人  什千
名词 说明
主题 topic Kafka 通过 topic 对消息进行分类。
分区 topic被分为多个分区,所以无法在整个主题范围内保证消息有序,但可以保证消息在单个分区上的有序。Kafka通过分析实现消息冗余和伸缩性。
生产者 生产者创建消息,向Kafka写入数据,也称 Producer。
消费者 从Kafka读取数据,也称 Consumer ,消费者可订阅多个主题,并按消息生成的顺序读取,消费者通过检查消息的偏移量来区分消息是否被读取。
偏移量 是一个不断递增的整数值,在创建消息时,Kafka会把它添加到消息里。在给定的分区里,偏移量是唯一的。
消费者群组 会有一个或多个消费者共同消费同一个主题,消费者群组保证每个分区只能被一个消费者使用,所以消费者从属于消费者群组,群组里的消费者订阅同一个主题,每个消费者接收主题一部分分区的消息。
消费者对分区的所有权关系 消费者群组里,消费者与分区之间的映射关系被称为消费者对分区的所有权关系
broker 一个独立的Kafka服务器被称为broker。broker接收来自生产者的消息,为消息设置偏移量,并把消息写入到磁盘保存。broker为消费者提供轮训消息的服务,对读取分区的请求作出响应,返回已经提交到磁盘上的消息。
序列化器
反序列化器
再均衡
均衡器
控制器
首领
跟随者
首领分区
跟随分区
副本
同步副本
已提交消息 是指已经被写入所有同步副本并且对消费者可见的消息
已提交偏移量 是指消费者发送给Kafka broker 的偏移量,用于确认它已经收到并处理好的消息位置
幂等

| 幂等性写入 | kafka配置可以满足至少一次,但是应用程序可能还需要仅一次,kafka虽然不能满足,但是可以通过在消费者客户端做处理保证写到外部系统一次,最简单的办法就是把消费者对消息的处理结果写入支持唯一键的系统,比如键值存储引擎,关系型数据库,ES等,这种情况下要么消息本身带有唯一健,要么可以使用消息的Topic + 分区+偏移量 创建唯一键,如果遇到相同的唯一键,则覆盖值,这样保证不会出现重复数据,这种模式被称作幂等性写入 |

1 生产者

Kafka 生产者组件图

1.1 消息发送方式



1.2 序列化

自定义
默认Avro

1.3 分区

默认分区
自定义分区

1.4 生产者配置参数

topic

分区

疑问:
(1)分区会做数据冗余?不同的消费者读取不同的分区?可是同一个消息只能映射到一个分区上
(2) 消费者群组,每个消费者是如何判断它是有效的,还有就是一个消息,消费者群组里的一个消费者消费完就代表消费过了?
(3) 生产者上的分区跟broker上的分区是一一对应的关系吗?
总的分区数通过Cluster拿到的?

序列化

消费者

broker

(1)多数据中心 MirrorMaker ,没明白


image.png
上一篇下一篇

猜你喜欢

热点阅读