Soul 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Soul 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Soul 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Soul 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Soul 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

Soul是什么? Soul 是一款高性能,响应式的网关。我在参考 Kong 的插件设计思想,高性能的 webflux 后,开发而来。

Soul 架构设计

执行流程图

Soul 功能:

  • 支持各种语言,无缝集成Dubbo,SpringCloud,以及http服务。

  • 丰富的插件支持,监控,鉴权,限流,熔断,代理,防火墙等等。

  • 网关多种规则动态配置,支持各种策略配置。

  • 插件热插拔,易扩展。

  • 支持集群部署,支持A/B Test。

  • 当然也有很多其他的功能,就不一一说了。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (12)

加载中
是否可以理解为一个比传统VRRP协议更好的多活通用网关协议栈
05/07 16:04
回复
举报
这个支持go写的后端接口吗?
2020/11/03 09:40
回复
举报
写的挺好的,我下个网关准备用这个,webflux的使用场景我感觉最好的体现就是网关。
2020/06/17 17:18
回复
举报
一般般。。
2020/06/17 17:12
回复
举报

引用来自“落舞者”的评论

图是用什么画的

引用来自“LarryYan”的评论

同样想知道
用的是在线作图工具 https://www.processon.com/i/5ab537ffe4b0a248b0e01047
2019/04/23 19:28
回复
举报
Java不适合做网关
2019/04/09 20:35
回复
举报
nginx吗 简单粗暴吗?
2019/09/27 17:02
回复
举报
Golang呀 稍微调教下轻松百万(乱猜的 不要打我
2019/09/27 17:03
回复
举报
个人能力问题,软件开发跟开发语言没有任何关系!!!
2019/12/08 16:28
回复
举报
按这个说法一切大概都是个人能力问题
2019/12/09 09:43
回复
举报

引用来自“落舞者”的评论

图是用什么画的
同样想知道
2019/04/09 15:55
回复
举报
图是用什么画的
2018/12/14 15:29
回复
举报
更多评论
发表了资讯
05/06 11:45

投票通过! Soul 网关将进入 Apache 基金会孵化器,并改名为 ShenYu 网关

Hi, Soul社区的所有朋友们 北京时间2021年5月3日,Dromara开源社区的Soul网关经过Apache Incubator的投票,正式步入Apache基金会孵化器。 根据投票结果,我们获得了10个约束性投票(binding votes)和7个无约束性投票(non-binding votes)的投票,全部持赞同意见,无弃权票和反对票,投票顺利通过。 随后,Soul网关项目将改名为 ShenYu。 名字的由来 ShenYu (神禹)是我们古代君王夏禹的尊称(后世也尊称大禹),为造福百姓,成功治...

13
13
发表了资讯
04/06 11:18

Soul 网关发布里程碑式的 2.3.0 版本,新增支持 GRPC、Tars、Sofa 协议

距离上一次发布长达半年之久,在这半年的时间里,我与我的社区小伙伴们,做了太多太多的事情。 完成了将近200 多次PR,发表了将近300 篇文章的源码解析,新增贡献者 120 多位,晋升了 7位committer,并且全部获得正版 jetbrains 全家桶。非常感谢他们,在他们的帮助下,我们完成了非常多非常多的功能。 soul-admin(dashboard) admin是整个网关的控制面板,掌管所有的流量,规则的匹配。 整合shior框架,完成了用户按钮级别的权...

14
29
发表于服务端专区
2020/06/17 16:31

Soul 网关发布 2.2.0,让高性能网关变得如此简单!

Soul发布全新的架构2.2.0版本 让网关变得如此简单 我们还是先来看看新增功能,然后再讲故事。 完全的插件化架构设计,插件热插拔。 完整支持dubbo所有版本,alibaba-dubbo ,apache-dubbo。 支持dubbo泛化调用,多参数,复杂参数接口。 增强monitor插件,移除influxdb支持,新增内存,CPU,QPS,TPS,响应迟延等metrics,支持接入Prometheus。 springCloud插件支持eureka与nacos二种注册中心。 waf插件增强,支持黑白名单,以及混...

13
53
2019/12/03 16:55

soul 2.1.0 发布,做 Java 界最好的 API-Gateway

soul网关发布2.1.0版本 (做java界最好的API-Gateway) 这是soul网关开源以来的最大的一次更新,收集了很多社区反馈的问题,进行了更新. 之前的文档不是很完善,使用成本较高,这里先说声抱歉,这一个版本中,同时更新了相关文档. 在这个版本中,提供 http,dubbo,springcloud等服务快速接入网关的功能. 在这个版本中一切都是可扩展的,具体的可以看开发者文档. 修护了很多问题,优化了很多性能,包括线程模型,异步模型等等. 新...

3
49
发表于服务端专区
2019/07/17 17:40

Soul 2.0 发布,高性能响应式网关

Soul网关发布2.0版本 数据同步方式移除了对zookeeper的强依赖,新增http长轮询以及websocket。 限流插件与监控插件的配置方式:由之前的yml里面配置,改为admin后台用户动态配置。 启用admin后台,自动执行sql脚步,用户无需要再手动创建数据库。 内置跨域解决方案。移除springboot健康检查。 修复RoundRobinLoadBalance的bug。 老用户升级指南 首先在plugin表中,新增了一个config字段。所以需要新增。执行以下脚步 ALTER T...

4
27
发表于服务端专区
2019/04/25 14:39

Soul 1.0.5 发布,基于 WebFlux 的 Reactive 网关

Soul关是一款基于webflux的Reactive网关, * 提供了http,restful,websocket,dubbo springcloud的无缝集成 * 提供了限流,熔断,路由等等插件。 * soul的插件是热插拔,并且用户是可以自定义自由扩展。 Soul发布1.0.5版本 新增websocket的支持与负载均衡 新增restful风格的支持 新增cors跨域支持 修护get请求中文参数乱码问题 新增websocket支持 首先我们来看ws访问soul网关路径 ws://localhost:8080/? module=ws&method=/bb...

3
34
发表于开发技能专区
2019/04/09 15:31

Soul 网关发布 1.0.4-RELEASE 版本

Soul网关发布1.0.4-RELEASE版本 修复在1.0.3版本的后台管理中,出现的bug。 配置信息序列化方式支持自定义扩展。默认的序列化方式由kroy 改为了java序列化方式。 dubbo框架支持的更改。 对dubbo用户使用的更改。 在以前的版本中(1.0.2 or 1.0.3),dubbo的参数是通过header头上传递,在1.0.4版本中是通过body传递 更新了相关的文档信息。 关于使用1.0.4版本的建议。 1.0.4 版本支持用户自定义插件开发,支持正则表达式的匹配。...

0
13
发表于开发技能专区
2019/04/04 10:55

Soul Api 网关发布 1.0.3-RELEASE 版本

Soul Api网关 发布1.0.3-RELEASE 版本 新增对用户自定义插件功能的快速开发。 新增正则表达式匹配方式。 新增对dubbo用户自定义参数转化支持。 修护本地缓存未及时刷新的bug。 管理后台优化,更加简单明了。 其他代码方式的优化。 Soul之前提供的功能 签名,转发,代理,熔断,限流等等系统自带的插件 支持dubbo用户,springcloud用户。零侵入方式的接入。 官网文档:https://dromara.org/website/zh-cn/docs/soul/soul.html g...

1
28
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
01/17 11:24

【Soul源码阅读】1.初识 Soul

无论我们学习什么东西之前,都要先搞清楚我们要学习的是什么,就像一些哲学思考先要给出清晰的定义,否则后面的一切都无从谈起。 从今天开始,我来和大家一起,学习一款非常优秀的开源网关项目 Soul。 Soul 是什么呢?先来看下官网作者的定义: 这是一个异步的,高性能的,跨语言的,响应式的API网关。我希望能够有一样东西像灵魂一样,保护您的微服务。参考了Kong,Spring-Cloud-Gateway等优秀的网关后,站在巨人的肩膀上,Soul由...

0
0
发表了博客
01/21 14:09

Soul学习笔记---运行 soul-examples-http(二)

今天准备跑下 soul 官方的 example,首先从 soul-examples-http 开始。这个 example,soul处理的是 http 请求,使用的插件是 divide。 刚开始 soul-examples-http下的 SoulTestHttpApplication没有运行选项,后来群里朋友提醒才知道,右键 soul-examples-http的 pom.xml,选择 add as maven project,就可以执行这个模块了。 可以看到,这个模块里, soul相关的配置主要有3个地方。 soul-example-http 引入的包 <dependency> ...

0
0
发表了博客
01/21 14:09

Soul学习笔记---运行 soul-examples-dubbo(三)

今天运行 soul-examples-dubbo,其实这里的配置可以参考官方文档,写的很详细。dubbo 默认使用 zookeeper 作为配置中心,当然也不一定非要使用 zookeeper,nacos 也可以,只要你在 soul-admin 修改下相关的配置即可。 我这次启动 soul-examples-dubbo 时,还是遇到不少问题的,首先是 zookeeper 的安装,就这个问题我都搞了三四个小时,按照网上的配置一直不成功,最后才发现是因为配置的 JAVA_HOME 路径里有空格,为了个小问题折...

0
0
发表了博客
2019/05/23 15:53

SOUL软件小结

soul 基于心灵的智能社交APP。功能是寻找最适合自己的灵魂伴侣 基于心灵测试给你智能匹配最简单的社交关系 匿名聊天软件一般都是没有机器人的,机器人一般不能对点聊很长时间 用户来源与动机 用户引流来源:小红书,抖音,快手,网易云等软件广告; 开始使用原因:寂寞无聊,被“灵魂交友”的宣传语所打动,需要找异性聊天,寻找树洞,练习聊天技巧 寻求一个陌生虚拟的环境,展示自己希望释放但现实无法释放的一面 用户画像 女生...

0
0
2020/04/01 11:54

soul网关监控插件

本篇主要讲解soul网关插件监控插件的使用 流程图: 技术方案 监控插件,使用influxdb来进行存储,使用前请你确保你正确的安装了influxdb。采用异步的disruptor进行保存。监控网关的调用请求,包括QPS,TPS,成功和失败数量等等相关信息。 以上为api文档的介绍,然后首先需要安装influxdb数据库。我采用的是在centos7下面安装的infulxdb数据库。 相关链接: influxdb数据库中文教程:https://legacy.gitbook.com/book/jasper-zhan...

0
0
发表了博客
01/21 14:09

Soul 学习笔记---soul 数据同步的浅显分析(四)

当我们在 soul-admin 更改 selector 或者 rule 时,数据是怎么同步到网关内存中的呢。 我们知道 soul 网关有四种数据同步的方式,http 长轮询,websocket,zookeeper,nacos,数据同步处理就是在这些 listener 里进行的,默认使用 websocket 同步。今天也主要是看 websocket 同步方式。 以更新 selector 为例,执行过程是在 publishEvent 方法。 这里使用 eventPublisher (也就是ApplicationEventPublisher,spring 自带的一种事...

0
0
发表了博客
02/01 09:25

【Soul源码阅读】15.soul-admin 与 soul-bootstrap 同步机制之 nacos 解析(下)

目录 1.准备 2.页面操作 3.跟踪源码 3.1 soul-admin 端 3.2 soul-bootstrap 端 上一篇讲到使用 nacos 同步策略,在项目启动时的同步机制,今天来看下在页面操作时,是怎么同步的。 1.准备 按照昨天的帖子(【Soul源码阅读】14.soul-admin 与 soul-bootstrap 同步机制之 nacos 解析(上)),把项目启动起来,soul-admin、soul-bootstrap 和 soul-examples-http 三个项目,当然还有依赖的 MySQL 和 nacos。 2.页面操作 我们以修改...

0
0
发表于开发技能专区
2019/06/11 00:00

Soul Api网关技术选型

前言 最近公司中台api有用到网关的需求,特整理了下网关的基本功能以及Soul网关系统的功能架构设计,记录于此。最终选择了Soul网关系统还是因为其架构设计清晰,基于spring boot而且提供了Admin管理后台,而且底层使用spring webflux响应式编程,基于zk的本地缓存设计支持分布式多实例部署,性能问题就不无需多虑了 网关有哪些功能需求? 网关需求 限流 :为了保护后端服务的稳定,不被恶意的流量洪峰压垮,需要在网关层面根据实...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
12 评论
184 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部