【转载】:http://highscalability.com/blog/2011/11/7/10-core-architecture-pattern-variations-for-achieving-scalab.html
Srinath Perera has put together a strong list of architecture patterns
based on three meta patterns: distribution, caching, and asynchronous
processing. He contends these three are the primal patterns and the
following patterns are but different combinations:
-
LB (Load Balancers) + Shared nothing Units
. Units
that do not share anything with each other fronted with a load balancer
that routes incoming messages to a unit based on some criteria.
-
LB + Stateless Nodes + Scalable Storage
. Several stateless nodes talking to a scalable storage, and a load balancer distributes load among the nodes.
-
Peer to Peer Architectures (Distributed Hash Table (DHT) and Content Addressable Networks (CAN))
. Algorithm for scaling up logarithmically.
-
Distributed Queues
. Queue implementation (FIFO delivery) implemented as a network service.
-
Publish/Subscribe Paradigm
. Network publish subscribe brokers that route messages to each other.
-
Gossip and Nature-inspired Architectures
. Each node randomly pick and exchange information with follow nodes.
-
Map Reduce/ Data flows
. Scalable pattern to describe and execute Jobs.
-
Tree of responsibility
. Break the problem down recursively and assign to a tree, each parent node delegating work to children nodes.
-
Stream processing
. Process data streams, data that is keeps coming.
-
Scalable Storages
. Ranges from Databases, NoSQL storages, Service Registries, to File systems.