簡體   English   中英

在許多機器上分配狀態

[英]Distributing state across many machines

我正在嘗試編寫一個需要了解集群中其他計算機狀態(本地LAN)的工具。 這適用於類似於VRRP和corosync / openais的網絡故障轉移/高可用性系統,但我希望包含更多信息(例如接近實時的速度/性能特征),以便設備可以做出更明智的選擇。 這意味着使用比預先確定的基於權重的機制更復雜的協議:通過允許所有群集機器查看彼此的狀態,他們可以共同商定哪個最適合作為主設備。

從我的搜索中,我還沒有找到任何提供分布式狀態機制的(C,C ++或JavaME)庫。 理想情況下,我正在尋找能夠定期廣播/多播每個機器狀態的內容,這樣參與的機器就可以建立一個全局狀態表,所有人都可以看到主人應該是誰。 在這種情況下,狀態是任意鍵/值對。

我寧願不重新發明任何車輪,所以很想知道這里是否有人可以指出我正確的方向?

如果我是你,我會調查memcached(memcached.org)或其中一個nosql變種。

聽起來像Apache ZooKeeper可能是一個很好的匹配。 它是分布式,分層鍵值存儲。 引用他們的概述頁面

ZooKeeper旨在存儲協調數據:狀態信息,配置,位置信息等。

這是一個簡單的領導者選舉收件人的例子,雖然它需要適應以通過一些加權標准來確定領導者。

我不確定是否有任何申請表明您的目的。 但我知道您可以使用MPI庫編寫一個簡單的程序並廣播您想要的任何信息。

所有客戶端都可以將其狀態發送到根節點,然后根節點廣播該消息。

您需要的功能是:

MPI_Bcast
MPI_Send
MPI_Recv

網上有很多關於C ++ / MPI的教程,只是谷歌吧!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM