在使用azure服務結構演員時,這是我最近發現的奇怪的事情 - 我無法更改分區的默認設置。如果我嘗試爲UniformInt64設置命名分區或更改低/高鍵,則每次在Visual Studio中構建項目時都會被覆蓋。這對於有狀態服務來說沒有問題,它只發生在演員身上。沒有錯誤,在事件日誌中,什麼都沒有任何記錄......我發現只有一個有關在互聯網上同樣的問題單參考 -無法更改演員的分區方案
但我還沒有看到任何解釋到 - 既不在MSDN上,也不在官方文檔中。有任何想法嗎?它真的是'設計'嗎?
P.S.
只執行Powershell腳本來部署應用程序的確允許我按照我希望的方式設置方案。仍然無法在VS中做到這一點令人沮喪。可能有一個很好的理由......應該是吧? :)
感謝您的回覆!是的,我知道ActorID被映射到特定的分區,但是,由於Actor是有狀態服務的擴展,爲什麼我不能做同樣的事情並改變方案?爲什麼我們不能創建一個將某個字符串作爲ID傳遞並將其映射到具有與該ID相匹配的名稱的分區的映射?爲什麼VS不顯示任何錯誤/警告並默默覆蓋我的設置而不給我任何線索? –
如果您的演員姓名與分區名稱相匹配,您將有效地將演員實例數限制爲您的分區數。這與演員理論不太一致(通常你會有很多演員實例)。爲什麼VS不警告你,我不知道。你可以在這裏創建一個問題:https://github.com/Azure/service-fabric-issues/issues – LoekD
謝謝!我有許多任務要均勻分佈在各臺計算機上,而且任務數量是可用節點數量的兩倍。所以我想到有一些分區被設置爲任務數量,當運行任務的時候,我會讓Actor使用給定任務名稱的ID進行實例化。因此,我可以保證我在給定時刻只有一個具有特定名稱的單個任務(參與者是線程安全的),並且由於分區均勻分佈在整個集羣中(默認情況下),我會知道任務是均衡。是否有意義? –