【发布时间】:2015-07-01 15:32:07
【问题描述】:
我使用Kafka 和Zookeeper 作为我的数据管道的主要组件,每秒处理数千个请求。我使用Samza 作为实时数据处理工具,用于我需要对数据进行的小型转换。
我的问题是我的一位消费者(比如说ConsumerA)使用来自Kafka 的几个主题并处理它们。基本上是对所消化的主题进行总结。我还想将这些数据作为一个单独的主题推送到 Kafka,但这会在 Kafka 和我的组件上形成一个循环。
这是困扰我的问题,这是 Kafka 中想要的架构吗?
我是否应该在Samza 中进行所有处理,并仅将来自Samza 的摘要(摘要)信息存储到Kafka。但是我要做的处理量非常大,这就是为什么我想为它使用一个单独的组件(ComponentA)。我想我的问题可以推广到所有类型的数据管道。
那么,组件在数据管道中既是消费者又是生产者是一种好的做法吗?
【问题讨论】:
-
“我还想将此数据作为单独的主题推送到 Kafka,但这会在 Kafka 和我的组件上形成一个循环。”如果您要发布到单独的主题,它如何创建循环?假设您只对消费除新创建的主题之外的所有主题感兴趣。此外,您的架构中存在“ConsumerA”和 Samza 是否有任何理由?鉴于 Samza 将执行与 ConsumerA 相同的转换?
-
@Naveen 他们不会将相同的主题推送到 kafka,但组件方面仍然会在 ComponentA 和 kafka 之间形成一个循环。 (ComponentA 是生产者和消费者)。
-
关于 samza 不,我在问我是否应该在 Samza 而不是我的组件上进行处理。在这种情况下,可以避免循环,但由于处理量很高,我想在第二个组件上进行
-
“组件明智仍然形成循环” - 我不明白,为什么这是一个问题?您是否担心网络流量?
-
这就是我要问的。它会产生问题吗?我看不出这可能会造成任何伤害的任何情况,但我仍然觉得这是一种需要避免的架构。
标签: message-queue apache-kafka producer-consumer data-integration apache-samza