Kafka消费者生产者API,Kafka流媒体和恰好一次处理

zy1mlcev  于 2022-10-07  发布在  Apache
关注(0)|答案(1)|浏览(140)

我在过去的一个月里一直在学习Kafka,尽管他们有很多关于这个主题的文章和视频-我仍然不能准确地理解一次足够好的处理。
让我总结一下我到目前为止所理解的:

1.Kafka Streams可以用来做一些ETL或Analytics--这意味着我们可以编写可以进行数据丰富、转换的Java代码,这将被插入到Kafka本身?
1.在Kafka Consumer Producer API中,只有从一个主题读取消息,然后写入同一集群中的另一个主题,才能实现准确的一次处理。这将适用于Kafka事务(如提交偏移量并使消息在输出主题上可见)。一旦我们引入第三方系统(如Redis、数据库[Postgres,MySQL])-这是不可能的-因为故障随时可能发生(最坏的情况)。如果我们想要处理这一点-我们必须使用收件箱模式-我们从主题中读取消息,将其写入数据库,然后由工作人员处理-我们还需要管理偏移量。
1.构建在2)之上--Kafka流是如何出现在整个画面中的--我假设,如果这适合Kafka本身,那么Kafka流中的处理将支持交易。但这仍然无助于写入第三方系统(如Redis、数据库等)。

我对事情的理解是正确的吗?
我很高兴能更好地了解这一点,这样我就可以在未来做出更好的决定。
诚挚的问候

dsekswqp

dsekswqp1#

Kafka Streams Package 了消费者和生产者API,因此无法提供更好的语义。

如果您想与外部系统集成,最好使用Kafka Connect、Spark、Flink等,而不是将您的Kafka消费者代码 Package 在外部数据库客户端事务中。或者,正如您所提到的,您可以使用收件箱/发件箱设计模式

相关问题