让我们想象一下我有一个带有端点/api/status
的REST API。访问此端点后,API会将消息发送到消息队列,以请求其他服务的状态。
然后作为回复,服务将一条消息及其状态发送到REST API侦听的队列。因此,请求状态和回复消息只是一条消息。
我的问题是: API中是否存在一种将这种方法的异步特性转换为同步方法的设计模式?换句话说:GetStatus(...)
是否存在一种模式下面的伪代码中的方法可以实现将状态的获取与通过多个消息队列甚至是发布/订阅系统的通信进行同步。
var statusRequestMsg = "get_status";
var statusResponseMsg = GetStatus(statusRequestMsg);
我知道如何用代码解决这个问题,但我很好奇是否有一种设计方法引入了一种通用方法。
我在搜索中进行了大量搜索,但是发现的唯一想法是本文对实现此目标的方法进行了非常技术性的解释: A Communication Model to Integrate the Request-Response and the Publish-Subscribe Paradigms into Ubiquitous Systems
请注意,我了解这不是完美的API设计,并且有更好的方法来实现该示例。我创建了上面的示例来帮助说明我的问题。我也了解一些AMQP暗示。 (例如RabbitMQ)提供了一种将MQ通信与请求/响应样式同步的方法。
谢谢。
答案 0 :(得分:0)
您考虑过这样的事情吗?
时间过去了...
那行得通吗?