For a website, the most important thing is to ensure that the site has been "available", that is, can be accessed,
Regardless of how much concurrency you can support, and do not control the collection and collation of background data is very mature, first of all you must have a website available.
In the previous we have elaborated the website high availability some means, below will carry on some overall elaboration.
How to explain the usability of a website?
We should be based on the structure of the site, once from the go to the later elaboration, that is, the application layer, the service layer and the data layer, finally elaborated some comprehensive problems.
1. Apply High Availability
We know that the application is stateless, and the application layer should only logically handle the request.
First of all, we guarantee that the high-availability means is load balancing, when one of the clusters can not be accessed, the request should be able to be transferred to other servers.
There is also a need to note that session processing, if the user's session information consistency, before we introduced a total of 4 means,
It is session copy, session binding, cookie writing, session cluster, respectively.
Can do the application load balancing means there are many, generally software and hardware two aspects, the software has nginx, haproxy and so on
and specialized to do high-availability has keepalive.
2. High availability of services
The service layer is the processing of specific accesses, where the server responds differently to different requests,
The most basic means of ensuring high availability of services is load balancing, followed by some other means,
For example: Hierarchical management, timeout settings, asynchronous invocation, service demotion, and idempotent design.
3. High availability of data
For many websites, data is its most valuable asset, especially in this age of big data,
The first is to explain the CAP principle: data availability, data consistency, partition tolerance (accessibility) cannot be met at the same time.
The main means to ensure high data availability are: Data backup and failure transfer mechanism.
The data backup has asynchronous hot standby and synchronous hot standby mode. Failover has three steps: Failure acknowledgement, access transfer, data recovery.
4. Software Quality Assurance
There are also some areas to be aware of in terms of how to ensure software availability:
Web Publishing, automated testing, pre-release validation, code control, grayscale publishing, and more
High Availability summary of site architecture