在我们的应用程序中,我们有一个有状态的参与者,它调用另一个无状态服务。无状态服务进行一些处理并将响应返回给参与者。该服务有时可能需要 1-2 小时才能完成处理。
间歇性地,我们看到服务已成功完成处理但未将响应返回给参与者的场景。我的意思是控制不会返回给actor,并且整个actor处理会卡住并且不会继续进行。我们在服务端或参与者端找不到任何异常。
寻找进一步调查该问题的指针。任何帮助将非常感激。
在我们的应用程序中,我们有一个有状态的参与者,它调用另一个无状态服务。无状态服务进行一些处理并将响应返回给参与者。该服务有时可能需要 1-2 小时才能完成处理。
间歇性地,我们看到服务已成功完成处理但未将响应返回给参与者的场景。我的意思是控制不会返回给actor,并且整个actor处理会卡住并且不会继续进行。我们在服务端或参与者端找不到任何异常。
寻找进一步调查该问题的指针。任何帮助将非常感激。
我建议将您的架构更改为事件驱动模型。例如,通过使用这个pub/sub 库。这样,服务可以响应来自参与者的事件并开始处理。完成后,它会触发另一个事件,该事件可以由参与者接收和处理。
这样,参与者只能在事件发送/接收期间存在,从而允许您的集群托管更多工作负载。它还可以防止您的演员不得不等待几个小时才能返回呼叫,从而阻止其他进程使用它。
要解决您当前的问题,我建议您执行以下步骤: