我们有多个springbootweb应用程序,它们由一个“父”应用程序触发,然后并行运行。对于每个并行分支,将依次调用不同的应用程序:
父级调用a1和b1(http请求),它们并行运行。然后,当a1和b1分别完成时,它们依次调用a2和b2(也是http请求)。
现在,如果a1中出现错误,我们希望将此消息广播给所有其他应用程序,告诉它们需要停止处理:
取消请求(如果可能的话),因此不返回给调用者对我们来说是好的。我们目前的想法是简单地重新启动所有服务,为下一个请求“重置”它们。
有更好的方法吗?是否有允许删除/停止/取消任何活动请求的spring引导功能?
1条答案
按热度按时间xuo3flqw1#
重新启动所有服务是个坏主意,因为一旦您收到一个“坏”请求,您的整个解决方案就不适用于所有其他“好”请求。我建议实现消息传递模式(在rabbitmq之上,或者更好的spring云数据流之上)。您将能够更好地协调整个管道,同时获得所有消息队列好处,如自动发现/缩放/重试/保证交付/etc。你也将能够建立链和你原来的问题将成为过时。