超越分析国内典型的服务器架构

国内典型的服务器架构:
--------------------
***前端nginx/tengine(tengine.taobao.org)
   反向代理和应用层的负载均衡(网站的模块如:bbs)、地址重写等
***缓存varnish
   它是在nginx与apache之间的缓存服务
   当请求时,如果有缓存则通过varnish直接返回数据,没有时则转给apache->tomcat->mysql再返回数据
***后端apache->tomcat->mysql


***memcached/redis用于减轻数据库IO的缓存服务


***keep-alive:网络连接没有断开,但没有数据传输的状态叫keep-alive


***nginx的keep-alive:10,000个keep-alive连接只用2.5M的内存


***nginx特性
  1)高并发连接
     官方测试nginx能够支撑5万并发连接,实际测试可以达到3万左右,按照这样计算,每天可以处理上亿次访问量,采用最新epoll(linux2.6内核)和kqueue(freebsd)网络I/O模型,而apache则使用的是传统的select模型
  2)内存消耗小
     nginx+PHP(FastCGI)服务器在3万并发连接下,开启10个nginx进程消耗150MB内存(15MB*10),开启64个php-cgi进程消耗128MB内存(20MB*64),使用Webbench做压力测试,在3万并发量下速度依然很快。
tmpfs--用df -h查看


***并发连接:apache3000左右,nginx30000左右,并发量nginx是apache的10倍左右。
原因是用的I/O方式不同,apache用的是select模型(阻塞IO),nginx用的是epoll模型(多路复用IO)


***切换主机:ssh 192.168.0.254
***200为第一回请求,302:为从缓存返回的请求


***对于视频文件下载的限制,缓存10M的视频:前10M不限速,后面限速

你可能感兴趣的:(java,服务器,架构)