当前位置: 首页 > news >正文

AtlasProxy:需求分析

1.项目背景和问题描述:
假设我写了一个个人博客网站或者别的功能网站,跑在一台机器上,这一台就扛不住,响应变慢甚至挂掉。于是我会可能想加机器,变成两台,三台或者多台,但是问题来了,用户或者客户端只知道一个地址也不知道该连接哪一个,也不可能加一个机器就改配置。举个最极端的例子,高并发的12306就是一个典型的例子。
这就是反向代理需要解决的问题:对外提供一个入口,背后多台机器一起抗流量。用户无感,你只需要在代理里加一份配置,把新机器挂上去就行

再往下想,还有一些实实在在的痛点:
一台后端挂了,请求还在发,用户一直报错, 你希望有一层能自动发现挂了,暂时不把流量分给他,等他恢复了再自动加回来。
活动或者爬虫导致流量突然暴增,直接把后端打挂,你希望在前面挡一层超过一定的QPS就拒绝掉多余的请求,保护后面的服务。
多台机器的配置不一样,有点性能好有的差,希望流量多的分给好的,流量小的分给性能差一点的,做一个平衡。
这些都可以通过一个反向代理来实现,他站在用户和后端之间,负责把请求分到合适的机器,限流,发现故障并摘除。

2.项目目标与范围:
产品目标:做一个可用的HTTP反向代理,支持多台后端,负载均衡,限流和健康检查。方便学习和二次开发。
技术目标:用Linux自带的epoll,多线程等接口实现,不依赖第三方业务库,代码分层清晰好扩展。
范围边界:只做 HTTP/1.x 的请求转发;不做 HTTPS、不做缓存、不做复杂路由;主要面向内网或学习环境。先解决「能转发、能均衡、能限流、能摘挂掉的机器」这几件事。

3.功能需求:
代理转发:接受客户端的HTTP请求,按照配置选择一台后端,把请求原样转回去,然后把后端的响应完整地回给客户端。验收:请求经过代理后,能正确到达后端并拿到响应。
负载均衡:支持轮询、按 IP 哈希、按权重分配三种策略,并且只把流量分给当前判定为可用的后端。验收:多发一些请求,各后端被选中的比例符合你配置的策略
限流:支持每秒请求数突发容量做限流,超过的请求返回503或者明确提示。验收:压测时把 QPS 打超,能看到 503,且限流参数可通过配置改
健康检查:定时去探一下各后端是否还活着,发现挂了就暂时不分配流量,恢复了再自动加回来。验收:停掉某一台后端后,新请求不会再被分到它;该后端重新起来后,流量会重新分过去。
配置:用配置文件(如 JSON)指定监听端口、后端列表、用哪种负载均衡、限流和健康检查的参数,改配置后重启或热重载即可生效,不用改代码。
优雅退出:收到 Ctrl+C 或结束进程的信号时,不再接新连接,把手头请求处理完再退出,不丢请求、不泄漏资源。验收:发信号后进程正常退出,无崩溃无泄漏。

4.非功能性需求:
运行环境:在 Linux 上跑,用系统自带的 glibc、pthread、epoll 等,不依赖第三方 C++ 库,方便在服务器或 WSL 里直接编译运行。
性能:单机多核下能撑住几千并发连接和一定量级的 QPS,具体数字可以后面压测再写死指标。
可维护性:代码按网络、HTTP、代理、工具几块分好,关键逻辑有注释,别人和自己都能看懂、能改。
可配置:监听端口、后端列表、负载均衡策略、限流和健康检查参数都从配置文件读,改配置就能调行为。
可观测:有分级日志(如 DEBUG、INFO、WARN、ERROR),出问题时能通过日志排查。

http://www.jsqmd.com/news/427879/

相关文章:

  • 2026优质灯具品牌推荐:专注LED照明的行业典范 - 品牌排行榜
  • 2026年高端酒店抗干扰床垫哪家好:五家优选指南 - 速递信息
  • 计算机毕业设计springboot机票在线销售系统 基于SpringBoot的航空票务在线预订平台 基于SpringBoot的航班机票网络销售管理系统
  • 智律云 AI:赋能法律行业,开启智能新纪元
  • 【实盘】20260127 :+1.73% 防守! “可视化的交易策略执行路径“
  • 云南水性色浆小单定制哪家比较靠谱 - 工业品牌热点
  • 函数式接口的用法、使用场景和需要注意的地方
  • 2026年评价高的极简家具/轻奢家具制造厂家哪家靠谱 - 行业平台推荐
  • 计算机毕业设计springboot校园智能停车系统 基于SpringBoot框架的高校智慧化车辆停放管理平台 SpringBoot驱动的大学校园车位预约与收费管理系统
  • 2026家用灯具厂家推荐:聚焦品质与技术创新 - 品牌排行榜
  • 计算机毕业设计springboot小区停车管理系统 基于SpringBoot的住宅小区车位预约与收费管理系统 基于SpringBoot的社区智能停车服务与车位调度平台
  • 分析全日制大专高校专业前景,哪些学校更有发展潜力选哪家 - 工业推荐榜
  • 再互动拆解娃哈哈开盖有奖的活动秘诀 - 品牌智鉴榜
  • JUnit 与 Postman 测试分工:业务层 vs 表现层
  • 一篇搞定全流程 10个AI论文工具测评:专科生毕业论文+开题报告全攻略
  • 2026年3月6S管理辅导公司最新推荐,量身定制辅导方案优势解读 - 品牌鉴赏师
  • 把坑都踩完了,AI论文软件千笔AI VS PaperRed,自考写论文更省心!
  • AO4812-ASEMI中低压MOS新标杆AO4812
  • 【飞行】基于matlab飞机进行纵向和横向稳定性研究【含Matlab源码 15092期】含报告
  • 留学行业如何做豆包推广,有相关的服务商吗? - 品牌2026
  • 海事服务提供商Pinnacle Marine冲刺港股:年营收4642万新加坡元
  • 不踩雷! 降AIGC网站 千笔·降AI率助手 VS 笔捷Ai,MBA专属利器
  • 2026年靠谱的蜗轮丝杆升降机/齿轮丝杆升降机精选厂家推荐 - 行业平台推荐
  • 五和博澳冲刺港股:9个月营收2亿亏4572万 估值40亿 黄岳升控制56%股权
  • 【电力系统】基于matlab角度-电压耦合引起的稳定性衰减:波德型基本性能限制分析【含Matlab源码 15084期】
  • 2026年口碑好的三节工业重型滑轨/76宽带锁重型滑轨工厂直供哪家专业 - 行业平台推荐
  • 权威推荐!2025-2026 5 大代表性 CRM 综合实力盘点:本土全场景 vs 国际开源选型攻略
  • 【流体】基于matlab分层介质中对流-扩散的随机游走模型【含Matlab源码 15091期】
  • CKEditor处理Word公式粘贴格式的技巧?
  • 2026年四川口碑好的桥梁伸缩缝靠谱供应商推荐,专业定制生产企业全解析 - mypinpai