Apache ShenYu

Apache ShenYu 是一个 Java 原生 API 网关,用于服务代理、协议转换和 API 治理。「Apache ShenYu is a Java native API Gateway for service proxy, protocol conversion and API governance.」

Github星跟踪图

Soul

这是一个异步的,高性能的,跨语言的,响应式的API网关。我希望能够有一样东西像灵魂一样,保护您的微服务。参考了Kong,Spring-Cloud-Gateway等优秀的网关后,站在巨人的肩膀上,Soul由此诞生!

Features

  • 支持各种语言,无缝集成Dubbo,SpringCloud。
  • 丰富的插件支持,鉴权,限流,熔断,防火墙等等。
  • 网关多种规则动态配置,支持各种策略配置。
  • 插件热插拔,易扩展。
  • 支持集群部署,支持A/B Test。

架构图

Prerequisite

  • JDK 1.8+

  • Maven 3.2.x

  • Git

  • mysql

原文:https://dromara.org/zh-cn/docs/soul/soul.html

主要指标

概览
名称与所有者apache/shenyu
主编程语言Java
编程语言Java (语言数: 10)
平台Linux, Mac, Unix-like, Windows
许可证Apache License 2.0
所有者活动
创建于2018-07-11 08:17:45
推送于2025-06-17 08:03:08
最后一次提交2025-06-17 14:41:05
发布数17
最新版本名称v2.7.0.1 (发布于 2025-04-24 19:33:06)
第一版名称1.0.2 (发布于 )
用户参与
星数8.6k
关注者数294
派生数3k
提交数3.6k
已启用问题?
问题数2367
打开的问题数112
拉请求数3056
打开的拉请求数14
关闭的拉请求数588
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?

Soul

Codacy Badge
Total lines
License
Maven Central
QQ群

Reactive gateway based on webflux

Architecture

Execution Flow

Modules

  • soul-admin : Plug-in and other information configuration management background

  • soul-bootstrap : With the startup project, users can refer to

  • soul-common : Framework common class

  • soul-configuration : zookeeper configuration project

  • soul-spring-boot-starter : Support for the spring boot starter

  • soul-web : Core processing packages include plug-ins, request routing and forwarding, and so on

  • soul-client : User fast access, automatic new metadata, rule selector

  • soul-extend-demo : Demo of the extension point

  • soul-test : the rpc test project

Features

  • It provides plugins such as current limiting, fusing, forwarding, routing monitoring and so on.

  • Seamless docking with HTTP,Restful,websocket,dubbo and springcloud.

  • Plug-in hot plug, users can customize the development.

  • Selectors and rules are dynamically configured for flexible matching.

  • Support for cluster deployment.

  • Support A/B test and grayscale publishing。

Plugin

Whenever a request comes in ,Soul Execute all open plug-ins through the chain of responsibility.

Plugins are the heart of soul And plug-ins are extensible and hot-pluggable.

Different plug-ins do different things

Of course, users can also customize plug-ins to meet their own needs.

If you want to customize, see plugin-extend

Selector & rule

According to your HTTP request headers, selectors and rules are used to route your requests.

Selector is your first route, It is coarser grained, for example, at the module level.

Rule is your second route and what do you think your request should do,For example a method level in a module.

The selector and the rule match only once, and the match is returned. So the coarsest granularity should be sorted last.

Data Caching & Data Sync

All data is cached ConcurrentHashMap in the JVM So it's very fast.

When the user is managing changes in the background,

Soul dynamically updates the cache by listening to the zookeeper node, websocket push,http longPull.

Data Sync

Sync Flow

Quick Start

  • get soul-admin.jar
> wget  https://yu199195.github.io/jar/soul-admin.jar
  • start soul-admin.jar
> java -jar soul-admin.jar --spring.datasource.url="jdbc:mysql://your ip:3306/soul?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&failOverReadOnly=false&autoReconnect=true&useSSL=false"  
  --spring.datasource.username="you username"  --spring.datasource.password="you password"
  • visit : http://localhost:9095/index.html username:admin password :123456

  • get soul-bootstrap.jar

> wget  https://yu199195.github.io/jar/soul-bootstrap.jar
  • start soul-bootstrap.jar
 java -jar soul-bootstrap.jar

Prerequisite

  • JDK 1.8+

  • Mysql

About & Document

Soul Has been used in our production environment,Its performance and flexibility allow us to use up very cool.

In double 11, we deployed 6 clusters, which supported a large volume of our business.

If you want to use it, you can see Document

Stargazers over time

Stargazers over time

Videos

Known Users

按照登记顺序排序,更多接入公司,欢迎在https://github.com/Dromara/soul/issues/68登记(仅供开源用户参考)

Support