可伸缩的系统设计模式

原文:http://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html
原文转载:http://blog.csdn.net/rao_warrior/article/details/8232153

回头看看自己在两年半前发表的可伸缩的系统设计模式技术时,我已总结一些常用且公用的设计模式,在此,我想把它记录与分享出来。

负载均衡

在这种模式里,有一个分发器,它决定在不同的策略下,哪一个服务器实体会处理客户端的请求。应用程度应该是无状态的,所以任务服务器实体(worker)都能处理客户端发过来的请求 这种模式几乎在中型到大型的网站的部署中都是可以看到的 可伸缩的系统设计模式_第1张图片

分发与集合模式

在这种模式里,分发器将请求多播到所有的 worker pool ,每个worker 将在本地计算出结果后,再发送给分发器,分发器再收集所有work的计算结果,然后再将其整合成一个应答,发送给客户端。 这种模式被用在搜索引擎,比如 Yahoo,Google 处理用户关键字搜索请求等  可伸缩的系统设计模式_第2张图片  

结果集缓存模式

这种模式中,当分发器收到请求时,分发器将首先在cache中查看同请求是否已经被应答了,并尝试着找到先前的请求结果集返回给客户端,这样是为了节约实际的执行时间。 这种模式在大型的企业应用中,使用得非常普遍。服务器缓存方式是个非常常用的服务器部署模型    可伸缩的系统设计模式_第3张图片  

共享空间

这种模型也叫“黑板模型”,所有的workers 监视共享空间里面的信息,并且贡献自己部分的信息给黑板区,共享空间里的信息不断的扩充,至到找到解决问题的方案为止。 这种模式被用于 JavaSpace 和商业产品GigaSpace

可伸缩的系统设计模式_第4张图片



你可能感兴趣的:(可伸缩的系统设计模式)