【发布时间】:2020-05-03 10:35:32
【问题描述】:
我希望使用 Kafka 作为我的事件存储/订单流,这里有一些属性:
- 我有两个地区需要满足:伦敦和纽约
- 从伦敦开始的订单很可能有更多来自伦敦的事件(更新),但是我们确实需要支持跨区域读取/写入(即对于在伦敦开始的事件,写入可以来自纽约)
- 业务将受益于较低的延迟,因此应尽量减少伦敦和纽约之间的通信,反之亦然
- 订单的有效期为 24 小时,此时可以从事件日志中存档,因为我们不再需要它。
- 需要弹性,如果伦敦 Kafka 工厂出现故障,我应该能够故障转移到纽约,反之亦然。
- 事件的顺序需要在所有地区保持一致
- 订单数量仅为每 24 小时 1000 件。
所以我正在尝试正确设置 Kafka,这样我就可以最大限度地减少我必须在 Kafka 之外做的工作量,所以我的担忧/问题是:
- 起源区域似乎是一个自然的分区键,但据我所知,我从分区主题中没有任何收获...我可以只有 2 个主题,一个用于伦敦,一个用于纽约?我说的对吗?
- 据我所知,为了能够进行故障转移,我需要设置两个单独的集群并使用镜像制造商跨区域同步两个主题。但这意味着我需要在我的应用程序中构建逻辑,以便它们将事件发布到正确的集群 - 我理解正确吗?有什么方法可以设置 Kafka,所以我不必这样做,我只需连接到本地集群并读取/写入,让集群负责将事件路由到的位置
【问题讨论】:
标签: apache-kafka