1 Star 0 Fork 992

福建软件开发公司 / soul

forked from Apache ShenYu / shenyu 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README_CN.md 11.80 KB
一键复制 编辑 原始数据 按行查看 历史
nuo-promise 提交于 2021-03-29 15:12 . add who use soul (#1208)

可扩展,高性能,响应式的 API 网关

https://dromara.org/

English | 简体中文

gitee stars github forks github stars github contributors



架构


结构图


模块

  • soul-admin : 插件和其他信息配置的管理后台

  • soul-bootstrap : 用于启动项目,用户可以参考

  • soul-client : 用户可以使用 Spring MVC,Dubbo,Spring Cloud 快速访问

  • soul-disruptor : 基于disruptor的封装

  • soul-register-center : 为soul-client提供各种rpc接入注册中心的支持

  • soul-common : 框架的通用类

  • soul-dist : 构建项目

  • soul-metrics : prometheus(普罗米修斯)实现的 metrics

  • soul-plugin : Soul 支持的插件集合

  • soul-spi : 定义 Soul spi

  • soul-spring-boot-starter : 支持 spring boot starter

  • soul-sync-data-center : 提供 ZooKeeper,HTTP,WebSocket,Nacos 的方式同步数据

  • soul-examples : RPC 示例项目

  • soul-web : 包括插件、请求路由和转发等的核心处理包


功能特点

  • 提供了诸如限流、熔断、转发 、重写、重定向、和路由监控等插件;
  • 支持 HTTP、RESTFul、WebSocket、Dubbo、 GRPC、 Tars、 Spring Cloud 代理;
  • 支持热插拔,用户可以定制化开发;
  • 为了灵活的适配,选择器和规则可以动态的适配;
  • 支持集群部署;
  • 支持 A/B 测试和灰度发布。

插件

无论请求何时进入,Soul 会通过响应链执行所有已打开的插件。

插件是 Soul 的灵魂,并且插件也是可扩展和热插拔的。

不同的插件实现不同的功能。

当然,用户也可以定制化插件去满足他们自己的需求。

如果你有定制化插件的需求,请参看这里:custom-plugin


选择器和规则

选择器和规则会根据 HTTP 的请求头来路由你的请求。

选择器是你的第一个路由,它是粗粒度的,举个例子,模块级别。

规则是你的第二个路由,即你认为你的请求应该做什么,举个例子,模块中的方法级别。

选择器和规则只匹配一次,然后返回匹配。因此,最粗粒度应排在最后。


数据缓存 & 数据同步

所有的数据都被缓存在 JVM 的 ConcurrentHashMap 中,所以它非常快。

当用户在后台界面改变配置信息时,Soul 通过监听 ZooKeeper node,WebSocket push,HTTP longPull 来动态更新缓存。


必要条件

  • JDK 1.8+

关于

Soul 已在我们的生产环境中使用,它的性能和灵活性使我们用起来非常方便。

在双 11 中,我们部署了 6 个集群,这些集群支持了我们的大量业务。


文档& 网站

EN doc CN doc


Github stars趋势

Stargazers over time


Gitee stars趋势

Giteye chart


目前已知用户

为了便于登记,欢迎已经使用了 Soul 的公司在 https://github.com/Dromara/soul/issues/68 注册。(仅适用于开源用户)

yy mihoyo kk group shansong
sibu group guojiadianwang caibeike jiangsuyonggang
fangfutong lixiang kaipuyun songda
aoyou cheyipai caomao zuyun
hezhi qidianyun wanwei wuyiyuntong
haokangzaijia caissa deepBule anka
jd minglamp webuy cass
songguo lianlian dasouche weimai

#贡献者列表

Soul 遵循 Apache-2.0 开源协议,欢迎大家提交 PRIssue

如果要为项目做出贡献,请查看 贡献指南

感谢每一位为 Soul 贡献代码的朋友。

Giteye chart

支持

微信公众号 QQ 交流群 芋道源码 JetBrains
微信公众号 QQ 交流群 芋道源码 JetBrains
Java
1
https://gitee.com/longweier/soul.git
git@gitee.com:longweier/soul.git
longweier
soul
soul
master

搜索帮助