低延迟,服务器推送。服务器可以有多少个打开的连接?
Low latency, server push. How many open connections can server have?
任务是向客户端发送有关某些事件的通知。举个例子,事件发生率约为每秒 1 次,我们有大约 10000 个客户端在收听该事件。
你会建议什么架构?服务器推送可以保持多少个打开的连接?
如果你使用基于良好可扩展多线程架构的websocket服务器,真正的限制不是打开的连接数而是总吞吐量。在您的例子中,总吞吐量是每秒 10,000 条消息。我们还应该考虑平均消息大小。例如,如果一条典型的消息是 10 个字节,那么您的总吞吐量是 0.8 Mbit/s;如果一个典型的消息是 1000 字节,你的总吞吐量是 80 Mbit/s.
在这两种情况下,根据我们的经验,中型服务器可以安全地处理此类流量。
仅供参考,我们在我们的 websocket 服务器上成功测试了 100 万个并发连接,每个连接的吞吐量为每 10 秒 1 条消息。这意味着每秒 100,000 条消息分布在单个服务器上的 1,000,000 个套接字上。
[全面披露:我是 Lightstreamer 的联合创始人]
任务是向客户端发送有关某些事件的通知。举个例子,事件发生率约为每秒 1 次,我们有大约 10000 个客户端在收听该事件。 你会建议什么架构?服务器推送可以保持多少个打开的连接?
如果你使用基于良好可扩展多线程架构的websocket服务器,真正的限制不是打开的连接数而是总吞吐量。在您的例子中,总吞吐量是每秒 10,000 条消息。我们还应该考虑平均消息大小。例如,如果一条典型的消息是 10 个字节,那么您的总吞吐量是 0.8 Mbit/s;如果一个典型的消息是 1000 字节,你的总吞吐量是 80 Mbit/s.
在这两种情况下,根据我们的经验,中型服务器可以安全地处理此类流量。
仅供参考,我们在我们的 websocket 服务器上成功测试了 100 万个并发连接,每个连接的吞吐量为每 10 秒 1 条消息。这意味着每秒 100,000 条消息分布在单个服务器上的 1,000,000 个套接字上。 [全面披露:我是 Lightstreamer 的联合创始人]