<span id="Label3"></p><p><p><span style="font-size:14px; color:#ff0000">Reference: <span style="font-family:"Microsoft YaHei",宋体,"Myriad Pro",Lato,"Helvetica Neue",Helvetica,Arial,sans-serif; line-height:24px">Large web site technology Architecture--hae</span></span></p></p><p><p><span style="font-size:14px; color:#ff0000"><span style="color:rgb(46,46,46); font-family:"Microsoft YaHei",宋体,"Myriad Pro",Lato,"Helvetica Neue",Helvetica,Arial,sans-serif; font-size:15px; line-height:24px">A mature large-scale web site system architecture is not designed to have a complete high-performance, high availability, security and other features, it always with the increase in user volume, the expansion of business functions gradually evolved. The technical core value of the website is to respond flexibly to the needs of the website</span><br></span></p></p><p><p><span style="color:rgb(46,46,46); font-family:"Microsoft YaHei",宋体,"Myriad Pro",Lato,"Helvetica Neue",Helvetica,Arial,sans-serif; font-size:15px; line-height:24px">the technical structure of the website is driven from the internal need to do a better job, expand and develop more new business; external user volume increased, user diversity</span> <span style="font-family:microsoft yahei; color:#444444"> <span style="font-size:14px; line-height:25px">. </span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px"><strong>large-scale Internet Application system</strong></span></span> <span style="font-size:14px; line-height:25px; color:rgb(68,68,68); font-family:"microsoft yahei"">features</span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px">① high concurrency, Large flow ② high-availability ③ Massive data ④ users widely distributed, complex network conditions ⑤ security environment ⑥ Rapid change in demand, release frequent ⑦ progressive development<br></span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px"><strong>Development history</strong></span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px">① Initial Stage Architecture</span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px">applications, files, databases are on the same server, common lamp (linux+apache+mysql+php) architecture, aggregation of various open source software</span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px"><br></span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px">② Application services and data service separation</span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px">A server is gradually unable to meet the demand, more and more users access, resulting in insufficient performance, more and more data lead to insufficient storage space, then need to apply and data Separation. After application separation use three servers, application server, file server, database server. The application server needs to handle a lot of business logic, so a powerful CPU is needed, the file server stores a large number of files, and therefore requires a larger hard disk, the database server needs fast disk retrieval and data caching, requiring faster hard disks and larger memory, applications and data Separation. Different features of the server assume different roles, the Site's concurrent processing capacity and data storage space has been improved, support the further development of the Website. however, as users increase the pressure on the database server, resulting in Access delays, affecting the performance of the entire Site.</span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px"><br></span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px">③ using caching to change site performance</span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px">Site access characteristics and Real-world wealth distribution follow the same 28 law, 80% of business access to 20% of the data, since most of the business access is concentrated on a small amount of data, then the small amount of data cache, it is not possible to reduce the database access pressure, improve the speed of data access to the Site. There are two kinds of cache, one is local cache, read and write fast, but limited by the local memory size, the number of caches is finite, and the other is the remote cache server, the remote cache server can use the cluster method, the server that deploys the large memory as the cache server, theoretically does not accept the memory size Limit.<br>With the use of caching, data access pressure is effectively mitigated, but single server processing requests are limited, during the peak site visit, the application server is called the entire site Bottleneck.<br></span></span></p></p><p><p><br></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px"><br></span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px">④ Improve web site concurrency with Application server clusters</span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px">The use of clustering is a common means of high concurrency, massive data problems, when a server processing power, storage space is insufficient, do not attempt to replace a more powerful server, for large sites, No matter how powerful servers can not meet the continued growth of business needs, in this case, it is more appropriate to increase the server, Share the existing server access and storage Pressure. As far as the site architecture is concerned, as long as the load pressure is improved by adding a single server, it is possible to continuously increase the server continuously to improve the system performance in the same way to achieve the scalability of the System. Application Server cluster is a simple and mature one in the design of scalable cluster architecture of Web Site.<br><span style="white-space:pre"></span>Load Balancer dispatch server, can distribute access request from User's browser to any server in centralization of application server, if more users, add more application servers in the cluster, use the server load pressure is not the bottleneck called the whole website<br></span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px"><br></span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px">⑤ Data Read/write Separation<br>After the use of the cache, the majority of data read and write operations can be done without the database, but still have a part of the read operation and all the write operations need to access the database, the site<br>After the user reaches a certain scale, the database becomes the bottleneck of the website because of the high load Pressure. At present, most of the mainstream database has provided the Master-slave hot standby function, by configuring two database Master-slave relationship, you can synchronize one database server update to another server on the site to take advantage of this feature<br>Realize the data read and write separation, thus improve the database load pressure, the application server when reading data access to the main database, the main database through the Master-slave replication mechanism to synchronize data updates to the slave database, so that when the application server read data, You can obtain data from the database, In order to facilitate the application to access the database after read and write, usually the application server side uses the specialized data access module, is the database read-write separation to the application Transparent.<br></span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px"><br></span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="line-height:25px"><strong><span style="font-size:14px">⑥ using reverse proxy and CDN to accelerate website response</span></strong><br></span></span></p></p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px"><span style="font-size:14px line-height:25px"> with the continuous development of the website business, the size of users is getting bigger and larger, because of the complex network environment, different regions of the users to visit the site, the speed difference is also very large. Studies have shown that the slower the site visits and the more users ' <br> Churn rate-related sites are accessed, the more likely users are to lose patience and Leave. To provide a better user experience and retain users, websites need to speed up network access. The main means of using CDN and reverse proxy <br> CDN and reverse proxy rationale are to use the cache, the difference is that the CDN deployed in the network Provider's room, so that users in the request site services, can be from their closest network to provide the opportunity room to obtain data, and the reverse proxy is deployed in the <br> Web site Center room, when the user requests to reach the central room, the first access to the server is a reverse proxy server, if the reverse proxy server in the cache user data is returned directly to the user <br> Use CDN and reverse Proxy is the purpose of the early return data to the user, on the one hand to speed up user access, On the other hand, it also reduces the load pressure on the back-end server <br> <br> <br> <br> <br> ⑦ using Distributed File systems and distributed database systems <br> Any powerful single server is full of the growing business needs of large sites, and after the database has been read and written separated, Split from a server into two servers, but with the development of the Web site business still can not meet the demand, which is the need for distributed database, file system also needs a distributed file system, distributed database is the last means of database splitting, only in the single table data scale is very large when used, not to be forced, The more commonly used data splitting means of the website is the business sub-library, and the different business databases are deployed on different physical servers. <br> <br> <br> <span style="color:rgb (68,68,68); font-family:" microsoft yahei"; font-size:14px; line-height:25px">⑧ NoSQL and search engine </span> <br> As the business of the website becomes more and more complex, the need for data storage and retrieval is becoming more complex, and Web sites need to adopt some non-relational database technologies such as NOSQL and non-database query technologies such as search Engines. <br> NoSQL and search engines are the technical means of the internet, better support for scalable distributed features, and application servers that access a wide range of data through a unified data access module to mitigate the hassle of application management of many data sources <br> <br> </span></span></span></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px">⑨ Business Split</span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px">Large web site in order to deal with the increasingly complex business scenarios, through the use of instead of the means of treatment to the entire site into different product lines, such as large-scale shopping transaction site will be home shop orders seller buyers and other split into different product lines divided into different business team Responsible.<br>Specific to the technical, but also according to the product line division, say a site split into different applications, each application independent deployment maintenance, the application can be through a hyperlink to establish a relationship, or through the message queue for data distribution, of course, the most or by accessing the same data storage system to form an associated complete system.<br></span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="font-size:14px; line-height:25px"><br></span></span></p></p><p><p><br></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="line-height:25px"><span style="color:rgb(34,34,34); font-family:Verdana,Arial,Tahoma; letter-spacing:5px; line-height:40px"><span style="font-size:12px">⑩</span></span> <span style="font-size:14px">Distributed Services</span></span></span></p></p><p><p><span style="font-family:microsoft yahei; color:#444444"><span style="line-height:25px"><span style="font-size:14px">As business splits are getting smaller, storage systems become larger, the overall complexity of the application system increases exponentially, and deployment maintenance becomes more and more Difficult. Because all applications are connected to all database systems, the number of these connections in tens of thousands of server-sized sites is the size of the server, resulting in insufficient storage database connection resources and denial of service.<br>Since every application needs to perform many of the same business operations, such as user management, commodity management, and so on, these common services can be extracted and deployed independently. Have these reusable business connection databases that provide common business services, while application systems only need to manage the user interface to invoke public business services through distributed services to complete business operations<br><br><br><br><br></span></span></span></p></p><p><p>Website Architecture Evolution</p></p></span>
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.