- JDK 21
- Maven 3.8+
- Docker
- Redis
Mo Gateway 是一个轻量级、高性能的 API 网关服务,基于 Spring Boot 3.x 和 Spring Cloud 构建。它提供了丰富的功能集,包括高性能的请求路由、智能负载均衡、灵活的限流策略、服务发现、安全控制等,是构建现代化微服务架构的理想选择。
┌─────────────┐
│ Client │
└──────┬──────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Mo Gateway │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ 路由模块 │ │ 限流模块 │ │ 负载均衡模块 │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ 安全模块 │ │ 监控模块 │ │ 服务发现模块 │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────┐
│ Services │
└─────────────┘
- 采用 Spring WebFlux 响应式编程模型,提供卓越的性能表现
- 支持 HTTP/2 协议,实现更高效的网络传输
- 异步非阻塞 I/O 处理,提高系统吞吐量
- 智能的请求压缩和缓存策略,优化响应时间
- 提供多种负载均衡算法,满足不同场景需求
- 轮询算法:适用于服务实例性能相近的场景
- 加权轮询:支持服务实例差异化配置
- 最少连接:适用于长连接场景
- 响应时间加权:根据服务响应时间动态调整
- 自动服务健康检查,及时剔除异常实例
- 支持动态调整服务权重,实现更精细的流量控制
- 基于 Redis 的分布式限流,支持集群部署
- 多种限流算法支持,适应不同业务场景
- 令牌桶:适合突发流量场景
- 漏桶:适合平滑流量场景
- 滑动窗口:适合精确控制场景
- 支持服务级别、接口级别的限流配置
- 提供限流降级策略,保证系统可用性
- 原生支持 Kubernetes 服务发现
- 提供自定义服务注册机制
- 支持动态服务上下线
- 服务元数据管理,支持服务标签和属性配置
- 完整的 SSL/TLS 加密支持
- 灵活的认证授权机制
- API 密钥管理
- 请求签名验证
- 可配置的 CORS 策略
- 集成 Prometheus 监控系统
- 详细的请求追踪
- 丰富的性能指标
- 完善的健康检查机制
- 结构化的日志记录
- JDK 21
- Maven 3.8+
- Docker 和 Docker Compose
- Redis 7.x
- Kubernetes(可选,用于生产环境)
- 克隆项目代码
- 启动依赖服务(Redis等)
- 构建并运行项目
- 验证服务是否正常运行
网关服务支持丰富的配置选项,包括:
- 服务端口配置
- SSL/TLS 配置
- HTTP/2 支持
- 限流参数配置
- 负载均衡策略
- 服务发现配置
详细配置说明请参考 配置指南
支持通过环境变量覆盖默认配置,主要配置项包括:
- 服务发现类型
- Redis 连接信息
- 限流参数
- 日志级别
- 监控配置
- 服务注册
- Kubernetes 环境配置
- 非 Kubernetes 环境配置
- 限流配置
- 负载均衡配置
- 监控集成
详细接入说明请参考 服务接入指南
- Docker 部署
- 单机部署
- 集群部署
- Kubernetes 部署
- 基础部署
- 高可用部署
详细部署说明请参考 部署指南
- 服务健康状态
- 性能指标
- 限流统计
- 系统资源使用情况
- 结构化日志
- 日志收集
- 日志分析
详细运维说明请参考 运维指南
欢迎贡献代码,提交 Issue 或 Pull Request。请确保:
- 遵循代码规范
- 添加必要的测试
- 更新相关文档
详细贡献指南请参考 贡献指南
本项目采用 MIT 许可证
- 项目维护者:[Mo]
- 邮箱:[xmopher@hotmail.com]
- 项目链接:[https://github.com/xmopher/gateway.git]