5分钟上手Shenyu API网关:从安装到动态路由配置
【免费下载链接】shenyu 项目地址: https://gitcode.com/gh_mirrors/so/soul
你还在为微服务架构中的API管理头痛吗?跨服务调用混乱、权限控制复杂、流量监控困难?本文将带你5分钟快速部署Shenyu网关,掌握动态路由配置,解决90%的API治理难题。读完本文你将获得:
- 3步完成Shenyu环境搭建
- 可视化界面配置路由规则
- 实时流量监控与插件扩展指南
什么是Shenyu网关
Shenyu(神禹)是一个高性能、可扩展的API网关解决方案,灵感源自中国古代治水英雄大禹的疏导思想。作为微服务架构的关键组件,它负责:
- 请求路由(Router):将请求转发到正确的后端服务
- 流量控制(Traffic Control):限流、熔断、负载均衡
- 安全防护(Security):认证、授权、WAF防护
- 可观测性(Observability):日志、 metrics、链路追踪

快速部署(Docker方式)
1. 创建专用网络
docker network create shenyu
2. 启动管理后台
docker pull apache/shenyu-admin
docker run -d --name shenyu-admin -p 9095:9095 --net shenyu apache/shenyu-admin
管理后台源码:shenyu-admin/
3. 启动网关服务
docker pull apache/shenyu-bootstrap
docker run -d --name shenyu-gateway -p 9195:9195 \
-e "shenyu.local.enabled=true" \
-e SHENYU_SYNC_WEBSOCKET_URLS=ws://shenyu-admin:9095/websocket \
--net shenyu apache/shenyu-bootstrap
启动配置文件位置:shenyu-bootstrap/src/main/resources/application.yml
动态路由配置实战
配置步骤
- 访问管理后台:http://localhost:9095 (默认账号密码:admin/123456)
- 进入插件管理启用
divide插件 - 添加路由规则:
{
"pluginName": "divide",
"selectorHandler": "[{\"upstreamUrl\":\"127.0.0.1:8080\"}]",
"conditionDataList": [{
"paramType": "uri",
"operator": "match",
"paramValue": "/**"
}]
}
路由配置API文档:shenyu-plugin/divide/
验证路由
curl http://localhost:9195/helloworld -H "localKey: 123456"
预期响应:
{
"name": "Shenyu",
"data": "hello world"
}
核心功能插件
| 插件类型 | 功能说明 | 源码路径 |
|---|---|---|
| 安全防护 | JWT认证、签名验证、WAF防护 | shenyu-plugin-security/ |
| 流量控制 | 限流、熔断、负载均衡 | shenyu-plugin-fault-tolerance/ |
| 可观测性 | 日志收集、指标监控 | shenyu-plugin-logging/ |
| AI增强 | 智能路由、请求转换 | shenyu-plugin-ai/ |
进阶使用指南
数据同步策略
Shenyu支持多种配置同步方式:
- WebSocket (默认):实时推送配置变更
- ZooKeeper:适合分布式部署
- Nacos:云原生环境首选
同步配置源码:shenyu-sync-data-center/
自定义插件开发
- 创建插件类继承
AbstractShenyuPlugin - 实现
doExecute方法处理请求 - 注册插件:自定义插件文档
总结与资源
通过本文你已掌握Shenyu网关的核心能力。更多高级功能:
- 官方文档:README.md
- 示例项目:shenyu-examples/
- 插件开发:shenyu-plugin-api/
🔔 点赞收藏本文,关注获取《Shenyu性能优化实战》下期内容!遇到问题可查阅RELEASE-NOTES.md或提交issue。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



