gpt4 book ai didi

apache-kafka - 使用 Kafka 将 Web 层与业务逻辑代码分离

转载 作者:行者123 更新时间:2023-12-05 07:50:50 25 4
gpt4 key购买 nike

我有一些概念上的思维障碍。我正在考虑如下使用 Kafka:

---http-requests---> [Web Tier]

[Web Tier] ----composes message and publishes----> [Kafka Topic]

[Kafka Topic] <----consumes message------ [Engine Logic]

[Engine Logic] -----computes, api-calls, publishes result message----> [Kafka Topic]

[Kafka] ---???? somehow get result message to Web Tier---> [Web Tier]

[Web Tier] -----renders HTML and sends http response--->

使用非阻塞网络服务器(例如 Jetty),http 请求将“保持打开状态”但不会阻塞。是否可以以请求/响应方式使用 Kafka?也就是说,Web Tier 可以向 Topic 发布消息,然后 Kafka 会知道它必须提供响应吗?还是 Web Tier 负责轮询主题并查看是否有响应?

我想我想问的是,将 Kafka 用作 Web 层和引擎逻辑所依赖的“接口(interface)”的最佳方式是什么,以便 Web 层和引擎之间没有直接耦合?谢谢。

最佳答案

我会说 Kafka 不太适合您的用例。

轮询主题并查看是否有响应是 Web Tier 的职责。

我预见的几个问题:

  1. Kafka 旨在仅在请求时传递消息。在您的示例中,一旦数据到达第二个 Kafka 主题。它会一直坐在那里,直到 Web Tier 轮询它。
  2. 没有很好的方法可以从 Kafka 请求特定消息,SO Question .在您的 Web 层中,如果您轮询 Kafka 服务器,您可能会收到 10 条消息,也可能会收到 0 条消息。如果收到 10 条消息,您将必须检查并查看这 10 条消息中是否有您要查找的消息。如果不是,则您必须再次进行投票。可能会多次执行此操作,具体取决于您的特定引擎逻辑完成所需的时间。

在上面提到的 SO 问题中,OP 在评论中说他使用了 Mongo DB,因此他可以查询特定消息。

关于apache-kafka - 使用 Kafka 将 Web 层与业务逻辑代码分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35844026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com