淘宝千万级Http长连接技术架构与优化策略
4星 · 超过85%的资源 需积分: 49 138 浏览量
更新于2024-07-26
收藏 1.92MB PPT 举报
本文主要探讨了如何打造一个能够支持上千万HTTP长连接的应用,以淘宝的Http长连接技术为例。该技术涉及到Comet长连接池管理、Comet Streaming以及Websocket等技术。在Web旺旺的实现中,作者首先介绍了几种常见的解决方案,如每个页面一个连接、Flash方案(如FlashDB和LocalConnection)以及轮询cookie等,这些方法在处理多页面交互时有各自的优缺点。
在面对高并发和硬件负载的问题上,作者提到了使用Jetty集群作为基础架构,通过Haproxy进行软件负载均衡,利用LVS或Haproxy的七层负载均衡策略,如Round Robin(轮询)、Least Connection(最少连接数)和一致性哈希等,来确保请求的高效分发。Haproxy还支持Session Stickiness,可以结合虚拟主机和URL参数哈希策略,提高会话的持久性和可扩展性。
然而,当连接数量达到数万甚至数十万级别时,如4万以上的Jetty连接和每秒40000次的QPS,带来了明显的性能瓶颈。这主要是由于内存使用量剧增,特别是Old区(老年代)内存,因为频繁的连接断开和重新建立导致大量对象被创建并最终进入Old区,引发Full GC(垃圾回收),造成应用暂停时间过长。
针对这个问题,作者提出了优化策略,包括采用并发式的CMS(Concurrent Mark-Sweep)垃圾收集器,通过扩大年轻代(Eden、S0和S1区)的大小来避免Old区过大,减少Full GC对应用性能的影响。然而,即便如此,调整垃圾回收设置仍不能完全消除长时间的暂停,因此在设计时需要充分考虑系统的内存管理策略和负载均衡。
总结来说,打造支持上千万HTTP长连接的应用是一项挑战性的任务,需要综合运用多种技术和策略,包括高效连接管理、负载均衡、内存优化以及垃圾回收算法的调整。这不仅考验了开发团队的技术实力,也对系统的稳定性和性能有着极高的要求。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2019-04-20 上传
2019-04-21 上传
2019-08-04 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
chaochaochao521
- 粉丝: 0
- 资源: 9
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查