优化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对这个有没有改进。
欢迎补充。
优化openfire服务器提升xmpp 效率的15个方法(原创)的更多相关文章
- Atitit 项目管理 提升开发效率的项目流程方法模型 哑铃型 橄榄型 直板型
Atitit 项目管理 提升开发效率的项目流程方法模型 哑铃型 橄榄型 直板型 项目主体三个部分 ui界面,中间层,数据库 按照不同的比重可以分为一下三个模型 哑铃型 橄榄型 直板型 哑铃型 开 ...
- 【Android优化篇】提升Activity加载速度的方法
文章转自:http://www.jianshu.com/p/2007ca0290d3 作者: CoderFan 前言 这个也是我面试遇到的问题,当时只回答了一种情况,异步加载数据,没想到别的方式,回来 ...
- 优化openfire服务器,达到单机20万,集群50万
openfire压测概述 个月左右的测试,总算得到预定目标(3台服务器,并发50w用户在线) 测试环境搭建 压测客户端无他-tsung,尝试了windows安装perl失败后,使用centOS6.5作 ...
- 基于XMPP协议(openfire服务器)的消息推送实现
转自:http://blog.csdn.net/nomousewch/article/details/8088277 最近好像有不少朋友关注Android客户端消息推送的实现,我在之前的项目中用到过J ...
- Openfire服务器MySQL优化
Openfire服务器MySQL优化: [root@iZ28g4ctd7tZ ~]# mysql -u root -p XXXXX mysql> show processlist; +----- ...
- iOS - XMPP Openfire 服务器的搭建
前言 提前下载好相关软件,且安装目录最好安装在全英文路径下.如果路径有中文名,那么可能会出现一些莫名其妙的问题. 提前准备好的软件: jdk-8u91-macosx-x64.dmg mysql-5.7 ...
- 用番茄工作法提升工作效率 (四)ToDoList的持续优化
一.写在前面 前面三篇文章,系统介绍了我如何使用番茄工作法,并结合“自制”的桌面ToDoList工具来实现自己的任务管理. 自制ToDoList的初衷是自我管理,但是好友看到我的桌面(程序)后,建议我 ...
- StartDT AI Lab | 智能运筹助力企业提升决策效率、优化决策质量
在人工智能和大数据时代,越来越多的云上数据和越来越智能的模型开始辅助人们做出各种最优决策,从运营效率.成本节约.最优配置等方方面面,实现降本增效,进一步提升商业效率.京东.美团.滴滴.顺丰等众多知名厂 ...
- IOS即时通讯XMPP搭建openfire服务器
一.下载并安装openfire 1.到http://www.igniterealtime.org/downloads/index.jsp下载最新openfire for mac版 比如:Openfir ...
随机推荐
- java笔记--问题总结
1. 垃圾回收算法 标记-清除算法 标记-清除算法是最基本的算法,和他的名字一样,分为两个步骤,一个步骤是标记需要回收的对象.在标记完成后统一回收被标记的对象.这个算法两个问题.一个是效率问题,标记和 ...
- idea下启动tomcat时,打印的日志中文乱码
idea2018.2+tomcat8+java8+win10 异常:将编码方式全都修改为UTF-8后,且tomcat的VM启动参数中配置了:-Dfile.encoding=UTF-8.导致控制台日志打 ...
- SPRING 事务管理说明
spring 事务管理是通过AOP拦截指定的方法,进行事务管理. 事务配置 <aop:config proxy-target-class="true"> <aop ...
- Mybatis之动态构建SQL语句(转)
https://www.cnblogs.com/zhangminghui/p/4903351.html
- 实战fortran77基础语法2
由于大量的接触fortran77,先学习fortran77吧 1.fortran不区分大小写,fortran77一般全部大写,感觉没必要,不好读,还是用大小写混合着写吧.后缀 .for 为固定格式的代 ...
- vue的cli中引入css文件
在public文件中创建一个文件夹css,放进reset.css 在main.js中引入即可 import '../public/css/reset.css'就可以啦
- Unicode和多字节的相互转换
多字节转Unicode 四步: Step1 #include <iostream> #include "windows.h" using namespace std; ...
- php实现网站四则运算。
1.设计思路: 在index.php中建立两个表单,有两个提交,一个跳转到fourArithmeticOperation.php,这里保存用户输入的参数到config.txt中,留给main函数调出. ...
- POJ2139--Six Degrees of Cowvin Bacon(最简单Floyd)
The cows have been making movies lately, so they are ready to play a variant of the famous game &quo ...
- Protocol Buffer 序列化原理大揭秘 - 为什么Protocol Buffer性能这么好?
前言 习惯用 Json.XML 数据存储格式的你们,相信大多都没听过Protocol Buffer Protocol Buffer 其实 是 Google出品的一种轻量 & 高效的结构化数据存 ...