之前总结过一篇web架构,这里再把架构图贴一下:
那么如何从集群的角度去提高系统的吞吐能力呢?
我这里主要从两种方式上去总结。
一、通过DNS(轮询) + Nginx集群 + 应用服务器集群 + DB集群
使用这种集群架构,当api或nginx压力大的时候,可以直接横向扩机器即可。
但是通过轮询机制只适合局域网对内服务的web项目,当一个对外服务的产品,比如淘宝,京东,当当等网站,就不仅仅使用轮询了。比如节点很多的时候,可能节点是遍布到世界各地的,假设上海一个用户的请求,恰好轮询到一台美国的节点上,那单单请求从上海到美国的时间可能就要花费几百毫秒,一个来回可能接近一秒了,再加上服务器本身的处理时间,就很慢了。
所以,还需要CDN。就近访问。
二、 参考open-falcon,zabbix
open-falcon的设计值得去参考下,即由哪些客户端访问哪些transfer是指定好的