在 Kafka 中设计生产者和消费者组件

2024-03-18

我在用Kafka and Zookeeper作为我的数据管道的主要组件,该管道每秒处理数千个请求。我在用Samza作为我需要对数据进行小型转换的实时数据处理工具。

我的问题是我的一位消费者(比方说ConsumerA)消耗了几个主题Kafka并处理它们。基本上创建所消化主题的摘要。我还想将这些数据作为单独的主题推送到 Kafka,但这会在 Kafka 和我的组件上形成循环。

这就是困扰我的地方,这是 Kafka 中理想的架构吗?

我应该做所有处理吗Samza并仅将摘要(摘要)信息存储到Kafka from Samza。但我要做的处理量相当大,这就是为什么我想使用一个单独的组件(ComponentA)。我想我的问题可以推广到所有类型的数据管道。

那么,组件在数据管道中既是消费者又是生产者是一个好的实践吗?


只要 Samza 写入的主题与消费的主题不同,就不会有问题。读取和写入 Kafka 的 Samza 作业是规范,也是架构所期望的。还可以使用 Samza 作业从另一个系统引入一些数据,或者将一些数据从 Kafka 写入到另一个系统(甚至根本不使用 Kafka 的作业)。

然而,让一个作业读取和写入同一主题,会导致循环,并且要避免这种情况。这有可能很快填满您的 Kafka 代理的磁盘。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Kafka 中设计生产者和消费者组件 的相关文章

随机推荐