android 采用XMPP协议进行推送时的大量用户讨论
|
admin
2013年2月25日 23:32
本文热度 4500
|
采用XMPP协议来实现android的推送功能,用开源的AndroidPn项目,是否存在这样的问题,当客户端很多时,比如成千上万,它的服务器会不会承受不了产生崩溃。之前采用MQTT协议实现推送功能就发生过这样的问题,需要花大力气去修改它的服务器代码。反编译了一些应用,想看看他们的push机制,却发现都没有见到我熟悉的这些协议,貌似都是自己写的?
该文章在 2013/2/25 23:32:40 编辑过
| |
全部评论2 |
|
admin
2013年2月25日 23:33
|
|
admin
2013年2月25日 23:35
我们用了一段时间的mqtt(Mosquitto),现在我们测试的数据是一台机器可以承受3w人左右的同时在线,我们的一个用户主题在5个左右(比较多)。如果更多用户(>5w)在线的话,我们采取主动分发到多个主机的方式去平衡压力。
如果你们的同时活跃用户不是非常多>10w,我觉的现有的mqtt源码可以满足你的需求,如果有更多的需求,可以修改下源码,毕竟fb的messager就是采用的mqtt,说明理论上是不存在较大的缺陷的。
补充:
拜google大神所赐,GCM在国内现在也可以推送了
XMPP如果构建分布式聊天服务 比较合适,如米聊这样的服务就是基于XMPP。但是如果仅仅作为PUSH之用,未免有点重量级了,性能也不好。推荐使用更轻量级的解决方案,比如使用nodejs作为分发服务器。 我们曾经测试过一台基于nodejs的专业服务器可以支撑50W左右的tcp长链接。
2012-0
XMPP不就是基于TCP协议的么,因此客户端肯定是和服务器建立的TCP长连接。
在实现服务器的时候,我们采用分布式部署,每个节点最大可以建30W个链接。
实现了类似于围脖的应用,有新消息的情况下会push下去。
|