0

我有一個場景: 說我有一個分佈式系統,其任務是接受一項任務,這項任務應用業務邏輯和結果扔一些其他服務的工人。 所以說可以有3種類型的請求,即;工作人員能夠區分請求並在這些請求上應用相應的業務邏輯。在這種情況下工作人員有狀態還是無狀態?無狀態和有狀態的工人情況

我的觀察,工人是無國籍工人不保存有關任務的任何信息,它並不關心被應用到任務較早什麼操作,既不它關心會發生什麼給它的未來。所以基本上沒有國家分享問題。工作人員只關心用相應的業務邏輯處理任務。例如業務邏輯就是說 - 格式化數據/解析數據,以便數據在系統中消耗。

+0

看起來像工作人員是有狀態的,因爲你正在將結果發送到其他服務。 你可以檢查SAGA(長期生活交易)模式。每個消費者可能會應用商業角色並將其投放給其他消費者,並且您不會失去對象或業務狀態。 – ahankendi

+0

在這種情況下,每個工人都是滿員的。處理數據時,它可能會通過許多不同的工作人員傳播,最終可能會被拋棄到數據庫中。因此,爲了將數據傳播到目的地,工作人員必須應用業務邏輯來持續準備數據。那麼,從這個角度來看,並非所有的工人都完全滿意嗎?如果可能,請讓我知道你的理解。 – coderx

回答

0

你的工人是無國籍的。除了發送和接收來自其他服務的數據所需的最低限度,它們不包含任何內存中的信息。如果工作人員崩潰,另一個工作人員可以無縫地替換它,而無需從持久數據存儲區同步信息。