openfire的集群研究
研究了几个月的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列表,可以让不能用广播的节点加入集群。
当然目前还遇到一些奇怪的问题在研究解决。