How do I write a program automatically judge, other people's server is slow, they have two interface address, located in two different servers, then, how can I use the program to automatically determine a server is slow, automatically switch to the next server to request a link??? I use PHP to write programs
Reply content:
How do I write a program automatically judge, other people's server is slow, they have two interface address, located in two different servers, then, how can I use the program to automatically determine a server is slow, automatically switch to the next server to request a link??? I use PHP to write programs
It's strange that this feature (like load balancing) needs to be done on the client side (that is, your program).
Two recommendations:
Communicate with the service party to see if they can do it.
If you can only do it, it is recommended to do a gateway-like program, the main logic is very simple, to receive your PHP HTTP request, the default forwarding to the first server, if the time-out (one you think it means that it is relatively slow), then forward to the next server. You can also write such logic in PHP (encapsulate an HTTP client, and try to separate it from the business logic).
I hope I can help you. Good luck.
Device: A server, b server, c reverse proxy server
AB server to do data processing.
C Server for request processing.
The following are some of the reverse proxy configurations, optional.
Client_max_body_size 10m; #允许客户端请求的最大单文件字节数
Client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数,
Proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间 (proxy connection timed out)
Proxy_send_timeout 90; #后端服务器数据回传时间 (proxy send timeout)
Proxy_read_timeout 90; #连接成功后, back-end server response time (proxy receive timeout)
Proxy_buffer_size 4k; #设置代理服务器 (nginx) buffer size for saving user header information
Proxy_buffers 4 32k; #proxy_buffers缓冲区, the average Web page is set below 32k
Proxy_busy_buffers_size 64k; #高负荷下缓冲大小 (proxy_buffers*2)
1, the same as two load balancer, or use the ping long goods use other tools remote to view the single load;
2, if a business flow requires a two-step server to participate in a single step, please put one of the reverse proxy another; All network requests use the same server to assign servers according to user's different business flow steps, for example: A is responsible for user step 1,b is responsible for user Step 2, Step 1 is lighter, then we have to plan: A direct processing of the back end, and AB two server reverse proxy; The user is at step 1 when the load is at server A, the user is at load 2, the load is in the Server B + Part A, so that the AB two server communication can be done within a local connection, and the user can only see Server A;
PS: If the AB server load estimates will be very heavy, then the proposal according to "miserable Uncle" recommendation, join server C;