通过一段时间的Soul网关的接触,总结了一些我认为Soul网关存在的优势
使用上
- 使用界面化的方式实现的属性配置,极大的降低了网关的使用难度,相比Springcloud gateway使用容易很多
- 插件化的配置,使得稍有基础的开发人员很容易集成与网关相关的基础组件。同时可以自定义一些组件,接入到当前的Soul网关插件中
- 对于SpringBoot的使用,所有现有插件以starter方式提供,
- 在插件属性的配置上,将以往各种限流熔断组件配置文件或注解的方式替换为界面配置的方式,简单易用。而且实现了零代码侵入性。仅仅需要在客户端增加接口注解而已
- 通过开闭原则等规范,使得各个插件或规则的卸载达到统一
- 灵活多样的数据同步方式,针对不同的场景使用不同的数据同步
技术上
- 各种设计模式的使用,包括责任链模式,观察者模式,模板方法模式,策略模式,简单工厂模式,门面模式等等各种设计模式的融合运用,让人感受到网关的设计之精妙
- 各种插件的集成流程上,遵循了统一的原则,为开发者自定义其他插件提供了范本。也为我们自己写代码注重代码规范提供了参考
- 使用了响应式编程,提升了性能的同时,也紧跟着技术发展趋势。
- 完善的分层架构,针对不同的使用方面,区分了不同的层面,且一个模块只干一件事情。充分体现了单一职责原则。
- 对于语言新特性框架新特性的使用,例如ObjectProvider等功能的使用
- 对于功能模块配置的划分以及精确,区分选择器和规则元数据等对不同的变化执行不同的操作。且实现了增量和全量同步,充分的考虑了性能要求和功能要求
- 对一些其他优秀中间件和开源框架特性的综合运用,例如泛化调用,SPI,异步编程,
目前存在的问题
- 文档的版本和全面性有待提高
- 目前关于高可用高并发相关方面的案例还不够多
期望
- 希望后续能在工作中对Soul网关进行综合运用
- 能多使用soul集成的插件使用,前期学习中对很多插件缺乏了解,导致只能简单分析下流程
欢迎搜索关注本人与朋友共同开发的微信面经小程序【大厂面试助手】和公众号【微瞰技术】,以及总结的分类面试题https://github.com/zhendiao/JavaInterview