我正在将单片应用程序转换为微服务。我在Service Fabric中设置了一个API管理层和一个Service Bus。我们的想法是使用消息与微服务进行通信,以便他们不了解彼此。
当一个微服务需要信息时,它将消息发布到服务总线并且它得到满足并且发送和关联回复。
唯一的问题是API Management将消息发布到服务总线并返回而不等待回复,因此客户端没有得到响应。
有没有办法让API Management等待回复?
这需要一种中间的经纪人服务吗?
在API管理可以调用的每个微服务上都有一个REST层,然后服务会使用服务总线吗?
谢谢你的帮助。
更新:
我认为让Api Management等待的唯一方法是使用逻辑应用程序。对此不确定。
那里有Azure专家吗?
实际上预计APIM的行为方式。
服务总线旨在解耦不同的(微)服务,并且本质上没有请求 - 响应操作风格,尽管它可以以这种方式实现。
这是设计/实现系统的一种方法
202 Accepted
响应,其状态URI可以让客户端轮询更新。
但如果它是一个快速响应(在HTTP请求超时之前),您可能会等待响应服务总线消息并返回响应。为此,您的Logic App或Function必须使用相同的唯一ID轮询/等待服务总线消息,然后返回响应。