A website supporting tens of millions of PVS is a great test of whether the architecture is mature and robust (this article does not involve the software architecture layer and can be discussed if you are interested ). A system-level architecture is thrown out. It is not guaranteed to be the best solution, but it may be suitable for you. The reason is that excellent architectures are not universal and need to be designed based on the characteristics of each application. We hope to serve as a reference, and everyone will participate in the discussion and make comments. (Click to enlarge) architecture description: 1
A website supporting tens of millions of PVS is a great test of whether the architecture is mature and robust (this article does not involve the software architecture layer and can be discussed if you are interested ). A system-level architecture is thrown out. It is not guaranteed to be the best solution, but it may be suitable for you. The reason is that excellent architectures are not universal and need to be designed based on the characteristics of each application. We hope to serve as a reference, and everyone will participate in the discussion and make comments.
(Click to enlarge)
Architecture Description:
1) modules that directly introduce software names in the architecture are recommended by individuals, such as Haproxy and Hadoop;
2) about global load balancing, look at the cost of investment, you can use commercial products, such as F5-GTM, open source solutions is self-built intelligent DNS;
3) Local Load Balancing solution, you can consider F5-LTM or mature open source solutions LVS;
4) Why is Haproxy recommended for the proxy layer? Haproxy is an excellent reverse proxy software with high efficiency and stability. Top 10 Internet companies in China are all in use;
5) the cache layer can use Squid or Varnish. individuals prefer Varnish. Flexible configuration, stable operation, and convenient management interfaces. Why do I add a proxy in front of the cache layer? There are many advantages:
- Configure the URI routing rules based on the application, and set the hotspot to improve the hit rate of the backend cache;
- Easily divide website channels and sections to better organize and Plan Application progress;
- General Security Filtering for URIs to defend against injection attacks;
- Elastically allocates hardware resources to respond to emergencies with high traffic volumes;
- Valuable public IP Address resources can be recycled;
6) There are many and mature open-source application-layer technical solutions, which are not described in detail here;
7) Mysql is the first choice for mainstream open-source solutions at the database layer. Master-slave replication (one-master-to-multiple-slave) is currently a reliable model;
8) for more information about Nosql, see the article "Mongodb technology exchange PPT for departments". redis and memcached are ideal for hotspot data storage and database cache;
9) Intranet DNS plays a very important role. It is necessary to eliminate the Intranet IP addresses in the code, greatly reducing the modification of the source code due to IP changes or server faults, it is also easy to maintain;
10) Intranet LB is applicable to load balancing for internal WEB interfaces, multiple database Slave, multiple Nosql Slave, public services, and other applications. It can be implemented using LVS and Haproxy, applications with low availability requirements can directly use Localhost DNS round robin;
11) hadoop is suitable for storing and processing massive data, such as website log analysis and user data mining;
12) Managing clusters, the core of the platform, and O & M positions;
The above rough introduction of the architecture of several components, if you have any questions or interested in which can be discussed, can also communicate with me through weibo: http://t.qq.com/yorkoliu