多分区原子写入
之前学rabbitmq的时候我们自己做了消息重发,也就是用了最少一次的规则。需要在消费方做幂等
kafka消息事务
为什么要支持事务
1)满足“读取-处理-写入”模式
2)流处理需求的不断增强
3)不准确的数据处理的容忍度
数据传输的事务定义
1)最多一次:消息不会被重复发送,最多被传输一次,但也有可能一次不传输
2)最少一次:消息不会被漏发送,最少被传输一次,但也有可能被重复传输
3)精确的一次(Exactly once):不会漏传输也不会重复传输,每个消息都被传输一次而且仅仅被传输一次,这是大家所期望的
事务保证
1)内部重试问题:Procedure幂等处理
2)多分区原子写入
事务保证-避免僵尸实例
1)每个事务Producer分配一个transactional.id,在进程重新启动时能够识别相同的Producer实例
2)kafka增加了一个与transactional.id相关的epoch,存储每个transactional.id内部元数据
3)一旦epoch被触发,任何具有相同的transactional.id和更旧的epoch的Producer被视为僵尸,kafka会拒绝来自这些Procedure的后续事务性写入
kafka消息事务
11111111
消息事物。
事务保证——避免僵尸实例
事务保证1
kafka消息事务
Kafka避免僵尸实例
kafka事务保证
kafka数据传输的事务定义
Kafka为什么要支持事务
Kafka消息事务保证——避免僵尸实例
Kafka消息事务事务保证
事务保证-避免僵尸实例
事务保证
内部重试问题:Procedure幂等处理 比如超时 比如内部失败
Procedure是kafka 内部消息传输组件 他有send方法进行数据发送
如果发送失败的话,那么消息会重复发送。kafka自身做了幂等处理。
多分区原子写入
数据传输的事务定义
kafka 消息事务
kafka消息事务
事务保证-避免僵尸实例
kafka消息事务
-事务保证
kafka消息事务
-数据传输的事务定义
kafka消息事务
-为什么要支持事务?
kafka高级特性
-消息事务
数据传输的事务定义:
kafka消息事务——事务保证避免僵尸实例
kafka消息事务——数据传输的事务定义
kafka消息事务
一个消息在该偏移量被提交时,被视为【消息被消费】