Apache ShenYu 2.7.1 介绍与选型指南

Apache ShenYu 2.7.1 介绍与选型指南:Java 原生多协议 API 网关,覆盖版本基准、Admin 与 Bootstrap 分离架构、选择器规则模型与插件热插拔、官方发行包快速上手、适用场景限制,并对比 APISIX、Kong、Higress 给出选型建议。

Apache ShenYuApache ShenYu2026/10/18

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 Central org.apache.shenyu:shenyu-admin 与 shenyu-bootstrap maven-metadata.xml latest/release 均为 2.7.1,两处交叉一致;官方仓库发布流最新条目 v2.7.1(2026-07-08)。

官方来源清单:

来源地址用途
项目官网https://shenyu.apache.org/定位、架构与插件体系
官方发行目录https://downloads.apache.org/shenyu/版本与发行包核验
Maven Centralhttps://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 等方式),可在简单直连与注册中心/配置中心基础设施之间按运维现状选择。

四、功能特性

  1. 多协议代理:HTTP、Dubbo、gRPC、WebSocket、MQTT 服务统一接入;协议转换由对应插件完成。
  2. 安全防护:JWT、OAuth 2.0、签名认证、WAF 等安全插件。
  3. 流量治理:限流、熔断降级、请求变换、重试与超时控制。
  4. 可观测:Prometheus 指标、链路追踪(官方插件中心含 metrics/tracing/logging 插件)与访问日志集成。
  5. 管理控制台:Admin 可视化配置插件、选择器、规则,动态配置即时下发。
  6. 多语言客户端生态:官方提供 Go/.NET/Rust 客户端及 Nginx、WASM 形态的接入组件。
  7. 插件可扩展: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(官方文档步骤要点)

  1. 按《部署文档》初始化 Admin 所需数据库(执行官方 SQL 脚本)并配置连接;
  2. 分别解压两个发行包,进入 bin 目录以官方启动脚本启动 Admin 与 Bootstrap(默认网关端口与 Admin 控制台端口见发行包内 conf 配置);
  3. 打开 Admin 控制台,在「插件管理」中开启 Divide(HTTP 反向代理)插件。

5.3 接入一个 HTTP 后端服务

在 Admin 控制台为 Divide 插件新建选择器(匹配路径前缀等条件并填写后端服务地址),再在其下新建规则(细粒度匹配);配置下发后,访问网关端口的对应路径即被代理到后端服务。Java 应用亦可引入官方 shenyu-client 相关依赖,通过注解方式自动注册接口元数据(详见官方客户端文档)。

六、适用场景与限制

6.1 适用场景

  1. Java 技术栈统一网关:团队以 Java 为主,希望网关插件用 Java 定制并与现有 Java 体系(Dubbo、Spring 服务)无缝衔接。
  2. 多协议异构后端收拢:HTTP/Dubbo/gRPC/WebSocket/MQTT 多协议后端需要统一入口与协议转换。
  3. 精细化流量治理:需要选择器+规则两级匹配、限流熔断与灰度能力的 API 治理。
  4. 可视化运维诉求:希望以控制台驱动的插件配置与动态下发为主要运维方式。

6.2 限制

  1. JVM 运行时成本:Java 实现的内存与启动开销高于 C/Lua 或 C++ 系网关,极端单机性能诉求需自行压测评估。
  2. 生态相对年轻:与 APISIX/Kong 相比,第三方插件与全球社区体量较小。
  3. 管理面依赖外部存储:Admin 需要数据库支撑,生产部署需规划数据库高可用。
  4. 非 Java 后端接入路径:Go/.NET/Rust 生态通过官方客户端接入,但定制插件仍需 Java 能力。

七、同类选型对比

对比对象:Apache APISIX、Kong、Higress。数据为 2026-10-18 联网实查,来源逐项标注。

维度Apache ShenYu 2.7.1Apache APISIX(3.19.0)Kong(3.9.4)Higress(2.2.5)
开源许可Apache-2.0Apache-2.0Apache-2.0Apache-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 + LuaOpenResty/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。

八、参考链接

  1. Apache ShenYu 官网:https://shenyu.apache.org/
  2. 官方文档(Quick Start):https://shenyu.apache.org/docs/quick-start/quick-start-http
  3. 官方发行目录(2.7.1):https://downloads.apache.org/shenyu/2.7.1/
  4. Maven Central(org.apache.shenyu):https://repo1.maven.org/maven2/org/apache/shenyu/
  5. 官方仓库:https://github.com/apache/shenyu
  6. Apache APISIX 官网:https://apisix.apache.org/
  7. Kong 官网:https://konghq.com/
  8. Higress 官网:https://higress.io/