- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果您对许多用户(和服务器)设置了复杂的要求,那么您的websocket基础架构(服务器)将如何扩展,尤其是在广播方面?
当然,广播不是任何websocket规范的一部分,但即使在基本的聊天示例中(也就是websocket的hello世界),广播都是存在的。
客户端(寻求新数据)解决方案似乎仍然比服务器端(广播)解决方案更具可扩展性,因为Websockets的延迟低且相对便宜(无HTTP header )。
编辑:
好的,只是认为您想用websocket实现替换所有的ajax代码,这可能意味着在这么多不同的上下文中有那么多的连接。如果要跟踪广播的每种可能情况,这将给您的系统增加极大的复杂性。
低级(网络/线程等)实现建议也是问题的一部分,而不是解决方案,因为这意味着您必须编写与常规http服务器不同的特殊服务器代码。
而且,广播给 table 带来了某种状态性,这很难扩展。考虑添加更多服务器和负载平衡。
最佳答案
扩展实时Web解决方案可能是一个复杂的问题,但Pusher(我为之工作)之类的服务已经解决,并且为self hosted realtime web solutions定义了绝对肯定的解决方案是一个问题-PubSub paradigm已广为人知,并且已经按顺序解决了很多次要解决该问题,需要有某种状态(谁在订阅什么)。此范例用于广播您正在谈论的场景类型。
建立实时网络技术时要牢记大量的同时连接-许多都是从头开始的。如果要创建可伸缩的解决方案,则很可能会使用支持WebSocket的现有实时Web服务器,其方式与您不太可能决定实现自己的HTTP Server一样,不太可能希望实现自己的服务器从头开始支持WebSockets。
专用的实时Web服务器还使您可以将应用程序逻辑与实时通信机制分离(关注点分离)。您的应用程序可能需要维护一些状态,但是实时技术需要处理订阅和连接的管理。如何实现应用程序与实时Web技术之间的通信取决于您,但经常使用消息队列,特别是redis在该领域非常流行。
从概念上讲,HTTP轮询可能更容易理解-您可以保持无状态,并且在每个HTTP轮询请求中都可以精确指定要查找的内容。但这绝对意味着您需要更快地开始扩展(添加更多资源来处理负载)。
WebSocket轮询是我以前从未考虑过的事情,而且我认为我也从未在任何地方看到过它的建议。客户应该说“我已经准备好我的下一组数据,这就是我想要的”这一想法很有趣。 WebSocket通常已从请求/响应范例中脱颖而出,但是在某些情况下,提高WebSocket的效率和使用它们的请求/响应可能会带来一些好处。 SocketStream应用程序框架可能是值得一看的,因为它可能是相关的。初始应用程序加载后,所有通信都通过WebSocket执行,这意味着事件基本请求/响应功能使用WebSocket。
但是,由于我们正在谈论广播数据,因此我们需要回到PubSub范例,在该范例中拥有事件订阅更为有意义,并且当有新数据可用时,会将新数据分发给这些事件订阅(推送)。您的应用程序所有需要知道的是是否有任何事件的订阅,以便决定是否发布数据。这个问题已经解决了。
关于scalability - Websocket可扩展性,广播问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8779492/
我最近的任务是估计 IIS 可以处理的并发用户数。不幸的是,我对 IIS 的经验为 0,所以我希望有人能指导我去哪里寻找。我希望在这个阶段我不必做我自己的基准测试。 我想知道它可以处理的并发连接数是多
我们正在考虑建立一个具有约 8000 个客户端和每个客户端一个队列的 MSMQ 系统。平均而言,系统每天需要处理来自每个客户端的约 2000 条消息,其中消息大小范围从 1K 到 MSMQ 最大大小
我们即将从一个内容丰富的网站开始,我们正在考虑使用 Dotnetnuke。 与联合国网站(http://www.un.org/en/index.shtml)相比,该网站将是多语言的 问题是:DotNe
我正在寻找有关 DB4O 对象数据库的信息。我知道它有客户端/服务器模式,但我不知道它的可扩展性如何。我非常喜欢对象数据库的想法,但仍然找不到合适的 OODB 用于我的任何项目。所以我的问题是: 我想
我目前使用 Sphinx Search 来优化我们的搜索页面。 该网站越来越受欢迎,这给 Sphinx 带来了更多负载。虽然此时没有什么可担心的,但我想知道 Sphinx 是如何扩展的。我在他们的网站
我对具有 OpenEJB 水平可扩展性配置的 Tomcat 感兴趣,以及它将如何管理分布式无状态 ejb:在每次调用时,是否可以从另一个 tomcat 服务器分配一个实例,例如在应用程序服务器中 -
SQLite 可以替代高流量网站中的 mysql 吗?谢谢 最佳答案 SQLite usually will work great as the database engine for low to
我想开发一个 iOS 应用程序,您可以在其中找到附近的人并与他们聊天。但是,我不知道 firebase 如何处理大量数据。 例子:所以,如果应用程序有 10 万用户。而且他们中的很多人总是在聊天,搜索
我正在尝试在我的新项目中使用 CQRS 和 EventSorcing。我正在遵循 Greg Young 几年前建议的方式(Mark Nijhof 实现 - http://cre8ivethought.
我有一个即将开展的项目,将与 70,000 多个用户(教育)打交道。我想知道 ASP.NET SqlMembership Provider 是否已经以如此大的容量使用过?假设硬件在那里,是否需要做一些
我们有非常简单的 Spark Streaming 作业(用 Java 实现),它是: 通过 DirectStream 从 Kafka 读取 JSON(关闭 Kafka 消息的确认) 将 JSON 解析
我正在使用tensorflow来训练DNN,我的网络结构非常简单,当只有一个参数服务器和一个worker时,每个minibatch大约需要50ms。为了处理巨大的样本,我使用分布式ASGD训练,但是,
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我正在使用 Crawler4j 爬虫来爬取一些域。现在我想提高爬虫的效率,我希望我的爬虫使用我的全部带宽并在给定时间段内爬取尽可能多的 url。为此我采用以下设置:- 我增加了编号。爬虫线程数到 10
我一直在寻找在 NUnit 中获取错误消息的方法。到目前为止,我找到了一些使用 IAddin 和 EventListener 来获取消息的类,但是没有用。我将此代码基于以下链接: About exte
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我已经使用 Poco 为 Linux 编写了一个代理服务器,但此后一直在阅读实现 TCP/IP 服务器可伸缩性的各种方法。我将需要服务器处理持久连接(不是 HTTP 流量),上限为大约 250 个同时
我正在尝试为自定义审计要求编写一个 SSMS 插件(需要审计用户在生产环境中运行的所有查询)。我有位于适当文件夹中的 .addin 文件,它在我的 Connect.Exec 方法中命中断点,我能够从事
我正在用 spark 处理数据,它可以处理一天的数据(40G),但失败了 OOM 一周的数据: import pyspark import datetime import operator sc =
当我将无服务器框架代码库部署到 AWS 时,我很好奇哪种方法会更好。 目前,有两种选择。 使用 Nest.js 或 Express.js,因此我将一个函数部署到 Lambda,该函数将处理所有 API
我是一名优秀的程序员,十分优秀!