组网

关注公众号 jb51net

关闭
网络 > 组网 >

Soul Api网关功能需求技术选型分析

kl

前言

最近公司中台api有用到网关的需求,特整理了下网关的基本功能以及Soul网关系统的功能架构设计,记录于此。最终选择了Soul网关系统还是因为其架构设计清晰,基于spring boot而且提供了Admin管理后台,而且底层使用spring webflux响应式编程,基于zk的本地缓存设计支持分布式多实例部署,性能问题就不无需多虑了

网关有哪些功能需求?

网关需求

业务需求

关于Soul网关

What is the Soul?

这是一个异步的,高性能的,跨语言的,响应式的API网关。参考了Kong,Spring-Cloud-Gateway等优秀的网关后,站在巨人的肩膀上,Soul由此诞生!

Features

架构图

选择Soul网关

架构清晰

Soul网关开源项目架构清晰,参考借鉴了Kong,Spring-Cloud-Gateway等优秀的网关设计,基础架构框架使用spring boot构建。在技术架构上采用了zookeeper+mysql作为元数据存储中心以支持分布式部署,通过zk节点监听机制,动态的维护了本地缓存信息,用以提高网关系统的并发度。在功能架构上分为Admin管理模块和Server服务提供模块,功能职责分离。

插件化&规则选择器设计

Soul提供了完整的插件化功能,目前在自带的插件列表中已经包含了WAF、签名、限流等常用的插件,而且像上面提到的白名单功能,实现一个白名单功能插件很简单,只需要实现一个接口或者抽象类即可。基于规则选择器的设计可以实现非常细粒度的路由控制,而且非常的灵活

基本功能全面

Soul除了基本的网关鉴权路由功能外,还提供了包括限流,URL重写,dubbo路由,spring Cloud路由,请求监控等功能,最重要的是还提供了一个前后端分离架构的Admin管理后台应用,用来管理基础的元数据信息。

码云GVP项目

Soul项目已经是码云GVP俱乐部项目,同时,作者对分布式事务也很有研究,不仅参与了TX-LCN的建设,而且自己还开源了多个分布式事务框架均已加入了GVP俱乐部。作者一直活跃在各大热门开源项目社区,我们曾就TX-LCN和Klock有过交流,作者是个技术非常牛逼的人, Soul值得一试。

结语       

综上:最重要的一点是Soul基于spring boot构建,架构清晰,插件&规则选择器等设计,非常方便进行业务集成和二次开发。目前Soul网关在生产上使用的人还不多,体验使用下来小问题还是有一些的,不过这都不重要。选择一个开源的项目自主可控是最关键的一点,出现任何问题都能hold住就行了。

以上就是Soul Api网关功能需求技术选型分析的详细内容,更多关于Soul Api网关技术选型的资料请关注脚本之家其它相关文章!