您的位置:首页 > 其它

8个常用于可扩展系统的设计模式

2011-03-14 10:27 316 查看
1,负载均衡 – 把一个请求按一定hash算法或规则分配到服务器组中的一台去处理,以分担单个服务器的压力。这一般多见于大型网站的构架。




2,分头收集(Scatter and Gather) – 把一个请求分解成好几个服务请求分发到多个server上,每个server处理后返回的结果会被合并成一个返回结果给请求端。 常见于搜索引擎如google,百度,搜狗,对一个关键词的搜索结果是由多台server处理并合并成一个搜索结果页。


3,结果缓存 – 服务器缓存某个请求的结果,下次对同样的请求只返回缓存的结果就ok了,而避免下次同样的请求进来时去做重复的计算。Memcached就是做这个用的。




4,空间共享 – 分布式计算常用的模式,所有的数据、对象都放在一个共享虚拟空间,所有的计算进程共享并控制这些数据。





5,管道过滤
– 所有的请求都先进入某个管道,然后以先进先出的方式接受处理和返回结果。有点似曾经写的投票,推荐这样的应用时的处理方式。




6,MapReduce – 在处理批量任务时,如果磁盘I / O是主要瓶颈,则一般采取这种模式。它的使用分布式的文件系统,从而使多个I/O操作能够并行。这种模式在谷歌的内部应用程序中使用的较多,开源的Hadoop就是个典型案例




7,批量同步并行 – 该模式下的所有任务是基于锁步执行,由Master来协调。每个任务重复以下步骤,直到再没有活跃的任务。
每个任务从输入队列中读取数据
每个任务根据自己读取到的数据进行处理
每个任务将自己的处理结果直接返回





8,Execution Orchestrator - 该模型是基于一个智能调度的任务分配,还没太弄明白。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: