`

Openfire 性能调优和集群方案

 
阅读更多

Openfire 性能调优和集群方案

 

Openfire 是使用JAVA并基于MINA框架实现的XMPP服务端程序,所以基本的性能调优主要集中在 系统、JVM 这两层; 主要的指标也是并发用户数和消息投递成功率和耗时 。

 

建议: 如果你的产品目标是在线用户超过100K,那么最好早点考虑openfire之外的其他XMPP实现吧,比如 ejabberd ? 等等,erlang比java更适合做并发。  总的用户量多少不会是大问题,你可以通过分片等来解决,但在线用户和并发消息的处理能力,需要考虑多种不同方案。

 

关于这个部分,推荐一篇博文:

Openfire 性能优化 

http://blog.csdn.net/smm11230704/article/details/7468010 

 

 

Openfire集群方案

 

Connection Manager  http://www.igniterealtime.org/projects/openfire/connection_manager.jsp

实际上CM并不是一个集群方案,只是openfire官方提供的一个用来扩展openfire连接能力的工具;

CM 项目由 Guus(http://community.igniterealtime.org/people/Guus) 负责,官方数据表示一个CM可以连接至少5K个客户端,CM主要负责建立和维护与客户端之间的连接,其他业务逻辑处理都由后面的openfire完成,二者之间会维持会话;一个Openfire可以连接多个CM ,从而提高在线用户数。

 

但我个人的问题是如果你无法预测连接到CM1上的用户与连接到CM2上的用户发送消息的频率,那么这个CM的作用还是非常有限的,相当于登陆上QQ了,但发消息很慢,当在线用户多的时候。

 

Oracle Coherence / clustering plugin 

http://www.igniterealtime.org/projects/openfire/plugins/clustering/readme.html 

这个是最早也是官方一直在维护的集群插件,基于分布式内存共享模型,所以使用了Coherence,因为版权以及其他各方面的问题,此插件已经从 3.7版本后开始被放弃了。实践中很多人也是使用这个插件,其实我个人觉得此插件带来的性能增长并不会非常显著,也无法做大大量的结点扩展。

 

Terracotta http://terracotta.org/ 

这是一个比较通用的分布式内存共享项目(Terracotta本身是解决实时大数据分析的),有一些人用来支持openfire的集群扩展,但门框较高,不是被推荐的方案之一。

 

Hazelcast   http://community.igniterealtime.org/message/224947 

这个是目前比较火的一个插件,很多人在尝试使用,性能未知,请参考上述链接。

 

open-clustering https://code.google.com/p/open-clustering/ 

这是一个典型的插件项目,干净整洁,只要放入plugins目录即可,在后台做基本设置就可以开启集群功能。项目的目标是“To provide a complete open source clustering plugin for Openfire with no dependecies on Oracle Coherence or any other closed component” 。  值得去尝试,但性能依然未知。

 

zkfire  https://code.google.com/p/zkfire/   

这是一个作者实验性的项目,借用zookeeper 来实现的集群方案,有待进一步验证。

 

 

 参考:

 

JGroups, Terracotta & Hazelcast

http://stackoverflow.com/questions/11404688/jgroups-terracotta-hazelcast

 

Hazelcast Performance vs MongoDB, Cassandra, Terracotta and Oracle Coherence

http://www.hazelcast.com/resources/hazelcast-performance-vs-mongodb-cassandra-terracotta-and-oracle-coherence/ 

分享到:
评论

相关推荐

    Openfire 集群部署和负载均衡方案

    openfire本身并不支持集群部署,需要通过插件来扩展。因为openfire采用的协议很多,运行时打开端口也很多,所以做...本方案采用Openfire的Hazelcast插件进行集群部署,采用Haproxy进行负载均衡,在示例环境中测试通过。

    openfire集群jar包

    在大型企业或高并发环境中,为了保证服务的稳定性和可扩展性,通常会采用集群部署Openfire。"openfire集群jar包"就是用于实现这一目的的关键组件。 集群化部署Openfire可以带来以下优势: 1. **负载均衡**:通过将...

    openfire使用hazelCast集群

    OpenFire 使用 HazelCast 集群 OpenFire 是一款流行的即时通信服务器软件,而 HazelCast 是一个高性能的分布式内存数据网格。...OpenFire 使用 HazelCast 集群可以提高系统的性能和可用性,提供高质量的即时通信服务。

    Openfire集群正确配置

    集群配置完成后,Openfire将具备更好的可扩展性和容错性,能有效应对高并发和服务器故障情况。但请注意,实际部署时还需要考虑监控、日志收集、安全策略等更多因素,以确保整个系统的稳定运行。

    Openfire 性能优化

    然而,Openfire 的集群解决方案可能存在稳定性问题,如 war 包插件和 Oracle 集群插件在高压力下表现不佳。 在用户规模达到数十万级别时,可能需要考虑更换服务器软件,如 Tigase,或者像案例中的做法,自建通信...

    openfire集群搭建所需插件

    在构建高可用性Openfire集群时,我们需要确保正确安装和配置一系列关键插件,以实现负载均衡、数据同步以及故障转移等功能。下面将详细介绍在搭建Openfire集群时可能需要的插件及其作用。 1. **Cluster Plugin**: ...

    openfire集群用到的 Oracle Coherence

    Oracle Coherence 是一款由甲骨文公司开发的分布式数据网格解决方案,主要应用于企业级应用的高性能缓存和数据共享。在openfire集群中,Oracle Coherence扮演着关键角色,为集群提供高效的数据共享和一致性保证,...

    Openfire集群部署不完全手册

    亲测可行的openfire集群实践手册,适合使用openfire做即时通讯方案的工程师做集群方案

    openfire 3.7.1 源码jar 集群jar.rar

    openfire 3.7.1 配置源码必备jar 放在build/lib/目录下 导入即可。不过还有那sip还会报错。直接用eclipse自带的解决方法解决就可以。 在网上找了好久才找到的包。一般搜还搜不到。请珍惜劳动成果。

    openfire集群所需jar包

    Openfire是一款开源的即时通讯服务器,它基于XMPP(Extensible Messaging and Presence Protocol)协议,为企业和组织提供安全、可扩展的即时通讯解决方案。在Openfire的集群配置中,为了实现高可用性和负载均衡,...

    Openfire 集群配置

    NULL 博文链接:https://chungang.iteye.com/blog/1631878

    hazelcast openfire集群组件

    提供1.3和2.0两个版本插件,分别支持openfire3.9.1以上和3.9.3以上的版本。具体的openfire集群配置请参看考:http://blog.csdn.net/jimoshazhouleng360/article/details/44651177

    Openfire3.10.2集群配置

    Openfire3.10.2集群配置,图文详细描述

    关于Openfire集群源码的分析

    Openfire是一款基于Java开发的开源实时协作(RTC)服务器,它使用XMPP(Jabber)协议。Openfire因其简洁的安装和管理过程,...这些内容对于理解Openfire如何在大规模部署中保证服务稳定性和性能优化具有重要参考价值。

    openfire 分布式 集群

    openfire + zookeeper实现服务器分布式 集群功能

    openfire 集群cluster需要用到的jar包

    openfire 集群cluster需要用到的jar包,网上不太好找了,亲测openfire3.7.1版本完全可用,效果很好比较稳定

    openfire 下载

    9. 性能优化:根据你的用户规模和需求,可能需要对Openfire进行一些性能调优,比如调整内存分配、启用集群模式、优化数据库连接池等。 10. 移动客户端支持:Openfire可以与许多支持XMPP协议的移动IM应用配合使用,...

    MQ和openfire 即时通讯【升级版】

    MQ(Message Queue)和Openfire是两种常用于构建即时通讯系统的组件。本文将深入探讨MQ与Openfire的结合,以及如何实现一个增强版的即时通讯系统,特别是在信息推送、个性化特性以及日志管理方面的改进。 首先,...

Global site tag (gtag.js) - Google Analytics