优化openfire服务器提升xmpp 效率的15个方法(原创)

1、禁用原生xmpp搜索,使组织架构、人员数据本地化保存,并使客户端数据同步服务器,降低原生xmpp搜索的iq消耗,因为搜索是im应用的频繁操作;

2、禁用roster花名册、禁用presence包通讯,企业im中的好友概念非常没必要,使用发布订阅的方式替代状态服务,见http://www.cnblogs.com/starcrm/p/5029231.html。并重写状态更新的广播:PresenceUpdateHandler中的broadcastUpdate方法。

如果想保留好友机制,建议把好友信息本地化保存,不要每次都从服务器拉取了。

3、禁用MUC的Password-Verification特性,它将造成客户端开窗前的大量iq交互。改造Roles、 Affiliations、Disco 、Querying等交互,但muc消息通讯机制可以沿用。

4、头像分离出vcard,在有头像情况下实在是太占流量了,而且openfire的缓存基本都被vcard、roster占了。头像放云里,或者搞头像服务,并且做客户端同步。

5、避免为每一种请求开发一个新iq,设计一个通用的处理iq,统一包装并解析json,简化业务处理。

6、TLS连接使用更快的算法(用ECDHE RSA-2048代替RSA-4096,而不是DHE、RC4)

7、如果使用SCRAM-SHA-1算法,服务器将哈希密码处理 (每次都发同样的salt) ,可以对 SaltedPassword 进行缓存, 将节省处理时间。

8、自动更新管理需要改进,因为openfire设计的客户端下载升级是通过自身的服务器进行,当大量客户端同时下载时一定挂。

9、尝试用redis存储缓存,让of专注于一件事:消息处理。

10、离线信息存储分库,或者用redis存。

11、不要用windows版的of,最大java内存难以大于1300MB,另外linux可更多的tcp连接。在linux下执行ulimit -n 100000设置为10万。

12、保证你重写AuthProvider的验证返回一定要快,你会发现登录时间至少提升1-2秒。

13、将登录验证的9个round trip,减少到3个round trip,这里很详细

http://blog.csdn.net/linyu19872008/article/details/24022929?utm_source=tuicool&utm_medium=referral


14、读读官方的优化方案:

http://www.igniterealtime.org/support/articles/openfire_optimization.jsp

15、另外,增加消息回执机制,解决of4.0以前的本身机制造成的丢消息风险,不清楚前几天新发布的of4.0对这个有没有改进。

欢迎补充。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值