研究了幾個月的openfire的集群,今天終於有點眉目了。分享一下。
openfire的集群通過插件集成到服務器中。
該插件使用Oracle Coherence。Oracle Coherence是一個分布式的緩存方案,並且通過集群為應用提供強大的緩存后備支持。Coherence主要是內存緩存,即存儲區域主要在內存當中。
與一般的分布式緩存方案如JBossCache, Memcache 等相同,分布式緩存的價值基於網絡IO性能高於DB查詢的磁盤IO性能這樣一個特點。Coherence的別名是Data Grid。
不用擔心登錄openfire的客戶端數量暴漲后,openfire的內存會耗光,因為Coherence每個節點只保存1/n的緩存。可以通過增加節點數來解決內存問題。
另外coherence是可以配置的,用winrar打開coherence.jar,編輯其中的tangosol-coherence.xml。
常見配置:集群名稱,知名IP列表等。
通過設置集群名稱,可以讓知道集群名稱的節點加入集群。
通過設置知名IP列表,可以讓不能用廣播的節點加入集群。
當然目前還遇到一些奇怪的問題在研究解決。