Easy HTTP Proxy, 1 week project~
这是一个1周时间从零设计到实现的具有负载均衡,健康检测功能的简单代理项目,目前仅支持 HTTP 协议。🍭🍭
- 负载均衡:支持加权轮询(round robin),加权随机,最小活跃请求三种常用负载均衡算法。
- 健康检测:对服务器进行健康检测,及时发现处于故障或离线的服务器,该功能可自定义全局或对某个服务器的开关。
- 熔断机制:将请求超时的服务器设为下线状态并中止请求,可自定义全局开关。
- 动态更新:通过连接 EH-Proxy-Manager 并输入命令,可以动态添加,删除服务器,更新服务器权重等。
- URL 路径检测:在配置文件中可填写支持的 URL 路径,支持完全匹配和前缀匹配(在配置文件中输入前缀匹配的路径时最后加星号 *),可自定义全局开关,关闭该功能将转发任何路径的请求给服务器。
- 优雅关闭:系统信号中断(如Ctrl+C)或是通过 EH-Proxy-Manager 的 shutdown 命令,都会先进行释放资源以及将当前所代理的服务器状态写入本地配置文件的工作,之后才停止进程。
- cmd:存放 main 文件
- EH-proxy-client:客户端文件
- pkg:proxy 相关功能文件
- testServer:模拟服务器文件,可用于测试
至于为什么我突然搞出个这玩意🤣,是因为今年学校期末实践周项目,选题可以是嵌入式/云计算,因为最近总在写 Golang,所以我选择云计算并想出了一个能在两周内快速搞定的项目,于是经过了一周时间(6.28-7.4)的从零瞎搞之路,EH-Proxy(Easy HTTP Proxy)完成了👏👏