我目前正在使用Hazelcast爲我們的軟件進行評估。如果你能幫助我闡明以下內容,會很高興。動態配置分佈式對象
我有一個具體的要求:我想能夠動態地配置分佈式對象(比如地圖,隊列等)。也就是說,當我啓動集羣時,我無法掌握所有配置數據。我希望能夠根據需要初始化(和處理)服務,並且可以在它們之間改變它們的配置。
我正在評估的版本是3.6.2。
我可用的文檔(參考手冊,部署指南,以及「Mastering Hazelcast」電子書)對於細節w.r.t非常簡單。這個問題,甚至部分矛盾。
因此,澄清一個預期的用法:我想啓動羣集;然後,在某個時候,創建一個分佈式地圖結構,在節點上使用它;然後將其處置並使用具有不同配置的地圖(例如,備份數量,驅逐策略)用於相同的目的。
文檔中提到,這是可以預料的,如果節點對同一個分佈式對象有不同的配置,就會發生壞事。這很合理,很好。我可以確保配置一致。
看着代碼,看起來有可能做我想做的事情:在創建分佈式對象時,如果它還沒有代理,HazelcastInstance將查看其配置以創建一個新的代理並將其存儲在本地代理列表中。當該對象被銷燬時,其代理將從列表中刪除。在下一次調用時,它會從Config中重新加載。此外,該配置是可寫的,所以如果它在兩者之間被改變,它應該選擇這些改變。
所以這看起來應該是可行的,但鑑於文件對此事的沉默程度,我想要一些確認。
- 是否有任何理由爲什麼上述不應該工作?
- 如果它應該工作,是否有任何理由不是做到以上?例如,是否有計劃在未來版本中更改代碼,以防止這種情況發生?
- 如果是這樣,是否有其他選擇?
完美。謝謝。 是的,我認爲你應該向這個方向擴展Hazelcast。現在的事實是,配置是如此(至少在API中提到的)靜態是有點煩人的。 – user6926802