http://www.kafka0102.com/2010/10/350.html
Scalable System Design Patterns 一文概括了几种常见的系统设计模式。配图很漂亮,我就索性摘过来,推荐感兴趣的继续围观其博客。
1、Load Balancer
该模式中,一个分发器基于某种策略确定由哪个worker实例处理请求。应用最好是无状态的,以使任何一个worker实例都能同等处理请求。大量的网站都会用到负载均衡器这个模式的
2、Scatter and Gather
该模式中,分发器将请求转发给多个worker实例,每个worker实例处理完返回给分发器,分发器将worker们返回的结果再加工后再返回给客户端。以搜索为例,通常得AS、BS架构就是这种典型模式。
3、Result Cache
承接上个模式,这个模式只是在分发器处理时加了一步查询结果缓存,这都能算是模式!
4、Shared Space
这个模式还有个更广泛的名字–“黑板模式”。实现来说,就是在处理流程中,存在一个全局传递的对象,它可能包含了请求参数、中间状态、响应结果等各种信息,供流程中的各个组件对其进行操作。在一些web框架和应用框架中,都可见这个模式的使用。
5、Pipe and Filter
这个模式又以“面向数据流编程”知名,是很通用的企业集成模式。
6、Map Reduce
因为google和hadoop,这个模式几乎都了解些,尽管多数人都没亲身应用过。
7、Bulk Synchronous Parellel
该模型基于一个master协调,所有的worker同步(lock-step)执行。
该模式被用于Google Pregel Graph Processing google-pregel-graph-processing 和Hama。
8、Execution Orchestrator
又一个不很了解的模式,似乎是一个和map reduce有一拼的分布式计算模型,似乎是微软的创造:Microsoft’s Dryad project。
分享到:
相关推荐
Segregation data pattern., Reactive Design Patterns is a clearly-written guide for building event-driven distributed systems that are resilient, responsive, and scalable. In it, you'll find patterns ...
Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems By Bruce Powel Douglass Publisher : Addison Wesley Pub Date : September 27, 2002 ISBN : 0-201-69956-7 Pages : 528 ...
Using real-world code examples, this guide introduces patterns, principles, and more than two dozen detailed techniques for testing any software system more fully, effectively, and painlessly....
Designing+Distributed+Systems_+Patterns+and+Paradigms+for+Scalable,+Reliable+Services
This course will begin with providing insights and practical tips on advanced JavaScript features to build highly scalable web and mobile system and move on to some design patterns with JavaScript....
Applying these design patterns in your Object-Oriented Analysis and Design process helps improve code reusability, maintainability, and flexibility, ultimately leading to more robust and scalable ...
Chapter 7, Design Patterns in Python, gives you an overview of design patterns in Python from a pragmatic programmer's perspective, with brief theorotical background of each pattern. You will gain ...
DESCRIPTION There's a virtual switchboard at the heart of most large ... KEY POINTS * First and only complete guide to RabbitMQ * Packed with real-world examples * Covers common messaging design patterns
DESCRIPTION There's a virtual switchboard at the heart of most large ... KEY POINTS * First and only complete guide to RabbitMQ * Packed with real-world examples * Covers common messaging design patterns
DESCRIPTION There's a virtual switchboard at the heart of most large ... KEY POINTS * First and only complete guide to RabbitMQ * Packed with real-world examples * Covers common messaging design patterns
Code mining techniques to identify design patterns used in source code Code forensics techniques to identify probable author of a given source code Techniques to identify duplicate/near duplicate ...
6. **报表和统计分析**: The system should generate reports and conduct statistical analysis to help managers understand usage patterns, identify trends, and make informed decisions regarding vehicle ...
Structure code using design patterns to make the design process easier Use concurrency techniques to develop responsive software Learn how to use the C++ Standard Template Library and metaprogramming ...
The online cloud storage system, designed based on Django, employs Python programming language patterns and the Django framework. This choice is due to Python's versatility, readability, and vast ...