1. application, data, File Separation.
The application, database, files are deployed on separate servers, and different hardware is configured according to the purpose of the server to achieve the best performance Effect.
2. Improve website performance with Caching.
Most site visits follow the 28 principle that 80% of access requests end up on 20% of the data, so we can cache Hot-spot data, reduce access paths to hotspot data, and improve the user Experience. A common approach to cache implementations is local caching, distributed caching, CDN, and reverse Proxies.
Local cache: fast, Limited amount of space cache Data. Oscache
Distributed cache: can cache massive amounts of data, expand very easy, speed without local cache Fast. Memcached, Redis.
Reverse Proxy: request access to the reverse proxy server first, The reverse proxy server will first return the cached data to the user, no cached data will continue to access the application server Gets. This reduces the cost of acquiring Data. Squid, Nginx.
Cdn
3. Improve application server performance with cluster + load balancing
Application server as the portal of the site, will assume a large number of requests, we often through the application server cluster to share the number of Requests. The application server deploys the load Balancer server to dispatch user requests and distributes the requests to multiple application server nodes according to the distribution Policy.
4. Database Optimization
4.1 Reading and writing separation and sub-library with the increase of users, the database becomes the biggest bottleneck, improve database performance is commonly used to read and write separation and sub-library sub-table, read-write separation as the name implies is the database is divided into read and write libraries, through the main and standby functions to achieve data synchronization. The sub-database is divided into horizontal and vertical segmentation, and horizontal segmentation is the splitting of a large table, such as a user table. Vertical segmentation is divided according to the different business, such as user business, commodity business related tables placed in different Databases.
5. Business splitting of the application server
As the expansion of the business, the application becomes very bloated, then we need to the application of business split, such as Baidu divided into news, web pages, pictures and other Services. Each business application is responsible for a relatively independent business Operation. The business is implemented by communicating between messages or by sharing a database.
6. Using Distributed Systems
6.1 Distributed File system users increase day by day, the volume of business is increasing, the resulting file more and more, a single file server can not meet the demand, then need to support the Distributed file System. Common Distributed File systems are gfs, HDFS, and TFS.
Six architectural scenarios to optimize site performance