在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

可伸缩系统的设计模式

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

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

关注

评论

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

go训练营第二周作业

spring-beans 注册 Beans(三) ConfigurationClassPostProcessor处理BeanDefinition流程

梦倚栏杆

模块5作业 微博评论高性能高可用计算架构

TH

架构实战营

抖音封禁大量“卖惨带货”账号:应该严打恰烂钱的自媒体

石头IT视角

kubelet之volume manager源码分析

良凯尔

Kubernetes 源码分析 kubelet Ceph CSI

模块五 作业

薛定谔的指南针

架构实战营

【Vue2.x 源码学习】第六篇 - 数据代理的实现

Brave

源码 vue2 6月日更

spring-beans 注册Beans(一) 之问题场景复现

梦倚栏杆

【架构实战营】第 5 模块作业

swordman

架构实战营

微博评论缓存架构设计

俞嘉彬

架构实战营

# 架构实战营-作业5

大可

架构实战营 模块五课后作业

iProcess

架构实战营

设计微博系统中”微博评论“的高性能高可用计算架构

贯通

#架构实战营

模块5-”微博评论“的高性能高可用计算架构

小遵

架构训练营模块五作业

Geek_e0c25c

架构训练营 架构实战营

git stash误使用drop删掉本地保存,恢复代码一次记录

良知犹存

git

架构实战营模块五作业

冷大大

作业 架构实战营 模块五

从水晶宫到甲秀楼:在数博会读懂智慧城市的“大工业时代”

脑极体

运动居然成了我的奢侈品?

悟空聊架构

程序员 程序人生 运动 6月日更

Proxy 对象简介

编程三昧

JavaScript 大前端 ES6 Proxy

架构模块5作业

高亮

架构训练营

限流算法, 以 Golang 方式

hedzr

ratelimiter Go 语言 gin gin-middleware rate-limit

”微博评论“的高性能高可用计算架构

chenmin

开源的 OpenHarmony 是每个人的 OpenHarmony

开放原子开源基金会

spring-beans 注册 Beans(二) springboot启动流程

梦倚栏杆

【译】编写整洁 React 组件的简单小技巧

KooFE

大前端 React 6月日更 整洁代码

MySQL基础之四:排序、分组

打工人!

MySQL 6月日更

架构训练营——模块五作业——微博评论

开拓纪

架构训练营 模块五 微博评论

架构实战营模块6作业

En wei

架构实战营

新手模拟实现call和apply

前端树洞

大前端 js this JavaScrip

用Docker的方式编译OpenVINO

IT蜗壳-Tango

6月日更

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