首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OpenFire、HTTP-BIND和性能

OpenFire、HTTP-BIND和性能
EN

Stack Overflow用户
提问于 2011-11-22 00:38:06
回答 4查看 2.8K关注 0票数 1

我正在研究如何启动一个openfire服务器,并设置一个strophe.js客户端来连接它。我担心的是,与直接在XMPP上建立连接相比,使用http-bind可能在性能方面代价高昂。

有没有人能告诉我,我的担忧是否相关?如果是这样,在多大程度上呢?

另一种方法是对与OpenFire的所有通信使用闪存代理。

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-12-09 04:00:38

BOSH比普通的XMPP更冗长,尤其是在空闲的时候。空闲的BOSH连接可能大约是每分钟2个HTTP请求,而正常的连接可以空闲几个小时甚至几天而不发送一个数据包(理论上,在实践中,您将使用ping和keepalives来对抗NAT和损坏的防火墙)。

但是,唯一真正了解的方法是benchmark。根据您的用例,以及您的客户端正在(将要)做什么,差异可能可以忽略不计。

票数 3
EN

Stack Overflow用户

发布于 2011-12-11 06:08:57

基础知识:

代码语言:javascript
运行
复制
Socket - zero overhead.

HTTP - requests even on IDLE session.

我怀疑你是否会同时拥有100万用户,但如果你的目标是这样做,那么像http这样的无连接协议将会更好,因为我不确定任何操作系统都能支持这种连接套接字容量。

此外,您还可以将您的OpenFires捆绑在一起,形成一个场,在那里您将具有良好的可扩展性。

票数 1
EN

Stack Overflow用户

发布于 2011-12-20 18:47:46

我们使用Openfire和BOSH,在同一个MUC通道中有大约400个并发用户。我们注意到的是Openfire会泄漏内存。我们使用了大约1.5-2 GB的内存,并且得到了常量的内存不足异常。此外,Openfire的BOSH实现也相当糟糕。然后我们切换到punjab,它更好,但不能解决openfire问题。

我们现在将ejabberd与其内置的http-bind实现结合使用,它具有很好的伸缩性。运行ejabberd的服务器上的负载几乎为0。

目前,我们面临的问题是,我们用来处理聊天负载的5个we服务器有时会在大约200个连接的用户处超载。我现在正在尝试使用websockets,但它似乎还不起作用。也许不通过Apache重写规则重定向http-bind,而是直接在负载均衡器/代理上重定向可以解决这个问题,但我找不到一种方法来实现这一点。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8215201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档