SterlingGateway 是一个轻量级、高性能的网关服务,主要用于解耦客户端和服务端,管理和控制从客户端到后端服务的所有 API 请求和流量。网关基于 Netty 框架实现,采用全异步链路处理高并发请求,并具备高效的请求转发、负载均衡、流量控制、限流与降级保护等功能。
- 轻量级:网关只负责转发 HTTP 请求,做必要的流量增强,如服务发现,保持无外部依赖。
- 高性能:基于 Netty 实现的全异步链路,确保高吞吐量和低延迟。
- 无侵入性:下游服务对网关完全无感知,不需要对服务进行任何代码侵入修改。
- 高可扩展性:支持多种注册中心(如 Nacos、Zookeeper),支持动态路由、灰度发布、流量控制等。
- 降级与限流:提供基于规则的熔断机制与流量控制,避免服务过载。
- 负载均衡:多种负载均衡策略,支持权重路由和灰度流量转发。
- 插件机制:基于 SPI 允许用户自定义网关行为,扩展流量处理能力。
现如今,很多系统使用的都是套壳的业务系统,如外卖、商城、秒杀等,而本项目专注于打造一个从底层架构设计出发的自研技术项目。通过自主开发网关系统,锻炼项目设计、编码、调试能力,并实现一个完全自主可控的网关服务。
- 轻量:网关的核心职责是解耦客户端与服务端,作为桥梁转发 HTTP 请求,除服务发现功能外不应有其他依赖。
- 高性能:使用 Netty 框架,保证全异步链路和高效性能。
- 无侵入性:下游服务对网关无感知,网关不对服务有任何代码侵入。
- 代码简洁:确保代码高可读性、可维护性。
- 克隆项目到本地:
git clone https://github.com/your-repo/SterlingGateway.git
- 编译与打包:
mvn clean package
- 启动服务:
java -jar target/sterling-gateway.jar
欢迎任何形式的贡献!您可以通过以下方式参与本项目:
- 提交 Issue 报告 Bug 或者提出新功能建议。
- 提交 Pull Request 修复 Bug 或添加新功能。