首页 > 解决方案 > 我应该如何在我的设置中设置 Kafka 分区与主题

问题描述

我希望使用 Kafka 作为我的事件存储/订单流,这里有一些属性:

所以我试图让我的卡夫卡设置正确,这样我就可以最大限度地减少我必须在卡夫卡外部做的工作量,所以我的担忧/问题是:

  1. 起源区域似乎是一个自然的分区键,但据我所知,我从分区主题中没有任何收获......我可以只有 2 个主题,一个用于伦敦,一个用于纽约?我对么?
  2. 据我所知,为了具备故障转移的能力,我需要设置两个单独的集群并使用镜像制造商跨区域同步两个主题。但这意味着我需要在我的应用程序中构建逻辑,以便它们将事件发布到正确的集群 - 我理解正确吗?有什么方法可以设置 Kafka,所以我不必这样做,我只需连接到本地集群并读/写,让集群负责将事件路由到的位置

标签: apache-kafka

解决方案


您可能想查看代理的“机架感知”配置,这有助于机架感知分区复制。这主要用于改善跨可用区的流量,您可以在此处了解更多信息。它的要点是,您的消费者可以从“最近的”副本中获取记录。在您的情况下,假设您操作一个跨区域集群,位于伦敦的消费者可能只会从伦敦的经纪人那里获取数据。

关于延迟:如果您没有任何亚秒级要求,我强烈建议您运行单个集群而不是两个集群。东海岸和英国之间的延迟应该不会太糟糕。保持简单,Kafka 非常健壮,可以处理单个集群中的大多数故障(例如,代理死亡)。从一个位置的单个集群开始,您仍然可以添加第二个集群并使用镜像制造商或专用服务迁移您的数据。

这也将导致您在每个区域中没有两次“相同”主题。根据内容而不是位置来区分主题。否则,在迁移用于订单的数据格式时,您将获得很多乐趣。您希望尽可能灵活地应对未来的变化。


推荐阅读