{"code":200, "message ": "成功!","data" :"helloWorld!"}
但是,在运用 soul
网关对你的业务系统进行调用的时候,你的业务系统可能定义的结果并不是上述结构,可能你的 字段叫msg
,这样就会造成结构不一样,给前端处理带来了困扰 。我们注意到了这个事情 :https://github.com/Dromara/soul/issues/109 , 现在已经优化,用户可以定制化的来定义返回结果,具体的要看soul
文档 。
说了这么多,吹了这么多牛逼,那么我们来看看 soul网关到底可以在什么场景下能发挥大作用 。
后台管理web
首先随便微服务的流行,我们的后台都划分成很多的微服务,我相信你们每个公司都有一个后台管理系统吧,如果我没猜错的话,他们大体上是如下架构 。
文章插图
很简单对吧,就是有个运营管理平台的web项目,去调用每个微服务,来进行后台的查看等等 。随着你们业务需要的加大,可能这里需要调用的微服务越来越多,你的
controller
越来越多,现在比如你修改了 商品模块的 接口,你要发版会造成所有其他的模块也操作不了(就是你发版影响了其他模块的使用,别杠这里只是比方,不要整蓝绿发版啥的,明白意思吧) 。如果有运营人员在操作其他模块,会不会吐槽你?
假如你是公司架构师,我说的是假如,那么你要怎么解决这个问题呢?当然,我们把这样一个大的web系统,拆分成很多小web系统,单独的进行发布,但是这样会引入一个问题,怎么统一登陆,鉴权?(很多后台管理系统还有权限的划分),这个时候,
soul
网关 就能发挥重要的作用了,下面我只是列举了一下简单的调用图 。文章插图
这样多方便,集成了网关,每个微服务注册到网关,网关根据路由规则来进行调用 。自动发现服务,连运维配置 Nginx的工作都省了,把运维的工资给你,美滋滋 。
公司入口网关(开放平台)
如果一个公司要做开放平台或者入口网关,鉴权,限流,监控,熔断肯定少不了 。
如果贵公司是dubbo体系,开发人员写了dubbo服务后,还要傻乎乎的新增一个web项目,来提供接口给别人调用吗?
如果一个接口被攻击,你怎么处理呢?如果被大流量攻击,你怎么处理呢?
不巧,
soul
在设计之初就是来干这种事情的,我们来看一下整体的架构图 。文章插图
零零总总还有很多其他功能
- 比如支持
websocket
代理 。
- 比如支持文件上传下载 。
- 比如你可以自定义的开发你的插件啊 。
最后最后
- github地址 :https://github.com/Dromara/soul
- gitee地址 :https://gitee.com/shuaiqiyu/soul
- 文档:https://dromara.org/zh-cn/docs/soul/soul.html
- 最后 3.0 已经在进行开源了,3.0是经历过2年双11大并发场景验证过的,现在一步一步将它开源出来,希望给大家带来帮助.
【Java 界最好的 API 网关 Soul】
推荐阅读
- 使用 Java 持久化 API
- Jenkins安装并部署Java项目完整流程
- 最好的养生运动有哪些呢
- 哪个交友软件可以约到附近人 有什么好的交友软件可以约会到附近人
- 选好的机油如何更换?如果条件允许,你自己也可以换机油
- 如何跳绳能减肥达到更好的效果呢
- 如何通过跳绳减肥达到更好的效果呢
- 洗面奶|国货什么洗面奶好用 国内口碑最好的洗面奶排行榜
- 世界最恐怖的恐怖分子是谁 世界上最大的恐怖分子
- Java如何实现QQ第三方登录