写点什么

Comet: 上万的并发用户、亚秒级的响应时间

  • 2008-02-01
  • 本文字数:1823 字

    阅读完需:约 6 分钟

以反向 Ajax 著称的 Comet,主要目标在于通过借助 HTTP1.1 中持久连接的特性,使得客户端可以即时获知服务器端所发生的状态变化。正如 Infoq.com 之前提到过的那样,和 Comet 类似的,还有很多其他所谓的“推送技术(push technologies)”也在试图实现同样的目标。

Greg Wilkins 和他在 Webtide 的团队瞄准了测量 Comet 的延展性的目标进行了一系列的测试(Webtide 是由开源项目 Jetty web 服务器的主要技术开发员组成的一家公司)。根据测试结果,他们发表了在测试中的一些发现。更具体地说,这些测试涉及到在Jetty 上运行实现了 Bayeux 协议的 Dojo Cometd 应用。除了在服务器上运行 Cometd 以外,他们在客户端机器(1-3 台之间)同样也运行 Cometd,从而服务器和客户端共同生成相当于两万个用户的负载。同时,服务器和客户端机器都采用 Amazon EC2 虚拟服务器的大实例(Large Instances)。测试结果的以图表的形式总结如下:

以下是从这些测试中得到的值得强调的几个要点:

  • 即使在同时面对两万个用户时,该技术都能达到亚秒级响应时间 (sub-second latency)。但是,在响应时间和吞吐量两者间仍然存在着权衡取舍的需要。对于 5000 个用户,如果响应时间达到 100 毫秒,吞吐量是每秒 2000 条信息。如果将响应时间延长到 250 毫秒,吞吐量则提高到每秒 3000 条信息。
  • 在测试中使用的应用程序仅是一个能够支持每个房间 200 个用户的聊天室程序。“在每个测试中,负载是定时间隔地向 10 个随机选取的聊天室突发 50 字节的载荷。发送的时间间隔是选定的,这样一来可以保证服务器 CPU 的状态基本稳定在 10%到 50%的空闲”。
  • Greg 指出“一台机器无法生成或者处理和 20000 个各自拥有计算机和网络设施的用户同样的负载”。为了尽可能的弥补这个不足之处,一部分测试 (见上图中绿色圆圈) 通过 3 台不同的机器模拟用户来完成。
  • 对于使用 3 台客户端机器来完成的测试,关于响应时间的测量是从模拟了 1000 个用户的机器上获得。尽管测量不是完全精确,但是 Greg 指出,他们从处理剩下的 20000 个用户的其他两个客户端所观察到的响应时间的上限值相当于在一台客户端机器上运行测试时所观察到的响应时间。
  • 捆绑了 Jetty6.1.7 的 Cometd demo 仍然需要一些修改。其中一些修改和减轻服务器端线程池的 lock starvation 相关,另外一些则牵涉到启动步骤的修改。

正如在评论以及 Greg 之前的一篇文章中提到的那样,Jetty 能够异步将消息推向客户端,因而面对同样数目的客户所需资源要少的多。在这些测试中所应用到的对线程池的修改代码现在可以下载,并且Greg 告诉Infoq 说这些修改代码将囊括在Jetty 下一个发布版本中。他也补充提到Webtide 正在通过负载均衡调度器来运行类似的测试,不久将会发布更多的测试结果。

另外一个能够突出Comet 延展性的很有意思的方法是 Lightstreamer所采用的方法。它的实现是基于一个不依赖于底层应用或 web 服务器的独立服务器。一些 web/ 应用程序服务器,扩展以后像流引擎(streaming engine)那样工作,这些服务器基于的是"一线程一连接模式(one-thread-per-connection model)"。相对来说,Lightstreamer 将服务器可以维持的连接数与服务器所能使用的连接数进行解耦,因而可以扩展面向非常大数量的用户。

在和 Infoq 的对话中,Alessandro Alinone —— Lightstreamer 的 CTO 表示,他们在金融领域已经有客户了,在产品中实现了“平均有 10000 个并发用户以及平均每个用户每秒钟 3-5 个更新的频率。”他补充说“Lightstreamer 通过一个 OEM 协定在 TIBCO Ajax 消息服务中作为核心引擎使用。因此,TIBCO 前端的一些很有意思的产品方案正在急剧增长中。”

除了服务器之外, Lightstreamer 的后端构架包括:

  • 一个数据适配器——插件模型,连接 Lightstreamer 需要集成的数据资源。它能够使用任何技术来集成数据,但是一个异步数据种子(例如 JMS,TIB/RV,MQ)要避免通向客户端的异步数据链断掉。
  • 一个元数据适配器——插件模型,为 Lightstreamer 服务器提供元数据的推送(push)方案。

客户端,浏览器像通常一样从web 服务器得到静态网页,但是它可以收到从Lightstreamer 服务器推向它的即时更新。这些更些的消费者可能是一套和大多数浏览器兼容并且和大部分第三方AJAX 框架和工具箱共存或集成的Lightstreamer JavaScript 库。即时更新也可以通过Lightstreamer 推向Flash/Flex 应用程序,也可以推向使用Java 或.NET 开发的桌面应用程序。

查看原文: Comet: Sub-Second Latency with 10K+ Concurrent Users

2008-02-01 03:055466
用户头像

发布了 71 篇内容, 共 20.3 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

和鲸科技助力某高校人工智能通识课程实现全校覆盖,以实践为学生AI素养筑基

ModelWhale

人工智能 AI 教育 智慧课程

HarmonyOS 5.0应用开发——鸿蒙混合开发

高心星

鸿蒙Next HarmonyOS NEXT ArkWeb

Acrobat Pro DC 2022 for Mac(PDF编辑软件)中文版

Mac相关知识分享

Voice Agent 开发者必读,2024 最前沿语音模型梳理

声网

一个Java程序员具备什么样的素质和能力才可以称得上高级工程师?

开心学Java

Java 架构师 java面试 jvm调优 Java性能优化

AnyToISO Pro for Mac(ISO镜像文件制作工具)中文版

Mac相关知识分享

淘宝月销API接口开发实战

联讯数据

Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件

sysin

UFED

“百度搜索们”会被“Kimi们”取代吗?

趣解商业

百度 互联网 科技 AI搜索

50款Vsco滤镜胶片Lightroom预设

理理

2024最新Java高频面试题及答案

采菊东篱下

java面试

ArkUI与MVVM模式的诗和远方

威哥爱编程

HarmonyOS arkui ArkTS HarmonyOS框架 HarmonyOS NEXT

保护Active Directory:备份和恢复的重要性及实施指南

运维有小邓

备份恢复 AD域 IT自动化运维

一本书精通复杂的后端系统

博文视点Broadview

2024“创客中国”国际中小企业创新创业大赛决赛在广州南沙成功举办

新消费日报

Cubase Elements 11 for Mac(音频处理编辑软件)

Mac相关知识分享

全网最全:JVM+分布式+算法+锁+MQ+微服务+数据库499道JAVA面试题

程序员高级码农

Java 编程 程序员 java面试 Java面试题

TON链小游戏开发:探索GameFi链游技术的未来

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

VMware Integrated OpenStack 7.3 现已支持 vSphere 8.0U3 和 NSX 4.2 互操作性

sysin

vmware OpenStack

通过延时从库+binlog复制,恢复误操作数据

GreatSQL

Downie 4 for Mac(视频下载工具)中文版

Mac相关知识分享

Solana VS 以太坊:基于数据、市场情绪和催化剂对比分析,Solana 能否实现逆袭?

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

2025史上最全Java面试题:初级-中级-高级!

程序员高级码农

Java 程序员 java面试 面试八股文 Java面试题

PDF Reader Pro for mac( PDF 编辑阅读软件)

Mac相关知识分享

融云参与「全球首个运营商级量子加密办公应用」量子密信生态开放合作签约

融云 RongCloud

和鲸助力国防科技信息数据挖掘能力征集活动圆满落幕!

ModelWhale

Python 人工智能 大数据 R语言 国防科技

摄影师必备神器:Nik Collection滤镜套装全新升级

理理

牛客网1000 大厂Java 面试题大全

蓝蓝路

程序员 java面试

SpringSecurity如此复杂,Java程序员该如何学习?

开心学Java

Java 程序员 架构师 springsecurity java面试

有关Spring全家桶核心知识总结,这是我看过最全面的了!

了不起的程序猿

Java spring springboot SpringCloud java面试

苹果电脑清理软件哪个好?专业的Mac系统维护工具推荐

阿拉灯神丁

性能优化 CleanMyMac X 清理优化 如何清理苹果电脑 mac系统维护软件

Comet: 上万的并发用户、亚秒级的响应时间_Java_Alexander Olaru_InfoQ精选文章