我怎么写一个程序自动判断,别人的服务器变慢,他们有两个接口地址,位于两台不同的服务器,那么,我怎么用程序自动判断一个服务器变慢了,自动切换到下一个服务器中请求链接呢???我使用php写的程序
我怎么写一个程序自动判断,别人的服务器变慢,他们有两个接口地址,位于两台不同的服务器,那么,我怎么用程序自动判断一个服务器变慢了,自动切换到下一个服务器中请求链接呢???我使用php写的程序
很奇怪这个功能(类似负载均衡),竟然需要在客户端(也就是你的程序)这边来做。
两个建议:
和服务方沟通下,看看他们是否可以做。
如果只能自己做,建议做一个类似网关的程序,主要逻辑非常简单,接收你php发来的http请求,默认转发到第一台服务器,如果超时(一个你觉得意味着它比较慢的时间),则转发到下一个服务器。你也可以在php中写这样的逻辑(封装一个http client即可,尽量和业务逻辑隔离开)。
希望能帮到你。好运。
设备:A服务器,B服务器,C反向代理服务器
AB服务器做数据处理。
C服务器作请求处理。
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数,
proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
1,两台一样就做负载均衡,或使用ping得时长货使用其他工具remote查看单机负载;
2,如果一个业务流需要两步服务器共同分步参与,请将其中一台逆向代理另一部;全部网络请求使用同一台服务器相应根据用户不同业务流步骤分配服务器;比如:A负责用户步骤1,B负责用户步骤2;步骤1负载较轻,那么我们得方案:A既有直接处理得后端,又AB两台服务器的逆向代理;用户处于步骤1得时候,负载在服务器A,用户处于负载2得时候,负载处于服务器B+一部分A;这样,AB两台服务器通讯可以做到一个本地连接内,而用户只可看到服务器A;
PS:如果AB服务器负载预估都会很重,那么建议按照"悲惨的大爷"建议那样,加入服务器C;
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号