【问题标题】:How to send kafka matching data to other topic如何将kafka匹配数据发送到其他主题
【发布时间】:2017-05-21 04:54:08
【问题描述】:

如何在另一个主题 3 中推送主题 1 和主题 2 之间的匹配数据? 当从生产者向消费者发送消息时?

【问题讨论】:

  • Kafka 不提供此类功能。您必须实现自己的消费者\生产者,它将读取两个主题、匹配消息并转移到第三个主题。
  • 感谢您的回复。还有一个问题只能通过 Kafka 中的消费者和生产者 API 进行吗?我们不能使用任何storm/spark/flink
  • 我们可以使用 Spark/Flink/Storm 进行匹配并将消息推送到 Topic3 吗?
  • 当然。有一些观察:stackoverflow.com/a/34448362/1437693
  • 如何将匹配的消息从 2 个不同的主题转移到主题 3

标签: apache-kafka kafka-consumer-api kafka-producer-api


【解决方案1】:

我没有使用过 Spark,但我可以从 Apache Storm 角度为您提供一些指导 Apache Storm

  1. 用 2 个 kafka spout 构建拓扑,每个从 topic1topic2

  2. 消费
  3. 在螺栓中使用此数据并比较数据。您可以使用单个螺栓或一系列连续螺栓。您可能需要使用一些持久性,即。 mongodb 或诸如 redismemcache 之类的东西,取决于您的比较逻辑

  4. 将公共数据推送到新的 kafka 主题 Send data to kafka from Storm using kafka bolt

这是非常Apache Storm具体的解决方案,可能不是最理想合适高效的一种,但旨在给出一般性想法

这里是stormStorm Concepts中基本概念的链接

【讨论】:

    【解决方案2】:

    我已经与 Spark 合作了六个多月了,是的,这绝对是可能的。老实说,相当简单。但是对于这个问题来说,点燃火花有点夸张。卡夫卡流呢?我从来没有和他们合作过,但这不应该完全解决这个问题吗?

    如果你想使用火花: 使用 Spark Kafka 集成(我使用 spark-streaming-kafka-0-10)来消费和生成数据,应该非常简单。而不是在文档中查找 Spark 流式处理 Api。

    关于 2 个 DStream 的简单连接应该可以解决问题。如果您想存储不匹配的数据,您可以将其打开或使用 UpdateStateByKey 函数。我希望它可以帮助某人。祝你好运:)

    【讨论】:

      猜你喜欢
      • 2021-03-01
      • 2020-07-17
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-12
      • 2017-04-07
      • 2016-03-10
      相关资源
      最近更新 更多