[XMPP]基于Openfire+Connaction Manager的BOSH

  项目的消息服务器选择谷歌曾使用过的Openfire,3.7版本。因为项目需要,系统整体架构是B/S架构,通俗点就是Web IM,当然我们更多的是使用它来实时传递消息(控制,业务,IM)。系统本身的设计考虑到了大并发,而我们的业务情况:会有大并发存在(10万级,对于IM来说比较大了),而客户端主要是接收消息且消息频率不高(几秒或者数10分钟一个,同样的间隔可能会存在上行消息),所以使用官方的Connection Manager(CM)来做一个“整流器“,前端客户端之前使用Strophe,发现Strophe在不使用CM时与Openfire连接比较正常,存在的偶尔断开问题也解决了,但实际发现在客户端与服务器中间夹了个CM后就连不通了,收到包不正确导致不能成功连接(暂不清楚是否为CM与Strophe存在在兼容性问题)。花了很长时间做JS通过Connection Manager连接OpenFire,一直未能成功,之前一直在CM和Strophe上想办法,今天无意换了JSJaC Simple Client 后成功了。btw:使用2G内存,普通PC,CentOs系统,部署一个CM,单台达到了5.5万在线用户,能力非常也得,同时该机各项指标较平衡,内存稍有点吃紧。CM整体原理也数据库连接池类似,N个客户端连接CM,CM再创建少数几个与Openfire的连接,N个客户端在需要与Openfire(其它JID)通信时由CM来分配连接,当然当请求较大时,这些客户端将排队使用。

猜你喜欢

转载自lydawen.iteye.com/blog/1140133