wangzzu / awesome

不积硅步,无以至千里
228 stars 47 forks source link

Kafka 事务性实现机制 #21

Closed wangzzu closed 11 months ago

wangzzu commented 6 years ago

这里有一些关于 Kafka New Feature 的讨论,也是非常值得深入的:

  1. producer 端如何实现不重(1.0.0代码)KIP-98 - Exactly Once Delivery and Transactional Messaging
  2. kafka 能否做到完全不丢(腾讯开源的一个 mq:微信开源PhxQueue:高可用、高可靠、高性能的分布式队列),或者有没有什么情况下kafka 即使做了不丢的设置,还是会有丢失的风险?

这个issue主要讨论kafka事务性(包括不重不丢的机制)

wangzzu commented 6 years ago

计划分三篇来讲述,主要还是围绕在事务性这块实现:

  1. Kafka 事务实现整个流程详述;
  2. Kafka 事务实现各种请求实现细节;
  3. Kafka 事务实现的一些思考(现在设计优缺点,有没有更好的实现?某些模块设计的初衷);
  4. 如果可以,对比一下 RocketMQ,看下 RocketMQ 的事务性实现;
  5. Kafka Streams Exactly Once 的实现,它如何解决 2PC 中的问题。
wangzzu commented 6 years ago

本次系列分析以 Kafka 2.0.0 的代码为例

输出文章如下:

  1. Kafka 事务性之幂等性实现,完成时间:2018-10-24;
  2. Kafka EOS 之事务性实现,完成时间:2018-11-04;
wangzzu commented 5 years ago

事务性整体的流程梳理在去年已经完成,还缺少几块内容:

  1. RocketMQ 事务性实现原理;
  2. Kafka Streams exactly-once 实现原理;
  3. kafka+flink 端到端的 exactly-once 实现原理;
wangzzu commented 5 years ago

Kafka 孕育的两个存储系统:

spark 开源的存储系统:

wangzzu commented 11 months ago

很遗憾,后续的就没有投入了。数据湖/Lakehouse 在过两三年展现了很大的生机