1. Features of large web site software system:
- High concurrency, large flow
- Highly Available
- Massive data
- Wide range of users and complex network conditions
- Poor safety environment
- Rapid change of demand, frequent release
- Progressive development
2. Large-scale website Evolution architecture
1) Preliminary application: Data (database, file server) and application running on a single server
2) Separation of data and Applications: Database server, file server, application server
3) Cache Performance Improvements: (Application (with local cache)--external distributed cache)--database server and file server docking
4) Application cluster: Request distribution using load balancing policies
Load Balancer Scheduler---> (Multiple consuming programs distributed deployment)---> External distributed cache---> Database server and File server docking
5) database read/write separation: When the single database IO reaches the limit, the database needs to be clustered
Distributing the database server
Database Server (Main library (write database)---> Multiple from library for data Select)
6) CDN Acceleration
Add a layer of reverse proxy server and CDN Accelerator in front of load balancing, and return some cached data to the server early so that the page reacts faster
CDN Accelerator--Reverse proxy--load Balancer Scheduler---> (Multiple consuming programs distributed deployment)---> External distributed cache---> Database server and File server docking
7) Distributed database and Distributed File server
When the amount of data in the database is very large, you can put this different business data on different physical machines.
A single file server can be changed to a distributed file server when the file data volume is larger than the time when the individual files servers cannot be hosted
8) NoSQL and search engine
When large data volume of large files, it will inevitably involve the search of file data, at this time need is nosql and search engine server to provide it with search services, reduce the trouble of data source management
9) Business split:
A huge application is divided into different business modules for development, the application of each of the different modules are distributed in different servers for use, different modules and modules to communicate with the message queue
Large Web site Technology architecture: Core Principles and Case studies notes