Asp.net's high concurrency solution. asp.net's concurrency Solution
Asp.net solution for high concurrency. Posted on 75077027 read (3964) Comments (1) EDIT favorites
He has been reading the blog of Dai zhenjun for the past few days. He is Discuz! NT designers read a series of related Discuz! NT architecture design articles, especially Discuz! NT is particularly interested in a series of solutions designed to address high access and high concurrency. The purpose of writing this article is to give a summary after reading it for the first time, so that you can have time to test it in person in the future. If it can be applied in the production environment, it will be more valuable for reference.
Test method:
The high-access and high-concurrency testing tool used by the local simulated testing website is the well-known Loadrunner, which is generally known for testing. In the Dai zhenjun blog, the following articles describe how to use Loadrunner to perform stress concurrency testing.
When DiscuzNT meets Loadrunner (on)
Http://www.cnblogs.com/daizhj/archive/2009/09/25/1573926.html
When DiscuzNT encounters Loadrunner (medium)
Http://www.cnblogs.com/daizhj/archive/2009/09/27/1574897.html
When DiscuzNT meets Loadrunner (lower)
Http://www.cnblogs.com/daizhj/archive/2009/09/27/1575091.html
Discuz! NT is a forum program and a typical Internet application. In its design, it considers the high concurrency and high access traffic requirements in Internet application scenarios. In common open-source versions, the cache mechanism is mainly used to improve the system performance.
I. Ease the database read Pressure
Related Articles:
Discuz! Analysis of NT cache design [original]
Http://www.cnblogs.com/daizhj/archive/2007/08/15/855163.html
This Cache mechanism uses the Cache function provided by. Net, System. Web. Caching. Cache.
This solution can solve the demand for websites with low access traffic. higher levels of performance can be achieved by increasing the Web garden work process. In this solution, the problem of cache synchronization under multiple processes has been solved.
In Discuz! The NT Enterprise Edition provides a higher-level solution, uses a distributed cache mechanism, and introduces Memcached, Redis, and LLServer. The related articles are as follows:
Discuz! Integrating Memcached distributed cache in NT
Http://www.cnblogs.com/daizhj/archive/2009/03/23/1386652.html
In Discuz! Cache layering in NT (local cache + memcached)
Http://www.cnblogs.com/daizhj/archive/2009/11/17/1604436.html
Discuz! Redis Architecture Design in NT
Http://www.cnblogs.com/daizhj/archive/2011/02/21/1959511.html
Discuz! NT cross-site cache Synchronization
Http://www.cnblogs.com/daizhj/archive/2010/06/18/discuznt_memcache_syncdata.html
Discuz! Architecture Design of LLServer in NT
Http://www.cnblogs.com/daizhj/archive/2011/08/26/discuznt_llserver_arch.html
Memcached is a distributed memory object cache system developed by danga.com (technical team operating LiveJournal) to reduce database load and improve performance in dynamic systems. For details, refer:
Deep Memcached Analysis
Http://www.cnblogs.com/luluping/archive/2009/01/14/1375456.html
The above solution can solve most of the high access and high concurrency requirements. Due to the special nature of Forum products, the read/write ratio is about, so we should first conduct decompression and Optimization on reading data.
Ii. ease the pressure on Web Servers
Discuz! NT adopts the following solution to relieve the pressure on Web servers.
Discuz! Functions of remote attachment in NT [FTP protocol]
Http://www.cnblogs.com/daizhj/archive/2008/07/28/1254648.html
3. Use SQUID to distribute static File Cache
Use SQUID as a static front-end to deploy or link most of the static files in the Forum to a new HTTP link, thus reducing the stress on the Web server and improving performance.
Discuz! NT static File Cache (SQUID) Solution
Http://www.cnblogs.com/daizhj/archive/2010/06/10/1692758.html
Iii. Server Load balancer
Through the above scheme, the Web server is under little pressure, and the performance is also improved. However, if a single Web server still cannot meet the demand for higher concurrent access traffic, Discuz! NT adopts the load balancing solution. LVS + KEEPALIVED and NGINX are used. Related Articles:
Discuz! NT Load Balancing solution (HA) --- LVS (Linux Virtual Server)
Http://www.cnblogs.com/daizhj/archive/2010/06/13/1693673.html
Discuz! NT Load Balancing solution (HA) --- LVS (Linux Virtual Server)
Http://www.cnblogs.com/daizhj/archive/2010/06/13/1693673.html
Discuz! NT Load Balancing Solution
Http://www.cnblogs.com/daizhj/archive/2010/06/24/1667422.html
Nginx is used and nginx is used as the front-end Server Load balancer. This is indeed very attractive. It is good to try it out in time.
Iv. Ease database pressure
In Discuz! In NT, the database, as a data persistence tool, must become a 'bottleneck 'of system performance in the case of frequent concurrent access and heavy load '. Even if the above local cache is used to solve the problem of frequent database access, there will still be a large number of concurrent requests to access dynamic data, the 'read/Write detaching 'scheme is widely used. Related Articles:
Discuz! NT database read/write splitting Solution
Http://www.cnblogs.com/daizhj/archive/2010/06/21/dbsnap_master_slave_database.html
Full-text search solution:
Discuz! Full-text search of Sphinx for NT Enterprise Edition (I)
Http://www.cnblogs.com/daizhj/archive/2010/06/28/discuznt_entlib_sphinx_one.html
Discuz! Full-text search of Sphinx for NT Enterprise Edition (Part 2)
Http://www.cnblogs.com/daizhj/archive/2010/06/30/discuznt_entlib_sphinx_two.html
Processing large data volumes:
Discuz! TokyoCabinet, MongoDB
Http://www.cnblogs.com/daizhj/archive/2010/07/22/1781140.html
Okay, the above is Discuz! The NT Enterprise Edition provides a series of solutions to improve performance, which is of great reference value to asp.net Internet applications. Many open-source products used are based on Linux, for example, Memcached, Redis, LLServer, SQUID, NGINX, LVS, and Sphinx. Although some products have Windows versions, their performance is far inferior to that of Linux. In terms of Web applications, in terms of performance and open-source product research, Linux is far ahead of Windows.
Category:. NET