写点什么

深入了解扩展的 5 个阶段

  • 2013-03-11
  • 本文字数:1184 字

    阅读完需:约 4 分钟

Christopher Smith 在上月举行的 Scale11x 上进行了题为“扩展的五个阶段”的演讲,演讲中他分享了自己对实现Web 应用扩展和解决扩展中的问题的见解。Christopher 举了在各阶段实现扩展的例子,同时他还对通过添加或优化良好定义的组件来改善Web 应用整体扩展做了讲解。他从负载均衡讲到UDP 协议的优化使用,带领听众经历了一段集知识性和娱乐性于一体的旅程

最重要的基础扩展架构应具有在负载均衡器后面添加Web 应用服务器的能力。负载均衡器能够通过在应用服务器间划分请求和会话的方式进行web 应用的线性扩展。该技术相当于通过增加应用服务器进行线性扩展,然而这只不过是延缓了不可避免的 C10K 问题,因为这种方式没有增加单个请求的响应能力。

Christopher 介绍了 web 应用前置的缓存系统如何通过处理读取操作来支持扩展:联合使用多重缓存系统使扩展最大化。Memcache 服务器(或类似的服务器)可以在内存中存储数据从而使应用服务器能够快速检索。还可以在负责均衡器之前放置反向代理为缓存的资源提供服务。最后,可以使用内容分发网络(CDN)使缓存的资源更靠近终端用户。不过缓存在写数据方面有它自身的限制。

优化的持久性框架能够将扩展写入的能力带到扩展中的新阶段。Christopher 认为,对大部分人来说,能够成功运用这一阶段和之前提到的内容就足够了。选择合适的 SQL 或 NoSQL 数据库来匹配应用数据结构将显著地增强扩展性。并发读 / 写能力将提高写操作的吞吐量和响应能力。最后如果你能够“在 ACID(特别是 C 和 D)上耍点手腕儿”,你就可以将更多的写操作提速。

这些扩展技术的基础是使 web 应用读 / 写数据的延迟最小化。Christopher 分享了计算机上不同操作的延迟时间

  • L1 缓存引用 - 0.5 ns
  • 分支预测失败 – 5 ns
  • L2 缓存引用 – 7 ns
  • 互斥锁 / 解锁 – 25 ns
  • 主内存引用 – 100 ns
  • 使用 Zippy 压缩 1KB – 3,000 ns
  • 在 1Gbps 网络上发送 1KB – 10,000 ns(0.01 ms)
  • 从 SSD 随机读取 4KB – 150,000 ns(0.15 ms)
  • 从内存中顺序读取 1MB – 250,000 ns(0.25 ms)
  • 同一个数据中心内部往返 – 500,000 ns (0.5 ms)
  • 从 SSD 连续读取 1MB – 1,000,000 ns (1 ms)
  • 硬盘寻道 – 10,000,000 ns (10 ms)

Christopher 演讲的其他部分涵盖了扩展的高级阶段,包括:

  • 使用商用服务器传递代码而不是数据: Map/Reduce (Hadoop) ,DHT(Cassandra、HBase 和 Riak)
  • 通过数据分区路由数据: ESP/CEP 、Eigen、Storm、Esper、StreamBase 和 0mq 等
  • 使用 UDP 而不是 TCP

那些管理超大规模 web 应用的公司使用了最先进的技术,例如 Facebook 使用 UDP 和 Memcached 每秒能执行成千上万次请求

查看英文原文**: Insight into the Phases of Scaling **


感谢孙镜涛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-03-11 04:042980
用户头像

发布了 256 篇内容, 共 85.8 次阅读, 收获喜欢 10 次。

关注

评论

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

3D雕刻纹理绘制 ZBrush2025 mac详细图文安装教程

Rose

移动端动态化演进:技术底座重构驱动下的生态繁荣与产业实践

xuyinyin

鸿蒙Next 组件样式封装

auhgnixgnahz

鸿蒙Next

移动研发范式跃迁:跨端生态重构与AI技术双向赋能

xuyinyin

鸿蒙Next Scroll+List+Tabs实现关联滑动

auhgnixgnahz

鸿蒙Next

鸿蒙Next组件导航 (Navigation)

auhgnixgnahz

鸿蒙Next

Maya 2026 Mac许可秘钥及玛雅2026中文资源 针对Apple芯片进行优化

Rose

Mac Git客户端工具SourceTree中文补丁 免登陆版

Rose

WeOps V5.23&V4.23 智能化升级,日志提取器正则表达式自动生成

嘉为蓝鲸

智能运维 日志管理 #WeOps

鸿蒙Next气泡提示(Popup)的使用

auhgnixgnahz

鸿蒙Next

AE插件-漂亮真实高级辉光发光特效 Deep Glow 2 v1.6.6 一键激活安装

Rose

AI的能源消耗领跑比特币

PowerVerse

比特币 AI+ web3、 DePIN

驭见未来 绿动新生 | 中国重汽HOWO轻卡CNG产品首发盛典圆满举行

科技热闻

鸿蒙Next嵌套组件点击事件传递

auhgnixgnahz

鸿蒙Next

鸿蒙Next Dialog弹框

auhgnixgnahz

鸿蒙Next

鸿蒙Next 线性布局 (Row/Column)

auhgnixgnahz

鸿蒙Next

2025年成都互联网企业指南:从大厂到本土创新,精准锁定职业舞台

测试人

软件测试

嘉为蓝鲸 OpsPilot:聚焦运维场景的智能平台,以 LLM 大模型重构企业运维能力

嘉为蓝鲸

智能运维 #WeOps OpsPilot

湖南大学×咕泡科技实训研学:产教融合,深度赋能实战培养闭环

咕泡科技

人工智能 大模型

鸿蒙Next状态管理装饰器V2 @Provider @Consumer

auhgnixgnahz

鸿蒙Next

鸿蒙Next异步并发 (Promise和async/await)

auhgnixgnahz

鸿蒙Next

嘉为蓝鲸CCI持续集成平台:告别手动苦力Matrix Job 驱动智能批量构建新纪元

嘉为蓝鲸

DevOps 持续集成 智能运维

连接产品与价值:嘉为蓝鲸WeOps三级认证打造运维专业纽带

嘉为蓝鲸

智能运维 #WeOps

无代码是什么?无代码平台真的可靠吗?

积木链小链

数字化 无代码 无代码平台

HarmonyOS应用安全全攻略:从系统到代码的全面防护

Turing_010

YashanDB分布式锁实现及应用场景详解

秃头小帅oi

解决律所管理难题,Alpha法律系统助力律所高效发展

科技汇

量贩零食上云,原生的最划算

阿里巴巴云原生

阿里云 云原生

鸿蒙Next 底部弹框绑定半模态页面(bindSheet)

auhgnixgnahz

鸿蒙Next

HarmonyOS隐私保护全攻略:从入门到精通

Turing_010

鸿蒙Next Text内容超出父容器?

auhgnixgnahz

鸿蒙Next

深入了解扩展的5个阶段_DevOps & 平台工程_Aslan Brooke_InfoQ精选文章