Apache ShenYu 2.7.1 介绍与选型指南
Apache ShenYu 2.7.1 介绍与选型指南:Java 原生多协议 API 网关,覆盖版本基准、Admin 与 Bootstrap 分离架构、选择器规则模型与插件热插拔、官方发行包快速上手、适用场景限制,并对比 APISIX、Kong、Higress 给出选型建议。
Apache ShenYu 2.7.1 介绍与选型指南
本文为 A1 认知篇:面向软件选型与架构认知场景,系统介绍 Apache ShenYu 2.7.1 的定位、核心架构、功能特性、适用场景与同类对比。全部信息来自官方资料溯源(官网、官方下载目录、Maven Central),不包含本地安装与运行实测内容。
一、信息基准
- 查询日期:2026-10-18
- 本次介绍版本:Apache ShenYu 2.7.1(官方当前最新稳定版)
- 项目状态:Apache 顶级项目(TLP),2022 年 7 月毕业;前身为 Dromara 社区的 Soul 网关,2020 年捐赠进入 Apache 孵化器。
- 版本判定依据:官方发行目录
downloads.apache.org/shenyu/当前最新发行目录为 2.7.1(发行文件时间戳 2026-07-08);Maven Centralorg.apache.shenyu:shenyu-admin与shenyu-bootstrapmaven-metadata.xml latest/release 均为 2.7.1,两处交叉一致;官方仓库发布流最新条目 v2.7.1(2026-07-08)。
官方来源清单:
| 来源 | 地址 | 用途 |
|---|---|---|
| 项目官网 | https://shenyu.apache.org/ | 定位、架构与插件体系 |
| 官方发行目录 | https://downloads.apache.org/shenyu/ | 版本与发行包核验 |
| Maven Central | https://repo1.maven.org/maven2/org/apache/shenyu/ | 版本交叉核验 |
| 官方文档 | https://shenyu.apache.org/docs/ | 快速开始与插件中心 |
| 官方仓库 | https://github.com/apache/shenyu | 发布记录(releases feed) |
二、软件概述
本文介绍的是 Apache ShenYu 2.7.1。官方将其定位为「Java 原生 API 网关」:一个可扩展、多协议的 API 网关,用于连接、保护与治理服务接口。按官网表述,ShenYu 可把 HTTP、Dubbo、gRPC、WebSocket、MQTT 等协议的服务统一收拢到单一网关之后,内置认证与安全插件(JWT、OAuth 2.0、WAF 等)、流量治理能力(限流、熔断、请求变换)与可观测集成(链路、指标、日志),插件可用 Java 扩展并动态加载。
2.7.1 发行包由三部分构成:shenyu-admin(管理控制台服务,含数据库存储的配置面)、shenyu-bootstrap(网关数据面运行时)与源码包;官方发行目录另提供多语言接入生态包:shenyu-client-golang、shenyu-client-dotnet、shenyu-client-rust、shenyu-nginx 与 shenyu-wasm(均为发行目录当前收录)。
三、核心架构
3.1 管理面与数据面分离
ShenYu 采用 Admin + Bootstrap 分离架构:Admin 提供可视化管理控制台(插件、选择器、路由规则的可视化配置,动态配置实时下发);Bootstrap 为网关运行时副本,接收 Admin 下发的配置,对请求执行插件链处理后转发到上游服务。官方架构图即描述为「Admin 将配置分发到网关副本,网关经插件链处理请求并转发上游」。
3.2 选择器与规则两级匹配模型
流量匹配分为两层:选择器(Selector) 面向服务/应用级别粗粒度匹配(按域名、路径前缀、请求头等条件命中一组后端);规则(Rule) 在选择器之下做更细粒度的请求级匹配并绑定具体插件行为。所有插件共享这一模型,学习一次即可理解全部插件的配置方式。
3.3 插件链与热插拔
网关处理流程是一条责任链式的插件链:认证、限流、路由(divide 等)、代理转换、可观测等插件按需开启,插件配置在 Admin 修改后通过数据同步通道实时生效,无需重启网关。插件以 Java SPI 方式扩展,支持开发者自定义插件动态加载。
3.4 配置同步通道
Admin 与 Bootstrap 之间支持多种数据同步机制(官方文档列出 HTTP、WebSocket、ZooKeeper、Nacos、etcd 等方式),可在简单直连与注册中心/配置中心基础设施之间按运维现状选择。
四、功能特性
- 多协议代理:HTTP、Dubbo、gRPC、WebSocket、MQTT 服务统一接入;协议转换由对应插件完成。
- 安全防护:JWT、OAuth 2.0、签名认证、WAF 等安全插件。
- 流量治理:限流、熔断降级、请求变换、重试与超时控制。
- 可观测:Prometheus 指标、链路追踪(官方插件中心含 metrics/tracing/logging 插件)与访问日志集成。
- 管理控制台:Admin 可视化配置插件、选择器、规则,动态配置即时下发。
- 多语言客户端生态:官方提供 Go/.NET/Rust 客户端及 Nginx、WASM 形态的接入组件。
- 插件可扩展:Java 原生插件开发模型,自定义插件热加载。
五、快速上手
以下内容引自官方文档《Quick Start》(HTTP 服务接入)与官方发行包说明,属官方资料整理,本文未在本地执行实测。完整步骤见:https://shenyu.apache.org/docs/quick-start/quick-start-http
5.1 获取发行包(官方发行目录 2.7.1)
从 https://downloads.apache.org/shenyu/2.7.1/ 下载两类二进制发行包:apache-shenyu-2.7.1-admin-bin.tar.gz(管理面)与 apache-shenyu-2.7.1-bootstrap-bin.tar.gz(网关数据面),并按官方文档校验 .asc 签名与 .sha512 校验值。
5.2 启动 Admin 与 Bootstrap(官方文档步骤要点)
- 按《部署文档》初始化 Admin 所需数据库(执行官方 SQL 脚本)并配置连接;
- 分别解压两个发行包,进入
bin目录以官方启动脚本启动 Admin 与 Bootstrap(默认网关端口与 Admin 控制台端口见发行包内conf配置); - 打开 Admin 控制台,在「插件管理」中开启 Divide(HTTP 反向代理)插件。
5.3 接入一个 HTTP 后端服务
在 Admin 控制台为 Divide 插件新建选择器(匹配路径前缀等条件并填写后端服务地址),再在其下新建规则(细粒度匹配);配置下发后,访问网关端口的对应路径即被代理到后端服务。Java 应用亦可引入官方 shenyu-client 相关依赖,通过注解方式自动注册接口元数据(详见官方客户端文档)。
六、适用场景与限制
6.1 适用场景
- Java 技术栈统一网关:团队以 Java 为主,希望网关插件用 Java 定制并与现有 Java 体系(Dubbo、Spring 服务)无缝衔接。
- 多协议异构后端收拢:HTTP/Dubbo/gRPC/WebSocket/MQTT 多协议后端需要统一入口与协议转换。
- 精细化流量治理:需要选择器+规则两级匹配、限流熔断与灰度能力的 API 治理。
- 可视化运维诉求:希望以控制台驱动的插件配置与动态下发为主要运维方式。
6.2 限制
- JVM 运行时成本:Java 实现的内存与启动开销高于 C/Lua 或 C++ 系网关,极端单机性能诉求需自行压测评估。
- 生态相对年轻:与 APISIX/Kong 相比,第三方插件与全球社区体量较小。
- 管理面依赖外部存储:Admin 需要数据库支撑,生产部署需规划数据库高可用。
- 非 Java 后端接入路径:Go/.NET/Rust 生态通过官方客户端接入,但定制插件仍需 Java 能力。
七、同类选型对比
对比对象:Apache APISIX、Kong、Higress。数据为 2026-10-18 联网实查,来源逐项标注。
| 维度 | Apache ShenYu 2.7.1 | Apache APISIX(3.19.0) | Kong(3.9.4) | Higress(2.2.5) |
|---|---|---|---|---|
| 开源许可 | Apache-2.0 | Apache-2.0 | Apache-2.0 | Apache-2.0 |
| GitHub stars + 最近发版 | 官方未公布(无可靠官方口径);v2.7.1,2026-07-08(releases feed) | 约 17k(shields.io 实查);3.19.0,2026-09-24(releases feed) | 约 44k(shields.io 实查);3.9.4,2026-10-12(releases feed) | 约 9.6k(shields.io 实查);v2.2.5,2026-10-04(releases feed) |
| 版本节奏 | 年度级大版本 + 补丁线(2.7.0.x → 2.7.1) | 高频(月度级 feature + 补丁) | 高频维护 | 活跃(月度级) |
| 技术内核 | Java(Spring WebFlux 反应式) | OpenResty/Nginx + Lua | OpenResty/Nginx + Lua(混合 Go) | Envoy(C++)+ 控制面 |
| 兼容矩阵 | HTTP/Dubbo/gRPC/WebSocket/MQTT 插件级协议转换;Admin 控制台 | HTTP/1.1/2/3、gRPC、WebSocket、Dubbo 代理等;多语言插件(Lua/Go/Python/WASM) | REST/HTTP、gRPC、WebSocket;Kong Manager/企业版生态 | HTTP/gRPC 等流量网关场景;AI 网关方向;基于 K8s Ingress/Gateway API 生态 |
| 定位差异 | Java 原生、控制台驱动的可插拔网关 | 云原生高性能网关,插件生态丰富 | 成熟商业生态的网关平台 | 面向 AI 与 K8s 的路由/网关新锐 |
来源说明:stars 取自 shields.io 徽章实查(ShenYu 无可靠官方口径,如实标注官方未公布);发版时间取自各仓库 GitHub releases.atom feed;技术内核为各项目官方文档公开描述。
选型建议:Java 团队追求网关逻辑可控、以控制台可视化运营为主选 ShenYu;追求极致网关性能与丰富插件生态选 APISIX 或 Kong(Kong 生态更商业成熟);Kubernetes/AI 网关方向优先评估 Higress。
八、参考链接
- Apache ShenYu 官网:https://shenyu.apache.org/
- 官方文档(Quick Start):https://shenyu.apache.org/docs/quick-start/quick-start-http
- 官方发行目录(2.7.1):https://downloads.apache.org/shenyu/2.7.1/
- Maven Central(org.apache.shenyu):https://repo1.maven.org/maven2/org/apache/shenyu/
- 官方仓库:https://github.com/apache/shenyu
- Apache APISIX 官网:https://apisix.apache.org/
- Kong 官网:https://konghq.com/
- Higress 官网:https://higress.io/