http://www.kafka0102.com/2010/10/350.html
[url=http://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html]Scalable System Design Patterns[/url] 一文概括了几种常见的系统设计模式。配图很漂亮,我就索性摘过来,推荐感兴趣的继续围观其博客。
[b]1、Load Balancer[/b]
该模式中,一个分发器基于某种策略确定由哪个worker实例处理请求。应用最好是无状态的,以使任何一个worker实例都能同等处理请求。大量的网站都会用到负载均衡器这个模式的
[img]http://www.kafka0102.com/wp-content/uploads/2010/10/p1.png[/img]
[b]2、Scatter and Gather[/b]
该模式中,分发器将请求转发给多个worker实例,每个worker实例处理完返回给分发器,分发器将worker们返回的结果再加工后再返回给客户端。以搜索为例,通常得AS、BS架构就是这种典型模式。
[img]http://www.kafka0102.com/wp-content/uploads/2010/10/P2.png[/img]
[b]3、Result Cache[/b]
承接上个模式,这个模式只是在分发器处理时加了一步查询结果缓存,这都能算是模式!
[img]http://www.kafka0102.com/wp-content/uploads/2010/10/P3.png[/img]
[b]4、Shared Space[/b]
这个模式还有个更广泛的名字–“黑板模式”。实现来说,就是在处理流程中,存在一个全局传递的对象,它可能包含了请求参数、中间状态、响应结果等各种信息,供流程中的各个组件对其进行操作。在一些web框架和应用框架中,都可见这个模式的使用。
[img]http://www.kafka0102.com/wp-content/uploads/2010/10/P4.png[/img]
[b]5、Pipe and Filter[/b]
这个模式又以“面向数据流编程”知名,是很通用的企业集成模式。
[img]http://www.kafka0102.com/wp-content/uploads/2010/10/P5.png[/img]
[b]6、Map Reduce[/b]
因为google和hadoop,这个模式几乎都了解些,尽管多数人都没亲身应用过。
[img]http://www.kafka0102.com/wp-content/uploads/2010/10/P7.png[/img]
[b]7、Bulk Synchronous Parellel[/b]
该模型基于一个master协调,所有的worker同步(lock-step)执行。
该模式被用于Google Pregel Graph Processing google-pregel-graph-processing 和Hama。
[img]http://www.kafka0102.com/wp-content/uploads/2010/10/P8.png[/img]
[b]8、Execution Orchestrator
[/b]
又一个不很了解的模式,似乎是一个和map reduce有一拼的分布式计算模型,似乎是微软的创造:Microsoft’s Dryad project。
[img]http://www.kafka0102.com/wp-content/uploads/2010/10/P82.png[/img]
[url=http://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html]Scalable System Design Patterns[/url] 一文概括了几种常见的系统设计模式。配图很漂亮,我就索性摘过来,推荐感兴趣的继续围观其博客。
[b]1、Load Balancer[/b]
该模式中,一个分发器基于某种策略确定由哪个worker实例处理请求。应用最好是无状态的,以使任何一个worker实例都能同等处理请求。大量的网站都会用到负载均衡器这个模式的
[img]http://www.kafka0102.com/wp-content/uploads/2010/10/p1.png[/img]
[b]2、Scatter and Gather[/b]
该模式中,分发器将请求转发给多个worker实例,每个worker实例处理完返回给分发器,分发器将worker们返回的结果再加工后再返回给客户端。以搜索为例,通常得AS、BS架构就是这种典型模式。
[img]http://www.kafka0102.com/wp-content/uploads/2010/10/P2.png[/img]
[b]3、Result Cache[/b]
承接上个模式,这个模式只是在分发器处理时加了一步查询结果缓存,这都能算是模式!
[img]http://www.kafka0102.com/wp-content/uploads/2010/10/P3.png[/img]
[b]4、Shared Space[/b]
这个模式还有个更广泛的名字–“黑板模式”。实现来说,就是在处理流程中,存在一个全局传递的对象,它可能包含了请求参数、中间状态、响应结果等各种信息,供流程中的各个组件对其进行操作。在一些web框架和应用框架中,都可见这个模式的使用。
[img]http://www.kafka0102.com/wp-content/uploads/2010/10/P4.png[/img]
[b]5、Pipe and Filter[/b]
这个模式又以“面向数据流编程”知名,是很通用的企业集成模式。
[img]http://www.kafka0102.com/wp-content/uploads/2010/10/P5.png[/img]
[b]6、Map Reduce[/b]
因为google和hadoop,这个模式几乎都了解些,尽管多数人都没亲身应用过。
[img]http://www.kafka0102.com/wp-content/uploads/2010/10/P7.png[/img]
[b]7、Bulk Synchronous Parellel[/b]
该模型基于一个master协调,所有的worker同步(lock-step)执行。
该模式被用于Google Pregel Graph Processing google-pregel-graph-processing 和Hama。
[img]http://www.kafka0102.com/wp-content/uploads/2010/10/P8.png[/img]
[b]8、Execution Orchestrator
[/b]
又一个不很了解的模式,似乎是一个和map reduce有一拼的分布式计算模型,似乎是微软的创造:Microsoft’s Dryad project。
[img]http://www.kafka0102.com/wp-content/uploads/2010/10/P82.png[/img]