gpt4 book ai didi

java - 订阅数据馈送的多个并发用户的设计和架构

转载 作者:搜寻专家 更新时间:2023-11-01 03:51:52 25 4
gpt4 key购买 nike

这是一个场景:我有一个“数据源”——一个定期更新的 REST/JSON 服务(假设——每 10 秒左右),如果数据集发生变化——那么所有订阅的监听器都需要更新。

目前,它是通过 HTTP 长轮询实现的,这是一种技术性问题 - 但主要概念是客户端不会打扰服务器,服务器也不会打扰客户端 - 除非有什么需要打扰的。当有新东西时,所有客户都会立即收到通知。技术由Java/Tomcat7、异步IO(asyncResponse)组成。

我认为它非常有效:我可以驱动 10K 个并发 session ,每小时约 0.07 美元(AWS M3.Medium 实例)。

(问题 - 我认为它工作得很好,但我想听听一些基准数据来验证。或者换句话说 - 你认为它物有所值吗?请分享!!)

如果我所有的客户都收到相同的数据集(相同的 JSON),有没有办法可以进一步优化?

我正在考虑 IP V6“多播”——这将使我的带宽消耗减少几个数量级——但这是否可行?

例如,为了支持 100 万个并发用户,假设每 10 秒更新一次,我需要支持每秒 10 万次“点击”(或响应)。如果响应大小为 10K,带宽开始成为一个大问题:10K * 100K * 60 * 60 * 24 --> 86 Giga 每 24 小时。

这里(除了 IPv6)并没有真正单一的、集中的问题 - 我想听听你的想法、经验和替代方法 - 我讨厌重新发明轮子,我相信集体智慧远远超过我自己。

谢谢。

最佳答案

我想推荐一些其他可扩展的替代方案,您应该对您的预计负载进行成本估算,看看哪个可行 -

  1. 假设 feed 可以在多个客户端之间共享(我不知道这是否与您的应用程序相关)- 使用 CDN。请在此处查看此类解决方案的描述 - http://tech.ftbpro.com/post/78969626647/growing-x20-without-spending-an-extra-penny-on-hosting

  2. 使用专门的消息传递服务作为您的支柱。这个领域比较突出的是PubNub .

关于java - 订阅数据馈送的多个并发用户的设计和架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24485687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com