常用的XMPP服务器

时间:2021-06-01 20:38:38

1. Openfire (Wildfire) 3.x

底层通讯采用的mina框架,minak框架其实性能一般,netty早已经超越它,虽然最初都是Doug Lea写的。3.4版本之后支持集群,单台服务器测试最大支持30万用户并发,服务器配置(服务器是Dell R710, 64G内存 16核CPU,15000转硬盘),缺点是大规模并发时集群效果不是很好。
性能优化学习:http://blog.csdn.net/smm11230704/article/details/7468010
授权: GPL or 商用
操作系统平台:所有(使用Java开发)
XMPP Jabber 协议实现情况:98%
Tim 评价:
安装和使用非常简单,安装后进入Web界面进行2~3分钟的配置所有的东西都设好了。使用Java语言开发,在目前Java开发人员到处普及的情况下进行维护和扩展的成本非常低。在我的测试中加上 Connection Manager 的情况下单台服务器可支持 30 万并发用户。缺点是目前还不支持Cluster。如果企业内部部署IM使用 Wildfire + Spark 是最佳的组合。
见:http://hi.baidu.com/jabber/blog/Category/Wildfire

2. ejabberd
授权: GPL
操作系统平台:Linux, Windows, MaCOS X 等
XMPP Jabber 协议实现情况:91%
Tim 评价:
Ejabberd目前是可扩展性最好的一种Jabber/XMPP服务器,支持分布多个服务器,并且具有容错处理,单台服务器失效不影响整个Cluster运作。
顾虑就是它采用一种大家都没听过的语言Erlang开发,所以很多人可能会象我一样因为这个原因放弃了它。

3. Jabberd 2.x
授权: GPL
操作系统平台:主要是 Linux, (Windows 也支持,但不知道性能怎样)
XMPP Jabber 协议实现情况:76%
Tim 评价:
自从jabber.org改用ejabberd之后,Jabberd一直都在走下坡路。扩展性比不上ejabberd, 易用性比不上 Wildfire,唯一的优势是使用C开发,如果你坚持要用C开发,那么还是选择jabberd吧。

4. Jabberd 1.x
授权: GPL
操作系统平台:主要是 Linux, (Windows 也支持,但不知道性能怎样)
XMPP Jabber 协议实现情况:45%
Tim 评价:
在几年前 jabberd 就是 Jabber 的代名词,至今很多 Jabber 文档仍然介绍的是 Jabber 1.4,
在我以前写的《Jabber 服务器占有率比较》中仍然排名第一。但是它很多新的规范都不支持,相信大部分用户都将转向新的服务器。
见:http://hi.baidu.Com/jabber/blog/item/7d25bb199f31a44542a9ad02.html

5. 后起之秀 DJabberd
授权: open sourCe
操作系统平台:主要是 Linux, (Perl写的,其他平台应该也支持)
XMPP Jabber 协议实现情况:N/A
Tim 评价:
djabberd 使用 epoll 技术,理论上单台服务器可以支持更多用户。Djabberd目前主要应用在LiveJournal上,大部分XMPP协议都支持,稳定性也不用置疑。但是因为推出时间尚短,很多细节功能可能需要时间慢慢完善。
djabberd介绍见:http://hi.baidu.com/jabber/blog/Category/Djabberd

6. tigase:
1)底层通讯是自己写的一个NIO通讯框架, 最高并发连接可达到单机50w,支持集群(可以根据需要进行水平扩展),个人感觉这个比较靠谱。
部署学习:http://xiao9.iteye.com/blog/1488070

2).Tsung负载测试Tigase:http://linyu19872008.iteye.com/blog/1605707

3)典型案例:Zoosk,是一个具有5000万会员的浪漫的社交约会网站

4)详解Zoosk千万用户实时通信背后的开源技术:
http://www.csdn.net/article/2012-09-10/2809790-zoosk-the-engineering-behind-real-time

5)缺点:集群方式复杂--但是tigase 作者维护很活跃,集群测试结果能够支撑比较大的容量,这是吸引人的地方。但经过实际生产运营情况来看,由于其集群方案实现的复杂性,以及单节点容量的有限,对支撑到 50 万用户在集群节点上可能没有信心,所以在到达 50 万用户之前,自己要准备替代方案。

6)扩展:可以创建一些自定义的扩展,来处理特定的业务逻辑。

7)tigase官方网站吸引人的地方:http://www.tigase.org/
Cluster with over 1mln online users.--  集群支持一亿个用户在并发
500k online users on a single machine.--50万个用户并发单机
Great at XMPP service sharding.
Running happily with 10MB of RAM.
Long list of supported features.
Scripting support for all major languages.
All tests results are publicly available.
Very flexible and extensible API.
Monitoring via HTTP, SNMP, JMX, XMPP.