IM开源项目OpenIM集群(非k8s)部署文档生产环境可参
自行部署etcdzookeepermysqlkafkamongoredis集群,可以根据此性能评估服务器需求。
以下是针对一台华为云主机s3的压测数据:8核16G内存,普通磁盘(非SSD)
(一)单聊压测数据:
同时在线及压测客户端数量:1万
每秒钟发送消息量:2300条;
从发送到对方接收平均消息延时:5秒
(二)群聊压测数据:
群成员数量:1万人
同时在线人数:1千人
每秒发送消息量:500条;
从发送到对方接收平均消息延时:6秒
组件集群说明
组件
说明
版本
etcd
建议三台,可复用
3。5。0
zookeeper
建议三台,可复用
3。7。1
mysql
主从两条,可复用
5。7
kafka
建议三台,可复用。以2台8核16GIMServer为例说明topic分区设置,ws2mschat8分区,msgtomongo8分区,ms2pschat10分区
3。2。0
mongo
建议2台以上,可复用。每个cache限制0。5G;多个数据分片副本集,1个mongos副本集,1个config副本集
5。0
redis
建议2台以上,可复用。每个内存限制10G,淘汰策略volatilettl
6。2。5IMServer集群部署(1)下载代码及编译gitclonehttps:github。comOpenIMSDKOpenIMServer。gitrecursivecdOpenIMserverscriptchmodx。sh。batchbuildallservice。sh出现allservicesbuildsuccess表示所有模块编译成功(2)修改组件信息kafka:ws2mschat:addr:〔127。0。0。1:9092,127。0。0。2:9092,127。0。0。3:9092〕topic:ws2mschatopenimmsg写入,openimmsgtransfer消费后新消息入库redis和kafkamsgtomongo、ms2pschatws2mschatoffline:addr:〔127。0。0。1:9092,127。0。0。2:9092,127。0。0。3:9092〕kafka配置,默认即可topic:ws2mschatoffline不再使用msgtomongo:addr:〔127。0。0。1:9092,127。0。0。2:9092,127。0。0。3:9092〕kafka配置,默认即可topic:msgtomongoopenimmsgtransfer消费历史消息入库mongoms2pschat:addr:〔127。0。0。1:9092,127。0。0。2:9092,127。0。0。3:9092〕kafka配置,默认即可topic:ms2pschatopenimpush消费,推送消息到openimmsggatewayetcd:etcdSchema:openim默认即可etcdAddr:〔127。0。0。1:2379,127。0。0。2:2379,127。0。0。3:2379〕etcd集群mysql:dbMysqlAddress:〔127。0。0。1:13306,127。0。0。2:13306〕mysql主备mongo:dbAddress:〔127。0。0。1:37017,127。0。0。2:37017,127。0。0。3:37017〕使用分片集群时为mongos地址redis:dbAddress:〔127。0。0。1:16379,127。0。0。2:16379,127。0。0。3:16379〕redis集群rpcRegisterIP:不要填写(3)调整进程数
openimmsg6个,openimpush5个openImMessagePort:〔10130,10131,10132,10133,10134,10135〕openimmsg配置6个端口则启动6个进程openImPushPort:〔10170,10171,10172,10173,10174〕openimpush配置5个端口则启动5个进程
openimmsgtransfer4个修改scriptpathinfo。cfgmsgtransfernameopenimmsgtransfermsgtransferbinaryroot。。binmsgtransfersourceroot。。cmdopenimmsgtransfermsgtransferservicenum4(4)复制OpenIMServer到其他服务器scprOpenIMServerroot127。0。0。2:data(5)启动cdscript。startall。sh关于OpenIM
OpenIM是由IM技术专家打造开源即时通讯组件,也是目前最受欢迎的开源IM项目之一,开发者通过集成OpenIM组件,并私有化部署服务端,可以将即时通讯、实时通讯能力快速集成到自身应用中,并确保业务数据的安全性和私密性。github社区活跃,star近万,排名遥遥领先,开发者万人,OpenM力争开源IM项目No1,打造开源IM第一社区。OpenIM是也是目前非常受欢迎的开源IM项目,广泛用于政企协同办公场景。
github地址:https:github。comOpenIMSDKOpenIMServer
开发者中心:https:doc。rentsoft。cn
平台支持:AndroidiOSUniappFlutterElectronWebreactNative等几乎所有平台
pc支持信创环境:银河麒麟UOS等;
群组支持:十万群成员的超级大群
安卓基于自启动保活机制
nginx配置示例
httpswss配置;负载均衡配置;以IMServer两台127。0。0。1127。0。0。2,nginx部署在其他服务器为例。
注意域名替换ip域名以及证书upstreammsggatwayimserver{server127。0。0。1:10001;server127。0。0。2:10001;}upstreamapiimserver{server127。0。0。1:10002;server127。0。0。2:10002;}upstreamjssdkimserver{server127。0。0。1:10003;server127。0。0。2:10003;}upstreamdemoimserver{server127。0。0。1:10004;server127。0。0。2:10004;}upstreamcmsimserver{server127。0。0。1:10006;server127。0。0。2:10006;}server{listen443;servernameopenimonline。rentsoft。cn;sslon;sslcertificateetcnginxconf。dsslopenimonline。rentsoft。cn。crt;sslcertificatekeyetcnginxconf。dsslopenimonline。rentsoft。cn。key;sslsessiontimeout5m;gzipon;gzipminlength1k;gzipbuffers416k;gzipcomplevel2;gziptypestextplainapplicationjavascriptapplicationxjavascripttextcssapplicationxmltextjavascriptapplicationxhttpdphpimagejpegimagegifimagepng;gzipvaryoff;gzipdisableMSIE〔16〕。;errorpage405200uri;location{proxysetheaderHosthost;proxysetheaderXRealIpremoteaddr;proxysetheaderXForwardedForremoteaddr;proxysetheaderXNginXProxytrue;rootdataonlinePcWebDemobuild;indexindex。html;tryfilesuriuriindex。html;}locationadmin{proxysetheaderHosthost;proxysetheaderXRealIpremoteaddr;proxysetheaderXForwardedForremoteaddr;proxysetheaderXNginXProxytrue;rootdataonlineOpenIMAdminbuild;aliasdataonlineOpenIMAdminbuild;indexindex。html;tryfilesuriuriadminadminindex。html;}}server{listen80;servernameopenimonline。rentsoft。cn;rewrite(。)https:{servername}1permanent;}server{listen10001;servernameopenimonline。rentsoft。cn;sslon;sslcertificateetcnginxconf。dsslopenimonline。rentsoft。cn。crt;sslcertificatekeyetcnginxconf。dsslopenimonline。rentsoft。cn。key;sslsessiontimeout5m;gzipon;gzipminlength1k;gzipbuffers416k;gzipcomplevel2;gziptypestextplainapplicationjavascriptapplicationxjavascripttextcssapplicationxmltextjavascriptapplicationxhttpdphpimagejpegimagegifimagepng;gzipvaryoff;gzipdisableMSIE〔16〕。;location{proxyhttpversion1。1;proxysetheaderUpgradehttpupgrade;proxysetheaderConnectionUpgrade;proxysetheaderXrealipremoteaddr;proxysetheaderXForwardedForremoteaddr;proxypasshttp:msggatwayimserver;}}server{listen10002;servernameopenimonline。rentsoft。cn;sslon;sslcertificateetcnginxconf。dsslopenimonline。rentsoft。cn。crt;sslcertificatekeyetcnginxconf。dsslopenimonline。rentsoft。cn。key;sslsessiontimeout5m;gzipon;gzipminlength1k;gzipbuffers416k;gzipcomplevel2;gziptypestextplainapplicationjavascriptapplicationxjavascripttextcssapplicationxmltextjavascriptapplicationxhttpdphpimagejpegimagegifimagepng;gzipvaryoff;gzipdisableMSIE〔16〕。;location{proxyhttpversion1。1;proxysetheaderXrealipremoteaddr;proxysetheaderXForwardedForremoteaddr;proxypasshttp:apiimserver;}}server{listen10003;servernameopenimonline。rentsoft。cn;sslon;sslcertificateetcnginxconf。dsslopenimonline。rentsoft。cn。crt;sslcertificatekeyetcnginxconf。dsslopenimonline。rentsoft。cn。key;sslsessiontimeout5m;gzipon;gzipminlength1k;gzipbuffers416k;gzipcomplevel2;gziptypestextplainapplicationjavascriptapplicationxjavascripttextcssapplicationxmltextjavascriptapplicationxhttpdphpimagejpegimagegifimagepng;gzipvaryoff;gzipdisableMSIE〔16〕。;location{proxyhttpversion1。1;proxysetheaderUpgradehttpupgrade;proxysetheaderConnectionUpgrade;proxysetheaderXrealipremoteaddr;proxysetheaderXForwardedForremoteaddr;proxypasshttp:jssdkimserver;}}server{listen10004;servernameopenimonline。rentsoft。cn;sslon;sslcertificateetcnginxconf。dsslopenimonline。rentsoft。cn。crt;sslcertificatekeyetcnginxconf。dsslopenimonline。rentsoft。cn。key;sslsessiontimeout5m;gzipon;gzipminlength1k;gzipbuffers416k;gzipcomplevel2;gziptypestextplainapplicationjavascriptapplicationxjavascripttextcssapplicationxmltextjavascriptapplicationxhttpdphpimagejpegimagegifimagepng;gzipvaryoff;gzipdisableMSIE〔16〕。;location{proxyhttpversion1。1;proxysetheaderUpgradehttpupgrade;proxysetheaderConnectionUpgrade;proxysetheaderXrealipremoteaddr;proxysetheaderXForwardedForremoteaddr;proxypasshttp:demoimserver;}}server{listen10006;servernameopenimonline。rentsoft。cn;sslon;sslcertificateetcnginxconf。dsslopenimonline。rentsoft。cn。crt;sslcertificatekeyetcnginxconf。dsslopenimonline。rentsoft。cn。key;sslsessiontimeout5m;gzipon;gzipminlength1k;gzipbuffers416k;gzipcomplevel2;gziptypestextplainapplicationjavascriptapplicationxjavascripttextcssapplicationxmltextjavascriptapplicationxhttpdphpimagejpegimagegifimagepng;gzipvaryoff;gzipdisableMSIE〔16〕。;location{proxyhttpversion1。1;proxysetheaderXrealipremoteaddr;proxysetheaderXForwardedForremoteaddr;proxypasshttp:cmsimserver;}}server{listen7880;servernameopenimonline。rentsoft。cn;sslon;sslcertificateetcnginxconf。dsslopenimonline。rentsoft。cn。crt;sslcertificatekeyetcnginxconf。dsslopenimonline。rentsoft。cn。key;sslsessiontimeout5m;gzipon;gzipminlength1k;gzipbuffers416k;gzipcomplevel2;gziptypestextplainapplicationjavascriptapplicationxjavascripttextcssapplicationxmltextjavascriptapplicationxhttpdphpimagejpegimagegifimagepng;gzipvaryoff;gzipdisableMSIE〔16〕。;location{proxyhttpversion1。1;proxysetheaderUpgradehttpupgrade;proxysetheaderConnectionUpgrade;proxysetheaderXrealipremoteaddr;proxysetheaderXForwardedForremoteaddr;proxypasshttp:127。0。0。1:7880;}}upstreamstorage{server127。0。0。1:10005;}server{listen443;servernamestorageonline。rentsoft。cn;sslonsslcertificateetcnginxconf。dsslstorageonline。rentsoft。cnbundle。crt;sslcertificatekeyetcnginxconf。dsslstorageonline。rentsoft。cn。key;sslsessiontimeout5m;listen443;servernamestorageonline。rentsoft。cn;sslon;sslcertificateetcnginxconf。dsslstorageonline。rentsoft。cnnginxstorageonline。rentsoft。cnbundle。crt;sslcertificatekeyetcnginxconf。dsslstorageonline。rentsoft。cnnginxstorageonline。rentsoft。cn。key;gzipon;gzipminlength1k;gzipbuffers416k;gzipcomplevel2;gziptypestextplainapplicationjavascriptapplicationxjavascripttextcssapplicationxmltextjavascriptapplicationxhttpdphpimagejpegimagegifimagepng;gzipvaryoff;gzipdisableMSIE〔16〕。;location{proxypasshttp:127。0。0。1:10005;proxysetheaderXRealIPremoteaddr;proxysetheaderXForwardedForproxyaddxforwardedfor;proxysetheaderXForwardedProtoscheme;proxysetheaderHosthttphost;proxyhttpversion1。1;clientmaxbodysize8000M;}}1
济宁房价四连跌,济宁房价跌破9000元,济宁楼市分析第57期济宁房价从1万多元跌至9000元,济宁房价2023年还能突破1万吗?济宁房价跌的比较惨了,济宁这种三线城市,没有了棚改拆迁之后,对于房价的影响太大了。济宁房价从去年的巅峰时期均价1
养老储蓄试点正式启动,年利率可达4,35岁以上的人有福了头条创作挑战赛为了满足人民群众多样化的养老需求,工农中建四大行,在合肥,广州,成都,西安和青岛开展特定养老储蓄试点,年利率可达4。现在银行大额存单一单难求,三年期大额存单,年利率也
A股5000家大盘15年稳坐3000点11月22日对于A股来说是个特殊日子。当天两家公司成功挂牌之后,A股的存量公司正式达到了5000家。时间变化是均衡的,只能说我们的上市速度越来越快了!看一组数字从第1家到1000家
泉州楼市都没有二手房指导价,泉州房价为什么跌的那么多?泉州楼市去年还好没有二手房指导价,不然泉州房价跌得更明显。泉州房价现在跌得越来越惨了,去年泉州楼市还好没有出二手房指导价,不然的话,泉州房价跌的会比现在更惨。根据统计局发布的泉州1
协同实现扩大内需和促进共同富裕作者刘昊(温州商学院金融贸易学院)陈工(厦门大学经济学院)全力扩大内需和促进共同富裕,植根于中国经济社会事业发展伟大成就基础之上,是百年大变局下党和政府应对各类风险和挑战的主动选择
你需要备货莲花清瘟吗?正品先断货再涨价,山寨货大爆发?如果说这段时间,大家去药店问的最多的药是什么,那么毫无疑问那就是莲花清瘟系列。如果说这段时间,证券市场在下跌震荡的过程中,表现最好的股票是什么?生产莲花清瘟胶囊的以岭药业,毫无疑问
退居幕后的刘强东并没有脱离京东,第一刀砍向了京东高层11月22日,刘强东发布一封京东全员信,这封信的内容方向就很明确,主要围绕员工福利和股东回报展开,落款你们的东哥。再次重申了,京东姓刘。刘强东之所以能够在淡出江湖多年后,对公司上下
河南西峡蓝天碧水润城乡生态宜居悦人心层林尽染,翠叠鎏金。走进河南省西峡县城,漫步鹳河生态文化园,碧绿的灌河水缓缓流淌,清风暖阳,让人流连忘返。鹳河生态文化园是我们的城市会客厅,在这里可以看到寺山彩虹桥鹳鸟等西峡特有风
孩子成长阶段的视力保护要知道近年来,越来越多的孩子都在不知不觉中近视。并且大部分家长在孩子近视后,才知道原来近视是可以预防的。事实上,不同年龄的孩子近视防控的目标都是不同的。那么,在不同阶段家长应该如何做到预
美媒科学家把蜘蛛网转化成音乐据美国天才男孩报道网站11月19日报道,科学家将蜘蛛网转化成了音乐。早在2018年,科学家就通过声波处理方法将蜘蛛网的3D结构转化成了音乐。该科研团队与艺术家托马斯萨拉切诺共同发明
心肌缺血可以服用归脾丸治疗吗?心肌缺血如果经中医辨证是由心血虚,心脏供血不足引起的,是可以服用归脾丸进行治疗的,归脾丸具有补脾的作用。心血虚证是因心血不足,濡养心脏及形体官窍作用和化生心神的作用减弱而出现心悸(