在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近几天一直在读代震军的博客,他是Discuz!NT的设计者,读了他的一系列关于Discuz!NT的架构设计文章,大呼过瘾,特别是Discuz!NT在解决高访问高并发时所设计的一系列方案,本人尤其感兴趣。写这篇文章的目的,算是对初次阅读之后的总结备忘吧,以便以后有时间亲自测试,如果能在生产环境中得到应用,那就更有参考价值了。 测试方法: 当DiscuzNT遇上了Loadrunner(上) 当DiscuzNT遇上了Loadrunner(中) 当DiscuzNT遇上了Loadrunner(下)
Discuz!NT是一个论坛程序,是典型的互联网应用,在设计时本身就考虑了互联网应用场景下高并发高访问量的需求,在普通开源版本中,主要采用的缓存机制来提高系统的性能。 一、缓解数据库读取压力
相关文章如下: 这个缓存机制使用的是.Net本身提供的缓存功能,System.Web.Caching.Cache
Discuz!NT中集成Memcached分布式缓存
在Discuz!NT中进行缓存分层(本地缓存+memcached)
Discuz!NT中的Redis架构设计 http://www.cnblogs.com/daizhj/archive/2011/02/21/1959511.html
http://www.cnblogs.com/daizhj/archive/2010/06/18/discuznt_memcache_syncdata.html
http://www.cnblogs.com/daizhj/archive/2011/08/26/discuznt_llserver_arch.html
Memcached深度分析 通过以上的方案,能解决大部分高访问高并发的需求,因为论坛产品的特殊性,读写比大概是4:1,所以首先应该在读数据方面进行减压优化。
二、缓解Web服务器压力
Discuz!NT在缓解Web服务器压力上采用了如下的方案。
Discuz!NT中远程附件的功能实现[FTP协议] http://www.cnblogs.com/daizhj/archive/2008/07/28/1254648.html
Discuz!NT静态文件缓存(SQUID)解决方案
通过以上的方案,Web服务器压力小了,性能也提升了,但是如果遇到更高的并发访问量,单台Web服务器还是不能满足需求,Discuz!NT采取了负载均衡的方案。使用了LVS+KEEPALIVED、NGINX等。相关文章如下:
Discuz!NT负载均衡解决方案(HA)之---LVS(Linux Virtual Server)
Discuz!NT负载均衡解决方案(HA)之---LVS(Linux Virtual Server) http://www.cnblogs.com/daizhj/archive/2010/06/13/1693673.html
http://www.cnblogs.com/daizhj/archive/2010/06/24/1667422.html
使用的是nginx,使用nginx作为前端负载均衡,这个确实很有吸引力,有时间能试用下就好。
http://www.cnblogs.com/daizhj/archive/2010/06/21/dbsnap_master_slave_database.html 全文搜索方案: http://www.cnblogs.com/daizhj/archive/2010/06/28/discuznt_entlib_sphinx_one.html
http://www.cnblogs.com/daizhj/archive/2010/06/30/discuznt_entlib_sphinx_two.html
处理大数据量: Discuz!NT千万级数据量上的两驾马车--TokyoCabinet,MongoDB http://www.cnblogs.com/daizhj/archive/2010/07/22/1781140.html
好了,上面就是Discuz!NT企业版为了提升性能采取的一系列方案,确实对asp.NET互联网应用很有参考价值,其中用到的很多开源产品都是基于Linux的,如Memcached、Redis、LLServer、SQUID、NGINX、LVS、Sphinx,虽然有些产品有Windows版本,但是其性能表现能力远远比不上Linux上面,看来在Web应用上,性能方面的表现以及开源产品的研究,Linux远远的走在了Windows前面。 |
请发表评论