akka es/cqrs_在Akka中实现主从/网格计算模式
akka es/cqrs
主從模式是容錯和并行計算的主要示例。 模式背后的想法是將工作劃分為相同的子任務(wù),然后將其委派給從屬。 這些從屬節(jié)點(diǎn)或?qū)嵗龑⑻幚砉ぷ魅蝿?wù),并將結(jié)果發(fā)送回主節(jié)點(diǎn)。 然后主節(jié)點(diǎn)將編譯從所有從節(jié)點(diǎn)接收到的結(jié)果。關(guān)鍵是從節(jié)點(diǎn)僅知道如何處理任務(wù),而不知道輸出會發(fā)生什么。主從模式類似于網(wǎng)格計算模式,其中控制節(jié)點(diǎn)將工作分配到其他節(jié)點(diǎn)。 想法是利用網(wǎng)絡(luò)上的節(jié)點(diǎn)進(jìn)行計算。 SETI @ Home是使用此模型的最早的先驅(qū)之一。
我建立了一個類似的示例,不同之處在于工作節(jié)點(diǎn)在遠(yuǎn)程節(jié)點(diǎn)上啟動,工作節(jié)點(diǎn)向Master(WorkServer)注冊,然后隨后開始處理工作包。 如果沒有在Master(WorkServer)上注冊的工人從屬服務(wù)器,則主服務(wù)器將等待工人注冊。 工人可以隨時注冊,并從那里開始獲取工作包。
該示例演示了WorkerActor系統(tǒng)如何發(fā)送注冊請求。 RegisterRemoteWorker接收該請求,并將其轉(zhuǎn)發(fā)到JobController,在此更新RoundRobinRouter以獲取新的工作程序信息。 WorkScheduler定期向JobController發(fā)送請求,JobController然后將數(shù)據(jù)包發(fā)送給所有注冊的工作人員。
對于遠(yuǎn)程角色死時如何處理故障或如何重新處理尚未處理的數(shù)據(jù)包,該示例未實現(xiàn)容錯功能。 同樣,在某些情況下,遠(yuǎn)程工作人員可能希望在處理一定數(shù)量的數(shù)據(jù)包后關(guān)閉,然后他們可以指示主機(jī)停止給他們工作。 我將盡快添加容錯功能!
更新 :更新了代碼庫以處理工作程序關(guān)閉。 如果遠(yuǎn)程角色死亡或關(guān)閉,則JobController使用遠(yuǎn)程角色偵聽器檢測到故障轉(zhuǎn)移,并更新路由器。
本方案的代碼庫可在以下位置- https://github.com/write2munish/Akka-Essentials的GridPatternExample下
參考:在Akka Essentials博客上,來自我們的JCG合作伙伴 Munish K Gupta在Akka中 實現(xiàn)了主從/網(wǎng)格計算模式 。
翻譯自: https://www.javacodegeeks.com/2012/05/implementing-master-slave-grid.html
akka es/cqrs
總結(jié)
以上是生活随笔為你收集整理的akka es/cqrs_在Akka中实现主从/网格计算模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 形容一个人优点的词语 形容一个人优点的词
- 下一篇: 在Java EE 7中自动配置JMS资源