Skip to content

AsterZephyr/SterlingGateway

Repository files navigation

SterlingGateway

项目介绍

SterlingGateway 是一个轻量级、高性能的网关服务,主要用于解耦客户端和服务端,管理和控制从客户端到后端服务的所有 API 请求和流量。网关基于 Netty 框架实现,采用全异步链路处理高并发请求,并具备高效的请求转发、负载均衡、流量控制、限流与降级保护等功能。

功能特性

  • 轻量级:网关只负责转发 HTTP 请求,做必要的流量增强,如服务发现,保持无外部依赖。
  • 高性能:基于 Netty 实现的全异步链路,确保高吞吐量和低延迟。
  • 无侵入性:下游服务对网关完全无感知,不需要对服务进行任何代码侵入修改。
  • 高可扩展性:支持多种注册中心(如 Nacos、Zookeeper),支持动态路由、灰度发布、流量控制等。
  • 降级与限流:提供基于规则的熔断机制与流量控制,避免服务过载。
  • 负载均衡:多种负载均衡策略,支持权重路由和灰度流量转发。
  • 插件机制:基于 SPI 允许用户自定义网关行为,扩展流量处理能力。

项目背景

现如今,很多系统使用的都是套壳的业务系统,如外卖、商城、秒杀等,而本项目专注于打造一个从底层架构设计出发的自研技术项目。通过自主开发网关系统,锻炼项目设计、编码、调试能力,并实现一个完全自主可控的网关服务。

设计要求

  1. 轻量:网关的核心职责是解耦客户端与服务端,作为桥梁转发 HTTP 请求,除服务发现功能外不应有其他依赖。
  2. 高性能:使用 Netty 框架,保证全异步链路和高效性能。
  3. 无侵入性:下游服务对网关无感知,网关不对服务有任何代码侵入。
  4. 代码简洁:确保代码高可读性、可维护性。

部署与运行

  1. 克隆项目到本地:
    git clone https://github.com/your-repo/SterlingGateway.git
  2. 编译与打包:
    mvn clean package
  3. 启动服务:
    java -jar target/sterling-gateway.jar

贡献指南

欢迎任何形式的贡献!您可以通过以下方式参与本项目:

  • 提交 Issue 报告 Bug 或者提出新功能建议。
  • 提交 Pull Request 修复 Bug 或添加新功能。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages