Ricky Ho在他的博客中分享了该文章,该文章是一个简单的概括分享,详细的可以参见他博客的其它详细文章。下面主要是意译。

1、Load Balancer:负载均衡 – 由分发者来决定哪个工作者处理下一个请求,这种决定可以基于不同的策略。

“In this model, there is a dispatcher that determines which worker instance will handle the request based on different policies. The application should best be "stateless" so any worker instance can handle the request.

This pattern is deployed in almost every medium to large web site setup.”

该模式中,由分发器来决定哪个工作者来处理请求。应用最好是无状态的,以使任何一个工作者都能同等处理请求。几乎所有的中大型网站都应用了负载均衡器这个模式。

2、Scatter and Gather:分散和聚合 – 分发者将请求广播到处理池当中的所有工作者。每一个工作者单独计算其中一部分并将结果返回给分发者,由分发者来汇总所有的计算结果并返回。

”In this model, the dispatcher multicast the request to all workers of the pool. Each worker will compute a local result and send it back to the dispatcher, who will consolidate them into a single response and then send back to the client.

This pattern is used in Search engines like Yahoo, Google to handle user's keyword search request ... etc.“

该模式中,分发者将请求转发给池中的所有工作者,每个工作者处理请求的一部分并返回给分发器,分发器工作者返回的结果加工组合为一个响应返回给客户端。该模式在搜索引擎中使用处理用户的关键字,如Yahoo、Google。

3、Result Cache:结果缓存 – 分发者会首先检查这个请求之前是否有处理过,并试图找出之前的处理结果并返回,以便节省处理时间。

“In this model, the dispatcher will first lookup if the request has been made before and try to find the previous result to return, in order to save the actual execution.

This pattern is commonly used in large enterprise application. Memcached is a very commonly deployed cache server.”

该模式,只是在分发器处理时加了一步查询结果缓存(译注:类似浏览器缓存),如果之前已经处理过并且可以使用之前的缓存,就返回之前的处理结果节省处理时间!该模式通常使用在大型企业应用。Memcached就是一个常用的cache服务器。

4、Shared Space:共享空间 – 所有的工作者都关注一块共享区域内的信息,并且都向这块区域提交自己的部分知识、信息。信息不断被完善,直到问题可以被解决为止。

“This model also known as "Blackboard"; all workers monitors information from the shared space and contributes partial knowledge back to the blackboard. The information is continuously enriched until a solution is reached.

This pattern is used in JavaSpace and also commercial product GigaSpace.”

这个模式也叫“黑板模式”。就是在处理流程中,存在一个全局传递的对象,它可能包含了请求参数、中间状态、响应结果等各种信息,供流程中的各个组件对其进行操作。该模式在JavaSpace(译注:JavaSpaces技术是进行分布式计算的一种简单机制)和GigaSpace(译注:是一个虚拟化的中间件层)中都有使用。

5、Pipe and Filter:管道和过滤器 – 所有的工作者按照数据处理的流程被串行连接起来。

“This model is also known as "Data Flow Programming"; all workers connected by pipes where data is flow across.

This pattern is a very common EAI pattern.”

这个模式也叫“面向数据流编程”,是很通用的企业集成模式。

6、Map Reduce:专门用于磁盘IO为瓶颈的批处理作业。使用分布式的文件系统使得文件能够被并行处理。

“The model is targeting batch jobs where disk I/O is the major bottleneck. It use a distributed file system so that disk I/O can be done in parallel.

This pattern is used in many of Google's internal application, as well as implemented in open source Hadoop parallel processing framework. I also find this pattern can be used in many many application design scenarios.”

这个模式使用分布式文件系统,这样磁盘可以并行I/O。Google内部许多应用程序使用了这个模式。Hadoop就是基于MapReduce的一个实现。

7、Bulk Synchronous Parellel:批量同步并行 – 所有工作者一个接一个的执行,由主控来进行协调。

“This model is based on lock-step execution across all workers, coordinated by a master. Each worker repeat the following steps until the exit condition is reached, when there is no more active workers.

1)Each worker read data from input queue

2)Each worker perform local processing based on the read data

3)Each worker push local result along its direct connection

This pattern has been used in Google's Pregel graph processing model as well as the Apache Hama project.”

该模型基于一个master协调,所有的worker同步(lock-step)执行。

该模式被用于Google Pregel Graph Processing google-pregel-graph-processing和Hama。

8、Execution Orchestrator:执行集中管理 – 一个智能的调度者在一群简单的工作者上调配已经准备好运行的任务(基于依赖图)

“This model is based on an intelligent scheduler / orchestrator to schedule ready-to-run tasks (based on a dependency graph) across a clusters of dumb workers.

This pattern is used in Microsoft's Dryad project”

该模式基于一个智能调度者/管理者在一群工作者之间调配可运行任务。该模式在微软的:Microsoft’s Dryad project中使用。

【原文】Scalable System Design Patterns

作者:吴秦
出处:http://www.cnblogs.com/skynet/

本文转自永远的朋友博客51CTO博客,原文链接http://blog.51cto.com/yaocoder/1229797如需转载请自行联系原作者

yaocoder

可伸缩系统的设计模式(译)相关推荐

  1. [转]可伸缩系统的架构经验

    最近,阅读了Will Larson的文章Introduction to Architecting System for Scale,感觉很有价值.作者分享了他在Yahoo!与Digg收获的设计可伸缩系 ...

  2. 消息提醒系统:设计模式与实现方案 (公告(通告)、消息、提醒等基本功能数据库表设计与实现)

    参考地址: 公告(通告),消息,提醒等基本功能数据库表设计_DamonREN的博客-CSDN博客 多种消息提醒系统的设计模式.实现方案(附功能截图+表结构)_黑夜的风的博客-CSDN博客_消息提醒 设 ...

  3. 架构师之路 — 软件架构 — 系统架构设计模式

    目录 文章目录 目录 系统架构设计模式(System Architecture Patterns) 单体架构 分布式架构 微服务架构 Serverless 架构 系统架构设计模式(System Arc ...

  4. 机房收费系统=三层+设计模式

    在简单的三层登陆完成之后,我又在其中加入了设计模式,其中包括抽象工厂+反射和外观模式.关于设计模式,在学习三层之前我们已经系统的学习过,可是在这次往机房收费系统中加设计模式时,还是感觉无从下手,出现了 ...

  5. 点餐系统(设计模式)

    同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,结合设计模式(2种以上)至少实现系统的以下功能: 正常餐品结算和找零. 基本套餐结算和找零. 使用优惠劵 ...

  6. 【软件架构】支持大规模系统的设计模式和原则

    今天,即使是小型初创公司也可能不得不处理数 TB 的数据或构建支持每分钟(甚至一秒钟!)数十万个事件的服务.所谓"规模",通常是指系统应在短时间内处理的大量请求/数据/事件. 尝试 ...

  7. Java实现模拟KFC点餐系统(设计模式)

    同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结 ...

  8. 3种双集群系统方案设计模式详解

    当前社会.企业运行当中,大数据分析.数据仓库平台已逐渐成为生产.生活的重要地位,不再是一个附属的可有可无的分析系统,外部监控要求.企业内部服务,涌现大批要求7*24小时在线的应用,逐步出现不同等级要求 ...

  9. 多种消息提醒系统的设计模式、实现方案(附功能截图+表结构)

    网站需要增加3种消息提醒系统.需要实现的功能如下: 1.评论提醒. 实现功能 他人回复自己后,右上角自动提醒"未阅读的新消息"的数量. 点击后,清空新消息的提示. 思路 这个是最简 ...

最新文章

  1. 2017阿里云TECH INSIGHT干货分享第六届隆重回归
  2. 你要的人工智能答案,在这里!
  3. VScode 乱装插件环境破坏踩坑自我反思总结
  4. 【深度学习的数学】卷积神经网络的搭建
  5. 文本分类入门(四)训练Part 1
  6. VTK:绘图之StackedPlot
  7. Form表单中的button导致页面刷新而无法进入Ajax请求回调函数
  8. @ResponseBody//该注解会将返回值转为json格式并放到响应体中返回到前台
  9. ICCV2021 Oral-TAUFacebook提出了通用的Attention模型可解释性
  10. Autofs实现文件系统的自动mount
  11. Solr安装及集成javaWeb
  12. 从零开始搭建一个K8S的环境
  13. 小程序转发功能(类似于美团红包转发功能)的简单实现
  14. mark:Kafka
  15. ajax鼠标悬停,mouseout后触发jQuery Ajax鼠标悬停事件
  16. 有n个人围成一圈 顺序排号 java_java有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出...
  17. 霸榜GitHubTrending的设计模式教程出纸质书啦
  18. SCCB协议与IIC协议的对比
  19. elementui table表格动态生成多级表头
  20. 算法工程师必须要知道的8种常用算法思想

热门文章

  1. 文件的记录c语言程序,计算机二级-C语言-程序填空题-190110记录-文件写入与文件读出显示...
  2. springboot 线程池_Spring boot 2 线程池怎么配置
  3. python目标检测与识别_Python 使用Opencv实现目标检测与识别的示例代码
  4. qt 单元格加上边框_Excel如何自动添加边框?学会这个方法效率加倍!
  5. mysql update 并发 慢_MySQL跑在CentOS 6 和 7上的性能比较
  6. windows 软件安装事件_苹果安装windows,报windows支持软件未能存储到所选驱动器
  7. 容器 root权限运行_【漏洞通告】Containerd容器逃逸漏洞通告 (CVE202015257)
  8. 实验4  数据的安全性管理
  9. signature=680da11b802226668317d65ae7c38eb7,encryption with designated verifiers
  10. 折线图表动画(历史进程效果)