akka es/cqrs
主从模式类似于网格计算模式,其中控制节点将工作分配到其他节点。 想法是利用网络上的节点进行计算。 SETI @ Home是使用此模型的最早的先驱之一。
我建立了一个类似的示例,不同之处在于工作节点在远程节点上启动,工作节点向Master(WorkServer)注册,然后随后开始处理工作包。 如果没有在Master(WorkServer)上注册的工人从属服务器,则主服务器将等待工人注册。 工人可以随时注册,并从那里开始获取工作包。
该示例演示了WorkerActor系统如何发送注册请求。 RegisterRemoteWorker接收该请求,并将其转发到JobController,在此更新RoundRobinRouter以获取新的工作程序信息。 WorkScheduler定期向JobController发送请求,JobController然后将数据包发送给所有注册的工作人员。
对于远程角色死时如何处理故障或如何重新处理尚未处理的数据包,该示例未实现容错功能。 同样,在某些情况下,远程工作人员可能希望在处理一定数量的数据包后关闭,然后他们可以指示主机停止给他们工作。 我将尽快添加容错功能!
更新 :更新了代码库以处理工作程序关闭。 如果远程角色死亡或关闭,则JobController使用远程角色侦听器检测到故障转移,并更新路由器。
本方案的代码库可在以下位置- https://github.com/write2munish/Akka-Essentials的GridPatternExample下
参考:在Akka Essentials博客上,来自我们的JCG合作伙伴 Munish K Gupta在Akka中 实现了主从/网格计算模式 。
翻译自: https://www.javacodegeeks.com/2012/05/implementing-master-slave-grid.html
akka es/cqrs