2012-10-23 69 views
1

我有一種獨特的配置管理問題。我不認爲zookeper是爲了解決它而建立的,但我可能是錯的。向網絡設備提供數百萬個配置對象

該系統將配置給網絡中的多個設備 。配置本身由配置對象的數千萬個 組成。

如果尚未設置設備,則需要讀取整個配置的當前版本(數千萬個對象)。

設備設置完成後,需要接收版本號爲 的配置更改。變化僅發生在 數百/秒或低千/秒的順序。

動物園管理員的基於文檔的模型和1 MB的響應限制, 它看起來不太合適。我錯了嗎?

回答

2

ZooKeeper仍然不適合您的應用程序,但1 MB響應限制是每次操作。因此,如果所有配置對象的大小都小於1 MB,則讀取/寫入它們時不會有問題。

對於這種情況,有兩件事要牢記:所有數據都存儲在內存中。通過記錄到磁盤並使用複製可靠地實現了持久性,但如果內存用完,則完成。每個znode內存開銷(大約100字節)。如果您有10,000,000個對象,並且每個對象只存儲100個字節,則您的內存佔用量爲2G。假設你有一個相對配置好的服務器,這應該不是太大的問題。同時請記住,從崩潰中恢復所需的時間會更長,因爲您必須在啓動過程中讀取2G數據的順序。

在客戶端也有一個相關的問題:如果客戶端真的要讀取所有配置對象,他們通過網絡拉動大量數據!假設每個對象都在1 MB以下,你不會遇到任何限制,但它會花一點時間。