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