The characteristics of a large-scale website system have been described earlier, and the architecture of a large Web site system is also an important part.
The main challenges of large-scale web site technology are the three aspects of large users, high concurrency, and massive data. The formation of a large web site is like a big tree growth, experienced long time to hone, finally leafy, service others.
Initial site architecture Structure
the initial site in view of the user volume, the number of visits, only need a server enough, applications, databases, files and all of its resources on a server is sufficient to meet the needs of this time, the site's architecture on a few simple components such as
Application and Data Service separation
With the development of the business requirements of the website, more and more users to access, at this time a server gradually can not meet the demand, data storage space appears barrier. So the application, the database, the file three faces separates, each one assigns a server, the three servers to the hardware request picking, the application server handles the large amount of business logic, the demand faster and larger CPU; Database server processing of the database requires fast search and caching, requiring greater memory Ability to read and write hard drives faster; File server requirements are placed in a large number of user resources, requiring greater disk space. The architectural components of the site at this time are displayed as
Using the cache
The structure of the website can be further improved to meet the development of the business, but with the popularity of the site increased, the further increase in user volume, access to data compared to the more frequent, the database pressure has risen sharply resulting in delays in site access, the user's performance experience has slipped, facing the site performance problems at this time, Web site architecture design needs to evolve again, given that website access also follows 28 laws, such as Sina Weibo, only users who log in frequently will tweet and see Weibo, and these users are only the tip of the iceberg for the total number of users. Since this phenomenon, the cache of this part of the data can not solve this phenomenon? The site cache can be divided into local cache and distributed cache two, the difference is that the local cache speed is fast but limited by the server memory limit cache, and distributed cache using cluster processing, in theory, can avoid memory bottlenecks. At this point, the architectural components of the site
Application server cluster improves website concurrency
After using the cache, the database pressure is mitigated, but in the face of the site peak, the Application server processing a single request connection bottleneck, everything has a solution, just see you would like to think, willing to try to do, using clustering, cluster multiple application server distribution of the original application server, To achieve the scalability of the system, the site architecture evolved into such
Database read/write separation
Using the cache, although the majority of user requests for data operations are not directly through the database, but still have a part of the data (cache expiration, cache data not hit) read and write operations need to access the database, in the face of this part of the data, there may be data access load pressure, the database read and write operations to separate performance effect should be how? The effect is silent and figurative.
CDN and Reverse proxy acceleration site Response
Network coverage in a wide range of areas, creating a complex network environment, so that user access to the site performance is also different, in view of this problem, the site architecture using CDN and reverse proxy technology to speed up the site response, both principles are cached, CDN can be from the user's closest network to provide points to obtain data The reverse proxy is the first to get the data from the reverse proxy server.
Distributed file, database system
Any single server will not be able to meet the needs of business development at last. Although the previous database read and write separation can improve the database load pressure but as the business continues to grow, it is difficult to maintain the use of distributed databases at this time, the technology is not recommended not to use, and for this technology solution more common use of business splitting, different business databases deployed on different physical servers.
NoSQL and search Engines
This technology provides better support for scalable distribution, easing the hassle of application management of many data sources.
Business Split
Large-scale Web sites are growing, business needs become more complex, using divide and conquer to separate the entire site business into different product lines. Technically, a Web site is split into many different applications, each of which is deployed independently, and the app is associated with the app through hyperlinks, but most of all by accessing the same data store to form an associated complete system.
Distributed services
An application needs to perform the same business operations, then it can extract the common business, deploy it independently, and provide the common business service by the reusable business Connection database, and the application system only needs to manage the user interface and complete the business operation through the distributed call sharing business service.
Large Web site structure evolved here, basically most of the technical problems have been solved, but the development of things to a certain stage will be out of the original intention to a stronger direction. Many large web sites are now building their own cloud platforms to sell computing as a resource.
Large-scale website architecture evolution after a long time to develop so, in the process is also a few easy to enter the misunderstanding
blindly follow the big company Solutions , the experience and success of large companies is important, but can not blindly chase from, and actual specific business needs to change;
in order to technology and technology , website technology is for the business, but blindly pursuit of new technology, may lead to the road of structural technology more and more difficult;
attempts to solve all the problems with technology , although the technology is to solve business problems, but also not a master key, some business problems can be solved by means of business.
(turn) evolution of large-scale website architecture