假设我有一个典型的Web服务器,它向客户端提供标准的HTML页面,并且与它一起运行的websocket服务器用于实时更新(聊天,通知等)。扩展标准的网络服务器旁边的解耦实时服务器
我的一般工作流是当主服务器上发生什么事情触发需要实时消息时,主服务器将该消息发送到实时服务器(通过消息队列),实时服务器将其分发给任何相关的连接。
我担心的是,如果我想扩大了一点东西,并添加另一个实时服务器,似乎我唯一的选择是:
- 有主服务器跟踪哪些实时服务器的客户端 连接到。当客户端收到通知/消息 消息时,主服务器将该消息转发给客户端连接的实时服务器 。这里的缺点是代码复杂度为 ,因为主服务器必须做一些额外的预订 保留。
- 或者,主服务器只需将该消息 一起传递给每个实时服务器;只有连接到客户端的服务器 实际上会对它做任何事情。这会导致 被大量浪费的消息传递。
我在这里错过了另一个选择吗?我只是试图确保我不会在这些路径中走得太远,并意识到我正在做的事情完全错误。
您也可以使用像pusher.com或realtime.co这样的实时云服务。他们会为你处理重负载,你不需要担心可扩展性。永远。 –
@JoãoParreira - 希望避免外部解决方案。我已经有了一个可以正常工作的系统,我只是因为好奇而感兴趣。 – repole