我应该使用 Kafka 还是仅使用负载均衡器?

问题描述 投票:0回答:1

我正在尝试创建一个 Telegram 机器人。 Telegram API 允许我给它一个指向我自己的 API 的链接,它会以 POST 请求的形式向该链接发送“更新”(这些更新是 json 序列化的更新对象,表示与我的机器人有关的某些事件)。 现在我正在尝试设计系统的基础设施,对于系统中捕获和处理这些更新 POST 请求的部分,我在两种设计之间左右为难:

  1. 我可以有一个简单的 API 来捕获更新数据,反序列化它,并将其放入 Kafka 主题中。然后我可以让一群工作人员尝试消费该 Kafka 主题中的事件。
  2. 我可以安装一个负载均衡器并将其连接到一些工作人员。工作人员获取更新并实时回复。

这对我来说是一个反复出现的问题:我应该存储事件并让工作人员在检索后处理它们,还是应该使用负载均衡器并将事件实时定向到工作人员? 我需要知道何时使用每种方法,以及是否有我尚未想到的替代方法来解决这个问题。

apache-kafka architecture load
1个回答
0
投票

在您的场景中使用 Kafka 会有所帮助,因为它提供了一种异步且有弹性的方式 由于 Kafka 具有至少一次和恰好一次这样的语义,因此它对于获得弹性非常有用

现在,当您需要端到端无状态和同步处理时,您可以更喜欢负载平衡,并且本质上具有来自不同机制的弹性。

但主要设计因素之一是您需要为 Kafka 构建额外的基础设施,而您可以使用相同的基础设施创建负载均衡器

© www.soinside.com 2019 - 2024. All rights reserved.