`

Scalable System Design Patterns(转)

 
阅读更多
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。
分享到:
评论

相关推荐

    Go_Design+Patterns+for+Real-World+Projects-Packt+Publishing(2017).pdf

    complex and scalable system applications. Go offers a direct and practical approach to programming that lets programmers write correct and predictable code using concurrency idioms and a full-...

    Reactive Design Patterns

    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 ...

    Mastering Python Design Patterns 2nd Edition

    design patterns, which are used to solve everyday problems, and take your skills to the next level with reactive and functional patterns that help you build resilient, scalable, and robust ...

    Addison.Wesley.Real-Time Design Patterns.chm

    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 ...

    Go: Design Patterns for Real-World Projects

    The Go programming language has firmly established itself as a favorite for building complex and scalable system applications. Go offers a direct and practical approach to programming that lets ...

    Quality Code: Software Testing Principles, Practices, and Patterns

    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

    Designing+Distributed+Systems_+Patterns+and+Paradigms+for+Scalable,+Reliable+Services

    JavaScript Functional Programming for JavaScript Developers (PDF, EPUB, MOBI)

    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....

    Software Architecture with Python-Packt Publishing(2017).epub

    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 ...

    RabbitMQ in Action

    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

    RabbitMQ In Action

    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

    RabbitMQ in action

    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

    Source Code Analytics With Roslyn and JavaScript Data Visualization(Apress,2016)

    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 ...

    Source.Code.Analytics.With.Roslyn.and.JavaScript.Data.Visualization

    This title will show readers how to use Roslyn along with industry standard JavaScript visualization APIs like HighCharts, D3.js etc to ...scalable and highly responsive source code analytics system....

    Learning C++ Functional Programming

    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 ...

    Large-Scale Software Architecture.pdf

    10.3.1 Scalable node design 194 10.3.2 Backup/archive design 199 10.4 Recommended Reading 199 11ArchitectureTechniques 201 11.1 Architecture Development Techniques 201 11.1.1 Commonality and ...

    Building Mciroservices with Go

    Understand the common idioms and common patterns in microservices architecture* Leverage tools and automation that helps microservices become horizontally scalable* Get a grounding in containerization...

    Cassandra 3.x High Availability(PACKT,2ed,2016)

    Apache Cassandra is a massively scalable, peer-to-peer database designed for 100 percent uptime, with deployments in the tens of thousands of nodes, all supporting petabytes of data. This book offers ...

Global site tag (gtag.js) - Google Analytics