写点什么

可伸缩系统的设计模式

  • 2010-12-14
  • 本文字数:817 字

    阅读完需:约 3 分钟

过去十年所取得的一个主要成就就是面向大众的可伸缩系统的广泛应用,尤其是云系统和某些高可伸缩的Web 应用。比如说,Facebook 平均每秒可以处理1300 万个请求,峰值达到了450 M/s。即便如此,可伸缩系统背后的概念与架构仍然在快速发展着。大约3 年前,来自加利福尼亚洲的软件架构师Ricky Ho 曾撰写博文详细分析了可伸缩系统的现状。3 年后,他认为是时候重新谈谈这个话题了。

Ricky 将可伸缩性定义为

可伸缩性解决的是在持续增长的性能、花费、维护代价以及众多其他因素的情况下如何降低系统的负面影响。

在其最新的博文中,他列举了如下模式:

  • 负载平衡
  • 分散与聚集
  • 结果缓存
  • 共享空间(又叫做 Blackboard)
  • 管道与过滤
  • Map Reduce
  • 大块的同步并行
  • 执行编排

如果说负载平衡、结果缓存和 Map Reduce 已经得到了广泛应用,那么某些模式现在正面临着社会化媒体所带来的新问题。比如说,上个世纪80 年代所提出的大块同步并行现在就作为 Google Pregel Graph Processing 项目的一部分,支持 3 种常见的处理模式:

  • 捕获(比如说 John 通过社交网络联系到了 Peter,那么在这两个 Person 结点间就会建立一个连接)
  • 查询(比如说找到 John 的朋友当中年龄小于 30 且已婚的那些朋友)
  • 挖掘(比如说找到硅谷中最有影响力的人)

Ricky 还介绍了执行编排模式:

该模型基于智能的调度者 / 编排者,用于跨越集群调度准备运行的任务(基于依赖图)。

他说该模式已经在微软的 Dryad 项目中得到了应用,程序员可以“使用成千上万台机器而无需了解并发编程”。

Dryad 程序员会编写几个顺序程序,然后使用单向通道将其连接起来。计算是结构化的,以有向图的方式进行:程序是图形顶点,而通道则作为图的边。Dryad job 是个图形生成器,可以合成任意方向的无圈图。这些图甚至可以在执行期间改变来响应计算中的重要事件。

我们今天所使用的可伸缩性模式仅有 10 年的历史。接下来会有什么限制呢?你有构建可伸缩系统的经历么?忽略了哪些东西呢?

查看英文原文: Scalable System Design Patterns

2010-12-14 12:235174
用户头像

发布了 88 篇内容, 共 268.9 次阅读, 收获喜欢 8 次。

关注

评论

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

大中华区联合企业捷成集团在 AWS 上使用 F5 防御恶意 Web 攻击

F5 Inc

多级分流

胖子笑西风

Java 架构 高并发 流量

flutter系列之:Navigator的高级用法

程序那些事

flutter 架构 大前端 程序那些事

OpenHarmony应用集成AGC云存储

白晓明

云存储 DevEco Studio 端云协同 OpenHarmony应用开发 AppGallery Connect

社区1月月报|OceanBase 4.1 即将发版,哪些功能将会更新?

OceanBase 数据库

数据库 oceanbase

NFT碎片化股权分割众筹dapp系统开发合约定制

开发微hkkf5566

从银行数字化转型来聊一聊,火山引擎VeDI旗下ByteHouse的应用场景

字节跳动数据平台

大数据 Clickhouse 数据平台 企业号 2 月 PK 榜

软件测试/测试开发 | 黑盒测试方法论-判定表

测试人

软件测试 测试开发 测试用例 黑盒测试

Portraiture4.0简体中文版本磨皮插件

茶色酒

Portraiture4.0

软件测试/测试开发 | Bug定位方法

测试人

软件测试 自动化测试 测试开发 bug定位

全民开发者时代到来!华为云开发者日深圳站成功举办

华为云开发者联盟

云计算 华为云 ChatGPT 企业号 2 月 PK 榜 华为云开发者联盟

这些数据可视化工具必备

2D3D前端可视化开发

数据可视化 数据可视化工具 可视化大屏 可视化图表 sovitchart

BPMN2.0是什么?它能解决企业流程管理中哪些问题?

优秀

BPMN

hive etl 通过 ETL 导出 Hive 中的数据

weigeonlyyou

hadoop hive Hive SQL hadoo Kafka ETL

不到3天,省下近10万,低代码是真给老板省钱啊!

引迈信息

前端 敏捷开发 低代码

软件测试/测试开发 | 白盒测试方法论

测试人

软件测试 测试开发 白盒测试

软件测试 | 代码覆盖率集成

测吧(北京)科技有限公司

测试

如何将BI 工具与业务系统进行单点登录对接,实现用户权限通用

葡萄城技术团队

CleanMyMac4.20免费版下载

茶色酒

CleanMyMac4.20

IoT 存量设备 零改造,泛化SDK实现整体业务迁移上云——实践类

阿里云AIoT

前端开发 物联网 开发工具 传感器 测试技术

软件测试/测试开发 | 常用测试策略与测试手段

测试人

软件测试 自动化测试 测试方法

软件测试/测试开发 | 什么是软件缺陷

测试人

软件测试 自动化测试 测试开发

为什么负责任的技术始于数据治理

葡萄城技术团队

CleanMyMacX4.20完美试用版功能介绍

茶色酒

CleanMyMacX4.20

【iOS逆向与安全】使用ollvm混淆你的源码

小陈

ios开发 逆向 iOS逆向 ios安全 逆向技术

低代码开发平台 助力教育行业信息化建设

力软低代码开发平台

观测云产品更新|新增用户访问监测自动化追踪;新增 CDN 质量分析;新增自定义查看器导航菜单等

观测云

运维 云服务 可观测 观测云 可观测性用观测云

ChatGPT为什么在一夜之间爆火?| 社区征文

三掌柜

人工智能 openai ChatGPT

加快发展先进制造业势在必行!

加入高科技仿生人

低代码 数字化转型 制造业 先进制造 数字转型

Studio One6绿色版音乐创作编辑软件

茶色酒

Studio One6

可伸缩系统的设计模式_架构_Jean-Jacques Dubray_InfoQ精选文章