在openfire中使用的集群解決方案是代理+分布式內(nèi)存。所謂代理便是通過一個(gè)入口轉(zhuǎn)發(fā)請(qǐng)求到多個(gè)服務(wù)實(shí)例。而分布式內(nèi)存就是解決服務(wù)實(shí)例間數(shù)據(jù)共享問題。通過這兩步就可以搭建出一套水平擴(kuò)展的集群系統(tǒng)。

openfire使用的分布式內(nèi)存計(jì)算框架是hazelcast,并不了解它,大概只知道它是分布式網(wǎng)格內(nèi)存計(jì)算框架。聽許多openfire開發(fā)者都吐槽hazelcast有許多問題,集群效果上不太好,也因此意外間的發(fā)現(xiàn)了Ignite。

Ignite是apache基金的一個(gè)開源項(xiàng)目,功能與hazelcast非常類似:

Apache Ignite內(nèi)存數(shù)據(jù)組織是高性能的、集成化的以及分布式的內(nèi)存平臺(tái),他可以實(shí)時(shí)地在大數(shù)據(jù)集中執(zhí)行事務(wù)和計(jì)算,和傳統(tǒng)的基于磁盤或者閃存的技術(shù)相比,性能有數(shù)量級(jí)的提升。

特性:
可以將Ignite視為一個(gè)獨(dú)立的、易于集成的內(nèi)存組件的集合,目的是改進(jìn)應(yīng)用程序的性能和可擴(kuò)展性,部分組件包括: