聚集彗星后端

时间:2014-12-01 11:54:38

标签: nginx redis comet

我们的问题:我们有超过30万个在线客户端申请(50 000到一个节点)。因为我们使用负载均衡器我们现在没有(哪个nginx实例)与客户端的活动连接。所以我们需要向所有节点发布pub消息。 我们如何获得线性可扩展性?

当前功能:

  • Comet(对于我们来说是彗星)客户端(移动/网络浏览器)和具有pub-sub功能的服务器(java)。
  • 客户端可以向其他(单个)客户端发送通知;
  • 服务器可以向单个客户端或一组分支发送通知;
  • 客户端从nginx + memcached
  • 收到有关活动客户端的信息(按组)

现在我们使用:nginx + https://github.com/wandenberg/nginx-push-stream-module + memcached。

客户端在设置彗星频道之前向服务器发送请求:“我还活着,我的公共频道ID ...”。每个10分钟的客户端重新打开管道,但只在服务器上注册一次(这是另一个问题)。

我认为我们可以在nginx(+ redis或memcached)上用Lua编写一些逻辑。并且每个客户端请求在redis中重新打开管道更新信息(+添加有关绑定连接的nginx实例ip的附加信息)。 但是可能存在可扩展性彗星功能的其他变体或实践吗?

0 个答案:

没有答案