API统一网关产品系统Vibe Coding

我要开发同款
小和尚2026年09月27日
4阅读

技术信息

语言技术
Java
系统类型
Web
行业分类
企业服务
参考价格
500

作品详情

行业场景

在政企、金融、能源等行业的客户内网中,普遍存在公网 IP 资源稀缺而业务系统(微服务)数量众多的矛盾:几十个内部系统只能通过有限的出口地址对外提供服务。传统做法是用 Nginx 做反向代理,但存在明显短板——Nginx 只做静态配置的报文转发,无法在业务层面做到按服务的流控(限流)、熔断降级,也无法对转发日志进行结构化落库与分析,运维排障只能依赖文本日志。此外,LDAP 统一认证(389 端口)、netcut 等四层 TCP 服务无法通过 HTTP 反向代理透传。本平台正是针对这一场景,基于 SpringBoot 自研的统一网络转发服务(服务集成平台,SIP)​:内部服务统一接入,对外暴露可控的统一/独立端口,兼顾安全、稳定与可观测。

功能介绍

1.统一转发入口(数据面)
服务端口(默认 8080,可配置)上以 /sip/http/{路由ID}/** 访问任意内部 HTTP 服务,请求头透传、调用方真实 IP 注入
2.路由独立端口
每个 HTTP 路由可绑定独立监听端口,URL 结构与直连上游完全一致,适配无法改造的存量调用方;TCP 路由(LDAP/netcut 等)按路由配置透传端口
3.管理面独立
管理端口(默认 8081,可配置)
承载管理 API、Web 控制台与健康检查,与数据面端口强制隔离(403)
4.流控
按路由维度 QPS 令牌桶限流,超限返回 429,支持运行期调整
5.熔断
上游持续异常自动熔断(失败率/样本数/OPEN 时长可配),OPEN 期快速失败 503,冷却后半开自动恢复
6.日志与分析
请求/连接日志异步批量落 MySQL(丢弃计数自保护),控制台分页查询、近 24h 按路由聚合统计(成功率/耗时)
7.管理控制台
Token 认证的管理 API + 内置 Web 页面:路由增删改、启停、日志查询、监控看板,配置变更即时生效(不停服)

项目实现

技术栈:
SpringBoot 2.7.18(Java 8 兼容)+ Apache HttpClient 连接池(HTTP 反代)+ Netty(TCP 透传)+ Resilience4j(限流/熔断)+ Spring Data JPA/MySQL(持久化)+ 原生 JS 单页管理台(零构建链)。
转发核心:
单 Tomcat 多 Connector 承载服务端口、管理端口及各路由独立端口(HttpPortBindingManager 运行期动态增删 Connector);TCP 侧为每路由绑定 Netty 监听端口做双向字节透传,含数据早达缓冲冲刷、并发连接数限制与连续失败熔断。
可靠性设计:路由配置内存缓存 + 指纹比对热更新(转发路径零 DB 查询);日志内存队列 + 定时批量落库,DB 异常只丢日志不伤网关;逐跳头剔除、流式转发、错误统一转 HTTP 语义码。
质量保障:
全链路本地冒烟(转发/透传/限流 429/熔断 502→503→自动恢复/端口隔离/认证 401),部署手册 docs/DEPLOY.md 与建表脚本 docs/schema.sql 齐备。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论