節點如何相互溝通,或者他們如何在IaaS環境中以分散的方式瞭解對方?作爲一個例子:this article about Akka on Google's IaaS描述了一個1500+分散的羣集隨機互通。這個過程的概要是什麼?IaaS節點如何通信以形成羣集?
0
A
回答
2
解釋Akka集羣如何工作將會很長,但我可以嘗試給出一個概述。
在Akka設置的會員資格本質上是一個高度專業化的CRDT。由於談論矢量時鐘本身將是一個漫長的討論,我將使用類似git的存儲庫。
您可以想象每個Akka節點都維護自己的存儲庫,其中HEAD指向羣集的當前狀態(該節點已知)。當一個節點引入一個變化時,它會分支出去,並開始將變化傳播到其他節點(這部分或多或少是隨機的)。
有一些變化,我們稱之爲單調這在git比喻中意味着分支可以平分合並。這些更改只是在接收到其他節點時纔會合併,然後他們會將合併提交傳播給其他人,最終所有內容都會穩定下來(HEAD指向相同的內容)。 (非單調)。這個過程就是節點首先發送一個建議:「我想做這個不重要的變化C」。這是必要的,因爲其他節點需要知道這個未決的「複雜」變化並準備好自己。這是在節點之間傳播,直到每個人都收到它。現在我們處於「每個人都知道有人提出做出改變C」的狀態,但這還不夠,因爲沒有人真正意識到還有協議。
因此存在另一個「輪」,其中節點開始傳播信息「I,節點Y,意識到已經提出改變C的事實」。最終,一個或多個節點意識到存在協議(這或多或少是分佈式確認協議)。所以現在的狀態是「至少有一個節點知道每個節點都知道改變C已經被提出」。這是(部分)我們稱之爲匯合。此時,知道該協議的節點(或多個節點)將進行合併並將其傳播。
請注意,我高度簡化的解釋在這裏,顯然是魔鬼(和縮放)在細節:)
相關問題
- 1. 羣集節點之間的通信
- 2. Hadoop 2節點羣集通信查詢
- 3. 如何測量Spark Standalone集羣中節點之間的通信?
- 4. 節點羣集
- 5. 確保rabbitmq羣集節點通過ssl進行通信
- 6. 彈性搜索節點沒有形成集羣
- 7. 無法在Windows中形成兩個節點的Cassandra集羣?
- 8. Orleans集羣通信
- 9. 節點羣集和/或Docker羣集?
- 10. 單節點羣集在多節點羣集上工作?
- 11. 將2節點cassandra集羣轉換爲1節點集羣
- 12. 如何從akka中檢索分割區域形成不同的集羣節點?
- 13. 如何使用.NET在MSCS集羣節點之間進行協調/通信
- 14. 刪除SQL羣集節點
- 15. 2節點的Cassandra集羣
- 16. 恢復oracle羣集節點
- 17. 4節點集羣查詢
- 18. Hadoop多節點羣集
- 19. Hazelcast羣集更新節點
- 20. 監視節點羣集
- 21. Hadoop的2節點集羣
- 22. Cassandra集羣與節點
- 23. cloudera羣集節點角色
- 24. h2o羣集多節點
- 25. RabbitMQ集羣節點故障
- 26. Vertica C.E.集羣節點號?
- 27. Cassandra集羣單節點
- 28. 無法將另一個節點添加到現有節點以形成羣集。無法將num_tokens更改爲vnodes
- 29. MATLAB中集羣的形成
- 30. 如何訪問mesos http端點以獲取集羣信息
如何將節點分散的環境意識到其他節點?我認爲他們必須意識到他們正在與之通信的節點。在一個集中的環境中,我會想象節點向「中心」查詢隨機節點「地址」,然後用它來發送消息。這是如何在分散的集羣中發生的? –
種子節點+八卦。請閱讀http://doc.akka.io/docs/akka/snapshot/common/cluster.html。 – sourcedelica