在openfire中使用的集群解決方案是代理+分布式內(nèi)存。所謂代理便是通過一個入口轉(zhuǎn)發(fā)請求到多個服務(wù)實例。而分布式內(nèi)存就是解決服務(wù)實例間數(shù)據(jù)共享問題。通過這兩步就可以搭建出一套水平擴(kuò)展的集群系統(tǒng)。
openfire使用的分布式內(nèi)存計算框架是hazelcast,并不了解它,大概只知道它是分布式網(wǎng)格內(nèi)存計算框架。聽許多openfire開發(fā)者都吐槽hazelcast有許多問題,集群效果上不太好,也因此意外間的發(fā)現(xiàn)了Ignite。
Ignite是apache基金的一個開源項目,功能與hazelcast非常類似:
Apache Ignite內(nèi)存數(shù)據(jù)組織是高性能的、集成化的以及分布式的內(nèi)存平臺,他可以實時地在大數(shù)據(jù)集中執(zhí)行事務(wù)和計算,和傳統(tǒng)的基于磁盤或者閃存的技術(shù)相比,性能有數(shù)量級的提升。
特性:
可以將Ignite視為一個獨(dú)立的、易于集成的內(nèi)存組件的集合,目的是改進(jìn)應(yīng)用程序的性能和可擴(kuò)展性,部分組件包括:
高級的集群化
數(shù)據(jù)網(wǎng)格(JCache