这可能更像是一个设计而不是实现问题。假设我有以下演员层次结构,它形成了一个 Akka 集群
ApiActor [API Role]
|
MasterCoordinator [API Role]
| |
SceduledJobCoordinator [Schd] StreamingJobCoordinator [Stream]
| | | |
SchdJobActor SchdJobActor StreamJobActor StreamJobActor
(我故意没有放置种子节点以节省空间) Api 角色也可以是冗余的
所以工作流程很明显 - 用户交互/通过脚本在不同的工作节点上启动一堆不同的作业。作业是“一劳永逸”类型,用户不等待结果,结果正在写入数据库。然后坏事发生了——API 节点重新启动或更糟(被破坏、淹没、被哥斯拉吃掉等)。我知道我不能让子演员活着,因为它们是不再有效的父演员状态的一部分。如果我理解正确,即使路由器演员已经充当它的路由的父级? 问题:将工作角色与 api 角色解耦的最佳方法是什么?如果可能的话
如果不是,那么我想我将不得不实施某种工人演员恢复工作流程?
提前致谢