我正在探索 Meteor 的平衡选项。这篇文章看起来很酷,它说应该支持以下内容来负载平衡 Meteor:
- Mongo 选配。否则,一个 Meteor 实例可能需要 10 秒才能从另一个实例获取更新,因为将使用轮询 Mongo 驱动程序,该驱动程序每 10 秒轮询一次 DB。
- 网络套接字。这也很清楚 - 否则客户端将回退到 HTTP 和长轮询,这将起作用,但它不如 Websocket 酷。
- 'SockJS 需要的粘性会话'。问题来了:
据我了解,“粘性会话支持”是在会话期间将一个客户端分配给同一服务器的东西。是必不可少的吗?如果我根本不配置粘性会话会发生什么?
这是我自己想到的:
- 因为 Meteor 将发送给客户端的所有数据都存储在内存中,如果客户端连接到 X 个服务器,那么将消耗 X 倍的内存
- 同一用户可能会在不同的选项卡或窗口中出现一些次要(或主要,如果没有 oplog)滞后,这可能会令人惊讶。
- 如果 SockJS 重新连接并希望一些数据在重新连接时保持不变,那将会很糟糕。我不确定 SockJS 是如何工作的,这点有效吗?
会发生什么坏事?这三点看起来还不错:数据是有效的、可用的,可能是以额外的内存消耗为代价的。