项目简介
Apache ShenYu是基于Java原生的API网关,提供服务代理、协议转换和API治理功能
Apache ShenYu is a Java native API Gateway for service proxy, protocol conversion and API governance.
智能解读
Apache ShenYu是一款基于Java开发的高性能、可扩展的API网关解决方案。它作为微服务架构中的统一流量入口,能够代理多种协议的后端服务,包括Dubbo、Spring Cloud、gRPC等,并实现协议之间的转换。该项目提供了强大的API治理能力,例如流量控制、熔断、安全认证(如OAuth 2.0、JWT)和全方位的可观测性支持。通过其可视化控制台,用户可以动态配置路由规则和权限。ShenYu采用插件化设计,支持功能热插拔,便于扩展和定制。它适用于需要统一管理、监控和保护大量微服务API的企业级场景,能够有效提升系统的稳定性、安全性与可维护性。
使用场景
适合需要统一管理多协议微服务、实现精细化API治理的中大型Java微服务架构。
多协议微服务统一接入
微服务架构中同时使用Dubbo、gRPC、Spring Cloud等多种通信协议,需要为前端提供统一的HTTP API入口。
使用ShenYu作为API网关,通过其内置的插件系统将Dubbo、gRPC等协议转换为HTTP协议,对外提供统一的RESTful API。
前端应用只需调用http://gateway/user-service/getUser,ShenYu会自动将请求路由到后端的Dubbo服务或gRPC服务。
API流量精细管控
需要针对不同API接口实施限流、熔断、权限控制等治理策略,但不想在每个微服务中重复实现。
在ShenYu网关层面配置RateLimiter、Hystrix、JWT等插件,集中管理所有API的访问控制和容错机制。
为支付接口配置每秒100次的限流,为查询接口配置OAuth2.0认证,所有配置通过Dashboard实时生效。
微服务可观测性统一
分布式系统中追踪请求链路、收集监控指标需要对接多个系统,开发维护成本高。
启用ShenYu的Tracing、Metrics、Logging插件,自动收集所有经过网关的请求数据,统一推送到监控系统。
一次用户请求经过网关到多个微服务,ShenYu自动生成完整的调用链TraceID,并记录响应时间、状态码等指标。
API动态路由管理
微服务上线、下线或版本更新时,需要动态调整路由规则而不重启网关。
通过ShenYu的Dashboard可视化配置Selector和Rule,支持热更新路由规则,配合数据同步机制实现动态路由。
新版本user-service v2上线后,在Dashboard中配置灰度规则,将10%流量路由到v2版本,其余流量仍走v1版本。
项目健康度
综合活跃度、人气、增长、社区、文档评估
项目信息
赞赏支持
如果本站对你有帮助,欢迎打赏支持
微信
支付宝
Widget 徽章
相关项目推荐
Snailclimb/JavaGuide
「Java学习+面试指南」涵盖大多数Java程序员需掌握的核心知识。备战Java面试,首选JavaGuide!
krahets/hello-algo
《Hello 算法》:动画图解、一键运行的数据结构与算法教程。支持 Python, Java, C++, C, C#, JS, Go, Swift, Rust, Ruby, Kotlin, TS, Dart 代码。简体版和繁体版同步更新,英文版翻译中
iluwatar/java-design-patterns
Java 实现的设计模式
spring-projects/spring-boot
Spring Boot 助您轻松创建基于 Spring 的生产级应用程序和服务
MisterBooo/LeetCodeAnimation
Demonstrate all the questions on LeetCode in the form of animation.(用动画的形式呈现解LeetCode题目的思路)
elastic/elasticsearch
免费开源的分布式 RESTful 搜索引擎
加载评论中...