xmpp通讯百万并发技术-即时通讯免费集群服务-Openfire 的安装配置教程手册-哇谷即时通讯集群方案-哇谷云

 


哇谷IM即时通讯-企业即时通讯-即时通讯源码-办公-音视频会议办公场景-直播应用-短视频应用-无纸化办公-安全通讯-哇谷云

——————————————————————————————————————

哇谷云服务客服 电话:+86 18673159224 短信:+86 18673159224

------------------


1,openfire开发环境配置


很久没有写点东西了。最近很烦心,领导不给力。一直在干一些枯燥的复制粘贴工作,烦的不得了。由于一些原因需要学习一下openfire插件开发和smack底层的通信,所以边学便写点东西。一是利于自己的记忆,二是如果有别人需要可以拿过来看看。

开发环境:myeclipse

首先下载openfire源码具体下载方式我就不说了,具体可以百度一下。我这里下载的是目前的最新版本openfire_src_3_7_0.tar

  

第一步:在myeclipse新建一个java工程,我的工程的名字是openfire_src。如下图:

 

 

点击下一步。完成。你会发现有一个插件有错误,我的做法是去除这个插件(把报错的插件从引用的source中去掉)

 

第二部:

添加引用。添加后的样式如下:

 

至此准备工作已经差不多了。

 

配置运行环境:

 

设定主运行类:如下图:

 

 

在虚拟机参数栏设定openfirehome:

 

-DopenfireHome="${workspace_loc:openfire_src}/target/openfire"

 

第三部:编译工程

打开ant文件并运行:ant文件路径/openfire_src/build/build.xml

 

经过以上三步openfire的开发环境就算搭建好了。

 

2,Openfire 的安装和配置


1、 下载最新的openfire安装文件

官方下载站点:http://www.igniterealtime.org/downloads/index.jsp#openfire

下载地址:

Exe:http://www.igniterealtime.org/downloads/download-landing.jsp?file=openfire/openfire_3_7_1.exe

ZIP: http://www.igniterealtime.org/downloads/download-landing.jsp?file=openfire/openfire_3_7_1.zip

我使用的是zip解压版的安装文件。

其中openfire是服务器,下面还有一个spark,这个是一个XMPP协议通信聊天的CS的IM软件,它可以通过openfire进行聊天对话。

 

2、 下载完成后,如果你下载的是exe文件,执行你的安装文件,进行安装。这里我是zip的文件。解压后,复制openfire目录到C:\Program Files\目录下;一定要在C:\Program Files\目录下的;这样openfire就安装完成了。

 

3、 下面我们启动openfire服务器,并配置它。在C:\Program Files\openfire\bin目录下有一个电灯泡的openfire.exe文件,双击执行,启动完成后可以看到

image

4、 点击Launch Admin按钮进入http://127.0.0.1:9090/setup/index.jsp页面,配置openfire服务器

 

5、 选择语言 中文简体

image

点击continue进入

 

6、 配置服务器域名

image

如果你是本地访问,那么你可以不修改或是使用localhost、127.0.0.1的方式

如果你用于外网或局域网访问,那么你的地址配置成外网或局域网地址

 

7、 选择数据库

image

选择openfire自带的,当然你也可以选择你的数据库类型。如Oracle、SQLServer、MySQL等。如果openfire没有带jdbc的连接驱动,你需要添加连接数据库的jdbc驱动;驱动放在C:\Program Files\openfire\lib目录下

 

8、 选择特性配置,默认即可

image

 

9、 管理员邮件,可以跳过这步

image

 

10、 安装完成

image

进入管理员控制台页面

 

11、 进入http://127.0.0.1:9090/login.jsp页面后,输入admin、密码admin登陆进入

image

 

12、 进入后可以看到

image

服务器名称就是jwchat的连接地址;你可以使用Spark、jwchat链接这个地址进行IM通信聊天……

至此,openfire的安装和配置已经完成。



3,用openfire集群优化达到xmpp并发20-100万通过量

openfire压测概述


Openfire采用Java开发,基于XMPP(Jabber)协议,开源的即时通讯服务器。一直以来,对于服务器的支持最大用户数总是让人感到疑问,官方甚至还是几年前的5k。在熟悉了openfire源码后,我决定花些时间测试一下openfire的极限。经过约1个月左右的测试,总算得到预定目标(3台服务器,并发50w用户在线)


测试环境搭建


压测客户端无他-tsung,尝试了windows安装perl失败后,使用centOS6.5作为压测机


压测服务器,因为集群需要大内存,因而安装了64位的centos6.7.


所幸这些都可以使用vmware虚拟机,只要装好一台,通过简单copy就能复制出多台.实际上,一共也就使用了6台硬件设备.


设备类别        台数        系统                                     虚拟机操作系统                说明


OF服务器         3           i54570,12G,Win7              CentOS6.7 8G                 其中一台运行mysql数据库


tsung客户机    3           i54570,4G,Win7                 CentOS6.5 1G                虚拟机1G内存,运行3个实例


jvisualvm+mat使用


如果不跑集群,其实openfire还是比较稳定的,单台4G内存情况下,也有运行到25W同时在线的情况。一旦用了hazelcast,反而不稳定了,出现问题就需要使用工具进行定位,看看哪里堵住了。


运行结果与心得:


0.千万不要用OpenJdk的虚拟机,官方推荐用CMS进行GC,那就老实点用JDK7.


1.openfire使用mina作为nio底层实现.实测一秒20-25个新连接还算稳定,超过30个就会堵住.(占用大量内存存储未处理的包-经查,时offlineMessage堵住,tsung去掉发送消息的,就快了)


2.openfire使用hazelcast的缓存机制实现集群。经过实际测试,这货太消耗内存了,20w连接大概需要4G的内存(包含mina连接需要的内存),加上还要互为主备的机制,至少还要1.5G才能实现集群的使用。测试至少要8G内存才行,实际使用推荐12G以上.


3.仅仅是压测同一台服务器,与同时压测多台情况大不相同,后期改进主要集中在数据库性能.(后期改进点-)


4.Linux内核修改limits.conf和net.nf_conntrack_max参数后性能有所提升。


程序优化点:


1.JVM配置优化:


需要自己修改openfire.sh,增加虚假机参数.(hazelcast插件有推荐配置,修改一下就行)


2.offlineMessageStore+squenceManager优化:


前面说过了,mysql最多支持每秒30个的NextID,实际运行offlineMessage会很多,修改使用redis保存离线消息。


3.hazelcast和openfire优化:


hazelcast本身就很多问题,例如一台设备内存满了或者处理超时,那么整个集群就没响应了。如果还是用hazelcast作为集群的缓存,需要剥离到单独的设备上去。


openfire用的是java的序列化,内存用的多,效率慢;hazelcast是支持自定义序列化的,经过比较,我用了kryo作为序列化工具,在对ClientSessionInfo,Roster,RosterItem,User这几个类优化后,内存使用明显小了很多。


SessionManager 把所有的clientSession都放到hashmap中,当用户变得非常大量时候,sessionInfoCache的操作必然影响效率。


4.登录流程简化:


xmpp的登录报文交互太多了,虽然tsung使用最简单的iqauth登录,实际使用还是需要简化登录流程,这点需要客户端配合。


热门搜索:

什么是私有云?  私有云、公有云还是混合云?企业该如何选?  企业聊天APP有什么作用,可以带来哪些便利?  企业选择混合云的优势  聊天APP应该具备哪些功能?怎么确保信息不被泄露?   企业即时通讯的使用价值有哪些   企业IM是什么,有什么使用优势?  JM沟通优势有哪些,安全性怎么样?  JM沟通APP功能强大且安全性高  IM云系统即时通讯公有云、私有云、企业云、海外云-哇谷IM团队  对于IM即时通讯的性能与并发性问题xmpp等各种通信协议  sso登录统一账号体系和集中认证授权  MongoDB数据库百万并发设计使用方法  WebRTC视频会议服务器性能10万并发  办公协同解决方案的意义 有什么优势?  美国FBI遭黑客攻击 超10万人收到垃圾邮件!这家零佣金券商也被攻击 用户数据泄露-企业即时通讯安全  工作台支持私有化部署-企业办公通信管理-软件开发管理系统-哇谷云  Application scenarios of wagu im cloud service  A typical IM architecture might look like this  哇谷IM实现原理讲解-哇谷IM即时通讯云  JM沟通功能图片演示-哇谷IM即时通讯云  硬件配置选择-哇谷IM即时通讯云  IM私有化价格服务系统-哇谷IM即时通讯云  哇谷云服务项目表  哇谷IM定制私有化搭建资料准备工单-哇谷IM即时通讯云   APP中红包功能技术最常见的形式-哇谷im即时通讯云  私有云、公有云还是混合云?企业该如何选?  租用海外云服务器时应注意的事项   私有云比起公有云安全性大大提高   哇谷云服务应用场景十分丰富多元  聊天APP功能强大 用户群体越来越广泛  企业打造私有云平台需要注意的几点  企业聊天办公软件如何挑选,需要具备哪些功能?  IM的作用可不只是单纯的聊天工具  企业使用即时通讯的好处有哪些?  企业通讯常见的困扰:有什么办法提高通讯质量?  聊天APP应该具备哪些功能?怎么确保信息不被泄露?  语音会议软件越来越多:到底哪个软件适合开会?  使用手机能否召开视频会议?哪些软件值得选择?  JM沟通与传统通讯软件有何区别?是否只能用于社交?  语音会议效果难以保障 你有准备专业会议软件吗  专业企业通讯软件功能齐全 让办公变得更加轻松快捷  业应不应该开发聊天APP 三个不容拒绝的理由  企业通讯软件如何选择 隐私保护终于一切  视频会议没有专用软件 很多事情都无法处理  哪些是常用的微服务框架?  企业如何搭建私有云?  即时通讯软件是否具有聊天回执的功能?  企业即时通讯软件支持多设备登陆吗?  企业即时通讯适合中小企业的即时通讯软件?  盘点全球几大即时通讯软件  介绍两款国外大佬级别的即时通讯APP  Short video features  即时通讯短视频功能的基本特点主要有哪些  Features of chat function  聊天功能在即时通讯软件中的产品特色体现在哪里  Increase the function of red envelope  为什么在即时通讯软件中会增加红包功能  instant messaging  即时通讯  办私密软件公  Office privacy software  Cloud service  云服务  Im definition  IM定义  How to meet office requirements   Main features of instant messaging  即时通讯云软件应该如何达到集团办公的需求  企业即时通讯软件设计的特点主要有哪些  Instant messaging cloud red packet   福利发送新办法,IM即时通讯云红包功能的大势所趋  LAN communication   区域网通讯可以促进企业发展,使信息传输更快捷  Production guide of enterprise specific app  企业专属聊天APP的生产指南,这里应有尽有!  Waguyun privacy protection  企业通讯无法得到私密保障?哇谷云上办公为您提供专业服务!  Choose Wawa Guyun for internal communication  企业内部交流怎么办?现在有了哇谷云!    Advantages of LAN   局域网通讯企业真的需要吗?它有哪些优点?  Enterprise instant messaging voice conference app  新发展、新机遇 全球疫情下的企业即时通讯语音会议  Provide efficient enterprise communication  专业呼叫中心 提供高效企业通信解决方案  New layout of global economic integration  协同办公解决方案,全球一体化经济新布局  There is more than one way for IM tools  还在使用微信?IM工具不止有一条途径  Power source for efficient operation  选择办公协同解决方案,现代企业高效运转的动力源  Efficient enterprise specific instant messaging  企业聊天APP,私密度高的高效企业专属即时通讯APP  新一代私有云与早期私有云的区别  The difference between private clouds  What are the advantages of private cloud   新一代私有云有哪些优势?   单聊功能   群聊功能红包功能源码   实时音视频     短视频   音视频会议源码   低延迟直播  哇谷IM云服务  IM私有化搭建源码  私有化搭建准备文件   TF签名知识  企业即时通讯   IM 即时通讯   IM定制功能  语音聊天室   在线教育  金融服务  sso单点登录系统  政府加密沟通  企业通信办公   KTV点唱系统  局域网通讯  知识库   企业即时通讯  sso单点登录系统  KTV点唱系统版本Demo   JM沟通2.0版本Demo  哇谷IM企业办公版本  哇谷工作台   短视频源码   音视频会议源码   直播聊天源码  ios超级签名服务   哇谷云     哇谷科技    即时通讯     IM下载    IM功能与价格    

tigase集群配置搭建官方方法-xmpp通讯协议配备tigase集群开发简单省事-哇谷即时通讯IM


即时通讯

即时通讯im

什么是私有云?

im 移动社交聊天APP

Im通讯有哪些APP

如何选择即时通讯软件?

推荐一款好用的企业办公聊天APP

使用企业IM要不要收费

IM软件要多少钱?‍‍有必要定制么?

有没有必要开发企业聊天APP

企业IM是什么,有什么使用优势?

哇谷IM有什么特点,为什么很多企业在使用?

即时通讯私有化部署是什么?

企业即时通讯的使用价值有哪些

企业聊天APP有什么作用,可以带来哪些便利?

企业即时通讯软件支持多设备登陆吗?

购买海外云服务器注意避免这些误区

怎么样正确认识海外云服务器

员工上网影响效率 关闭外网做内网必备聊天APP

即时通讯软件是否具有聊天回执的功能?

即时通讯聊天APP是否支持消息漫游

即时通讯软件可以发送表情和语音么?

即时通讯软件支持群聊和音视频功能么?

有微信有QQ,为啥还要定制即时通讯软件?

IM软件功能丰富 随心所欲定制您需要的功能

盘点全球几大即时通讯软件

介绍两款国外大佬级别的即时通讯APP

原创互联网未来世界企业政府通讯APP办公节约成本类似马云思维-哇谷IM

免费十万SEO优化超级外链工具各大站长工具

敲黑板,企业聊天APP这些事项一定要注意!

JM沟通优势有哪些,安全性怎么样?

JM沟通app即时通讯聊天系统功能介绍

jm沟通 企业即时通讯有什么特点,为什么受欢迎?

JM沟通实现零距离交流 成现代企业办公的必备

即时通讯私有化完整版源代码分析后台数据库说明

即时通讯IM融云世界

新的市场叫板环信、融云、腾讯云!开源版IM即使聊天工具

公有云和私有云之间有什么区别?类似融云、环信云、网易云、哇谷云?

IM云系统即时通讯公有云、私有云、企业云、海外云-哇谷IM团队

2.0哇谷即时通讯系统正式上线适合大型项目运营超稳定性

哇谷科技JM沟通即时通讯内核升级新版哇谷2.0即将上线

im即时通讯社交软件APP红包技术分析(五):微信红包、聊呗红包、诚信红包、高并发技术

im即时通讯-微信红包、支付宝红包、聊呗红包、诚信红包、谈功能逻辑、容灾、运维、架构等。Q红包