【发布时间】:2021-01-17 20:29:18
【问题描述】:
我对微服务有些陌生。我目前正在使用微服务开发应用程序,并且我同时使用同步和异步通信方法。最近看到几篇文章说不应该使用同步(http)通信,而应该只使用异步(消息代理)。
所以我的第一个问题是标题“微服务中服务之间的同步通信是反模式吗?”
如果是,那么我该如何克服这种情况: 假设我有两个服务,分别称为“用户”和“消息”,用户 A 想要向用户 B 发送消息。所以当用户 A 发送消息时,我想检查用户 A 是否有权向用户 B 发送消息,这些权限包含在用户服务中。因此,为了获取这些信息,我必须从消息服务向用户服务提出请求。如何在不使用对用户服务的同步请求的情况下克服这个问题?
【问题讨论】:
-
我不会调用同步通信反模式。它只是有一些严重的限制。随着服务数量的增加和它们之间的交互,它只会让你很快达到极限。以同步的方式开始使用微服务没有任何问题。
标签: asynchronous microservices synchronous messagebroker anti-patterns