当使用像 apache kafka 这样的消息代理时

When use message brokers like apache kafka

在我们公司的最后一个项目中: 客户端发出身份验证等请求, 然后我们应用程序的第一层获取客户端请求并在 Kafka 上生成消息, 我们的核心服务使用消息,然后向银行服务发出休息请求,在得到响应后,我们在 Kafka 上生成响应消息 然后我们应用程序的第一层将消息传递给客户端。 是真正的 Kafka 用例还是删除第一层和 Kafka 更好, 并在客户端和核心之间使用休息服务。 谢谢

第一步使用kafka进行验证不是一个好主意。理想情况下,消息队列应该用于应用程序的非关键部分。

问题将帮助您理解 REST 调用和消息队列之间的功能差异。您可以根据您的用例做出决定。

使用异步消息传递系统允许您从可用性的角度分离您的服务。这意味着如果 A 需要调用 B 来拆分一些工作流,那么通过消息传递 A 可以在 B 不需要启动的情况下完成它的工作,然后 B 可以接手并在它恢复\恢复\等后继续。

由于上述原因,我高度不同意接受的答案:您绝对可以为应用程序的关键路径使用消息传递!不选择消息传递是有原因的(post 其他答案链接很好地涵盖了),但是“对非关键工作负载使用消息传递”是一个非常糟糕的建议\启发式。

传统上 身份验证工作负载不会通过总线 tbh,但这不是因为它们很重要,而是因为如果不先通过身份验证就无法继续,并且因为在每次调用您的服务时依赖异步路径进行身份验证是一个非常大的开销,如果用户访问您的服务只是为了读取一些数据,这将没有任何好处。