高性能/高并发 WEB SERVER 架构思路

       Web2.0的兴起,掀起了互联网新一轮的网络创业大潮,互联网不断扩大的规模,日益增长的用户群,对互联网网站建设提出了新的要求: 高性能和高可扩展性。

本文从网站架构层面介绍不同性能需求阶段,网络架构的演变和设计思考。

一、Nginx反向代理,实现负载均衡。

对于传统的低流量应用,基本够用,具有一定可扩展性。其中Nginx可以嵌套已经实现性能和服务扩展。

 

二,Varnish提升性能

为了方便画图,我只写了一个web,多数情况下都是多个web,其中增加了varnish对静态、动态资源进行缓存,以提高性能,大体可提供数倍的性能。Varnish也有反向代理的能力,但Nginx更优秀,所以建议采用两者配合的方式搭建架构。

 

三、缓存的使用以提升web性能

扫描二维码关注公众号,回复: 12464637 查看本文章

此处只是web服务本身性能提升,即图2中的web1服务,不涉及整体架构。架构设计中增加了缓存数据库,并不是每次访问都去数据库,从而大大提高效率,目前redis用的比较多,网上也很多对比资料,这里就不废话了。

四、消息中间件进一步提升web服务性能

ActiveMQ 是一个 MOM,具体来说是一个实现了 JMS 规范的系统间远程通信的消息代理。用于以分布式应用或系统中的异步、松耦合、可靠、可扩展和安全通信。这类的通讯组件很多,基本架构也大同小异,这里也不多说了,简单架构示意如下:

五、使用MongoDB

MongoDB 是一个基于分布式文件存储的数据库。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。应用后架构如下

六、应用MogileFS

MogileFS是一个开源的分布式文件存储系统,用来分担海量小文件的存取工作,架构如下:

 

七、总结

  1. 使用Ngnix做负载均衡,以应对高并发的访问
  2. 使用varnish和Memcached/redis来再不同层面做缓存,以提高性能
  3. 使用ActiveMQ来实现异步业务处理,来提高系统性能和可伸缩性。
  4. 使用MongoDB来支持海量数据处理,同时也提高系统可伸缩性。   
  5. 使用MogileFS来支持海量小文件的存储。

 

猜你喜欢

转载自blog.csdn.net/qq_33336155/article/details/90287954