i在我的服务a中启用了hyStrix shortback()方法,因此每当依赖的服务b下降时,它都会进入倒下的方法并显示我提供的静态消息。p>执行此操作时,我还将失败的请求发送到MQ(Rabbit MQ)
现在,如何在队列中检索待处理或等待请求,并在抚养服务B开始时重新处理?
没有完整概述您的体系结构(在这里将超出范围),很难确切地知道您要实现的目标。但乍一看,听起来您期望过多的Hystrix。一旦后备完成,就完成了。
如果您已将消息发送到队列,则需要从某个地方消耗该消息。您希望仅在服务B运行时才消耗消息 - 因此,从逻辑上讲,唯一的选项是服务B从此失败的请求队列中消耗。因此,大概在消耗该消息时,服务B需要重复服务上的请求a。
我想您可以拥有一项看门狗服务,该服务在收到失败请求队列的消息后,然后开始检查服务B的健康状况,一旦它消失了," green"将" reattempt"重新发送服务。
这听起来很缠结,我建议重新考虑。
我猜想此静态消息类似于"对不起,我们现在无法完成您的请求,但是我们会在后台为您尝试"。
我感觉到,如果您将服务b纯粹是最初驱动的消息,那就更好了。获取服务A直接向服务发送发送消息。那么,无需担心服务被关闭或超载或其他。