1

这可能更像是一个设计而不是实现问题。假设我有以下演员层次结构,它形成了一个 Akka 集群

                  ApiActor               [API Role]
                     |
              MasterCoordinator          [API Role]
              |                 |
SceduledJobCoordinator [Schd]  StreamingJobCoordinator [Stream]
      |            |                 |             |
SchdJobActor SchdJobActor     StreamJobActor StreamJobActor  

(我故意没有放置种子节点以节省空间) Api 角色也可以是冗余的

所以工作流程很明显 - 用户交互/通过脚本在不同的工作节点上启动一堆不同的作业。作业是“一劳永逸”类型,用户不等待结果,结果正在写入数据库。然后坏事发生了——API 节点重新启动或更糟(被破坏、淹没、被哥斯拉吃掉等)。我知道我不能让子演员活着,因为它们是不再有效的父演员状态的一部分。如果我理解正确,即使路由器演员已经充当它的路由的父级? 问题:将工作角色与 api 角色解耦的最佳方法是什么?如果可能的话

如果不是,那么我想我将不得不实施某种工人演员恢复工作流程?

提前致谢

4

0 回答 0