写点什么

可伸缩系统的设计模式

  • 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:235215
用户头像

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

关注

评论

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

读书笔记:《Remote》

lidaobing

28天写作 Remote

CSS13 - 定位

Mr.Cactus

html/css

用Rust写点啥:数据结构篇——单向链表

Kurtis Moxley

数据结构 rust

调查bug的手段有哪些?(没有调查,就没有发言权,二)Jan 13, 2021

王泰

28天写作

夜莺二次开发指南-资产设备管理

ning

滴滴夜莺 夜莺监控

夜莺二次开发指南-任务执行中心

ning

滴滴夜莺 夜莺监控

夜莺二次开发指南-监控系统(3)

ning

滴滴夜莺 夜莺监控

微信视频号常见问题 | 视频号 28 天 (06)

赵新龙

28天写作

知乎问答:“既然生命无意义,为什么要活着?”

三只猫

28天写作

低代码开发技术

Sam678678

如何让开发人员接受DevSecOps

啸天

DevOps 开发者 DevSecOps 升职加薪 应用安全

一文带你快速入门Canal,看这篇就够了!

大数据老哥

大数据 实时数仓 canal

【Mysql-InnoDB 系列】关于一致读

程序员架构进阶

MySQL 架构 innodb 28天写作

HDFS SHELL详解(6)

罗小龙

hadoop 28天写作 hdfs shell

外行话之不玩游戏,怎么做好游戏?

Justin

游戏 28天写作 外行话

读《百度不需要用户》,我似乎懂得了领导者的无奈

李忠良

AI 企业

28天瞎写的第二百一六天:LumaQQ 和 luma 二三事

树上

28天写作

与前端训练营的日子 --Week11

SamGo

学习

每个人都拥有这项神技能

熊斌

职场成长 28天写作

Deno 双周刊 #1 - Deno 获 2020 JS 开源年度突破奖

hylerrix

typescript deno Node 周刊 V8

聚焦目标,团队工作不再一盘散沙(上)

一笑

管理 敏捷 目标管理 28天写作

一文学会Java死锁和CPU 100% 问题的排查技巧

AI乔治

Java 架构 死锁 cpu 100%

僵尸进程的成因以及僵尸可以被“杀死”吗?

AI乔治

Java 架构 进程

大型企业引进低代码开发技术是大趋势

Sam678678

时间之外的颜色「幻想短篇 5/28」

道伟

28天写作

夜莺二次开发指南-用户资源中心

ning

滴滴夜莺 夜莺监控

项目管理系列(1)-如何开好一个周会

Ian哥

项目管理 28天写作

okhttp3 第一次使用

我就感觉到快

一次慢查询暴露的隐蔽的问题

AI乔治

Java sql 架构 SQL优化

JFR定位线上问题实例 - JFR导致的雪崩问题定位与解决

AI乔治

Java 架构 线程

【PS】给黑白照片上色

德育处主任

PhotoShop ps 28天写作

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