Skip to content

Latest commit

 

History

History
244 lines (177 loc) · 10.1 KB

README_CN.md

File metadata and controls

244 lines (177 loc) · 10.1 KB

可扩展,高性能,响应式的 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-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 和 Spring Cloud 无缝对接;
  • 支持热插拔,用户可以定制化开发;
  • 为了灵活的适配,选择器和规则可以动态的适配;
  • 支持集群部署;
  • 支持 A/B 测试和灰度发布。

插件

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

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

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

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

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


选择器和规则

选择器和规则会根据 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


目前已知用户

为了便于登记,欢迎已经使用了 Soul 的公司在 apache#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

支持

微信公众号 QQ 交流群 芋道源码
微信公众号 QQ 交流群 芋道源码