如何使用消息传递架构将消息发送回发送者?

How to send the message back to the sender with messaging architecture?

我正在使用消息传递架构解决微服务之间的通信问题。

假设我有一个传统应用程序,并且有 UserPost Video 个模块。

你可以用它创建帖子、视频,但在此之前,我需要将用户名转换为用户 ID。

一旦我将模块拆分为微服务,就无法将它们链接在一起,而是直接访问微服务。

如果我想将用户名转换为 ID,

我可以通过消息调用 Post 服务中的 User 服务,目前一切顺利。

但问题是:

如果我得到越来越多的服务,那将是很多功能吗?

我认为这不是消息传递架构的工作原理,但我不知道如何在没有消息传递的情况下与其他服务进行通信。

(或者我应该 chain them together in the API Gateway 这样我就不需要消息传递架构了吗?).

据我了解,您有 3 项服务:用户、Post、视频。 在 Post 和视频服务中,您需要实现将用户名作为参数而不是 userId 的命令。而且因为这些服务中的所有数据都是通过userId关联的,所以你考虑先调用用户服务来询问相关的userId。

答案是:您应该在每个需要此的服务中保存用户名-用户 ID 关联。

在您的特定情况下,Post 和视频服务都应从用户服务订阅 NewUserRegistered 事件并维护自己的用户名-用户 ID 映射。这使您可以避免从其他服务额外调用用户服务。