【问题标题】:Can we use two different topology for same topics in kafka我们可以在kafka中为相同的主题使用两种不同的拓扑吗
【发布时间】:2017-01-19 02:13:52
【问题描述】:

我有两个事件 PingData 和 OrderEvent(来自两个不同的生产者),它们都将对同一资源(数据库、缓存)进行一些修改

解决这个问题的理想方法是什么,我可以考虑以下两种可能性 1)单个主题和拓扑然后根据一些数据进行过滤 2)两个不同的主题和两个拓扑将执行一些操作

请用正确的方法指导我!

【问题讨论】:

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


    【解决方案1】:

    这里真正的问题是您的两个来源之间的相关性如何。你想对这两个数据流有严格的排序保证吗?如果是这样,请仅使用一个分区启动一个主题,并让消费者从中消费。

    现在,这不是一个非常好的设置,因为很少/没有并行性。如果你的数据有一些基于键的分区,你可以散列它,然后每个主题有多个分区。现在,您将获得单个分区的排序保证,但跨分区没有这样的保证。但如果它们在逻辑上是独立的实体,我相信你应该没问题。

    如果您正在生成的两个数据集之间没有依赖关系(我的意思是没有严格的排序约束),您最好通过创建 2 个主题将其分成 2 个不同的逻辑命名空间。

    要记住的关键点是“主题只是Kafka中的一个逻辑实体”。在性能方面,单个主题有 2 个分区与 2 个主题每个有 1 个分区是一样的。

    因此,很大程度上取决于您希望如何设计系统以及两组之间的关系。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-19
      • 2021-02-16
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 2020-04-19
      相关资源
      最近更新 更多