基于 NGINX 和 etcd 构建的动态高性能 API 网关,支持路由、认证、限流及 AI 大模型流量管理。
- Star
- 8,912
- Fork
- 3,111
- 未关闭 Issue
- 353
- 最近提交
- 20小时前
这是什么?
Apache ShenYu 是一个用 Java 编写的 API 网关,用于服务代理、协议转换和 API 治理。请求会依次经过可扩展的插件链处理,ShenYu Admin 负责保存插件、选择器、规则和元数据,并将配置下发到各个网关实例。
网关支持代理 HTTP 与 Spring Cloud 服务、WebSocket 连接,以及 Apache Dubbo 和 gRPC 后端。流量控制方面提供负载均衡、限流,以及基于 Resilience4j 和 Sentinel 的容错,并包含 WAF、签名、鉴权、缓存和 URL 重写等插件。此外还支持 AI 代理、Token 限制和 MCP 服务插件。
服务端通过客户端 SDK 向 Admin 注册地址和 API 元数据,也可以使用可选的 Kubernetes 控制器同步 Ingress 与 Endpoints 资源。配置同步默认使用 WebSocket,同时支持 HTTP 长轮询、ZooKeeper、Nacos 和 etcd。项目提供 Docker 镜像,便于快速启动。
核心功能
- 01可扩展的插件链,支持自定义 Java 插件与 WASM 插件
- 02代理 HTTP、Spring Cloud、Dubbo、gRPC 和 WebSocket 后端
- 03通过 Resilience4j 和 Sentinel 实现负载均衡、限流与容错
- 04Admin 控制台集中管理配置,并同步到各网关实例
- 05支持将指标和日志输出到 Kafka、Elasticsearch
适用场景
- 在混合使用 HTTP、Dubbo 和 gRPC 的微服务前统一设置入口
- 为对外 API 配置鉴权、WAF 规则和限流
- 代理 LLM 调用,并进行 Token 限制与敏感词过滤
- 在 Kubernetes 中部署网关,同步 Ingress 资源
快速上手
- 1
创建 Docker 网络
docker network create shenyu - 2
按 README 生成密钥并启动 Admin、示例服务和网关容器
- 3
按 README 在网关上配置示例路由
- 4
通过网关验证路由是否生效
curl -i http://localhost:9195/index.html
使用前须知
- Docker 快速入门默认使用内存 H2 数据库,若需要持久化路由必须配置持久数据库。
- SOFA 和 Tars 不再默认内置,需要单独安装插件商店的 starter。
- Apollo 和 Hystrix 已被弃用,新项目应避免使用。
收录于专题
标签
常见问题
- shenyu 是什么?
- 基于 Java 的 API 网关,用于服务代理、协议转换和 API 治理,支持插件链与集中管理控制台。 Apache ShenYu 是一个用 Java 编写的 API 网关,用于服务代理、协议转换和 API 治理。请求会依次经过可扩展的插件链处理,ShenYu Admin 负责保存插件、选择器、规则和元数据,并将配置下发到各个网关实例。
- shenyu 可以免费使用吗?用的什么许可证?
- shenyu 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- shenyu 还在维护吗?
- 活跃维护中。shenyu 最近一次提交是在 2026年11月6日。
- shenyu 适合用来做什么?
- 在混合使用 HTTP、Dubbo 和 gRPC 的微服务前统一设置入口 为对外 API 配置鉴权、WAF 规则和限流 代理 LLM 调用,并进行 Token 限制与敏感词过滤 在 Kubernetes 中部署网关,同步 Ingress 资源
- shenyu 怎么安装和运行?
- 创建 Docker 网络: docker network create shenyu 按 README 生成密钥并启动 Admin、示例服务和网关容器 按 README 在网关上配置示例路由 通过网关验证路由是否生效: curl -i http://localhost:9195/index.html
- 在哪里获取 shenyu?
- 源代码和安装说明在 GitHub 上:https://github.com/apache/shenyu
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个 Go 语言 RPC 微服务框架,支持可插拔的服务发现、多种传输协议和编解码器,并可通过 HTTP 跨语言调用。
基于 Spring Framework 和 Spring Boot 构建的 API 网关,用于微服务中的 HTTP 请求路由与过滤。
用 Go 编写的高性能、无状态、声明式 API 网关,用于路由、聚合和保护对后端微服务的调用。
Kong 是一款云原生、与平台无关的 API、LLM 和 MCP 网关,可通过插件扩展,用于转发和保护服务流量。
开源的动态服务发现、配置管理与服务管理平台,面向云原生与微服务应用。