背景:
自从上次立了一个flag(以后要如何更好地输出博客)后,到今天居然快整整一年没写过博客了!这flag实在威力太大…[捂脸]
2020年我们经历了新冠病毒这个黑天鹅事件,我也离开了呆了两年半的前东家,跳槽到了一家我还比较满意的互联网公司,对自己的职业生涯规划有了新的思考,同时也更深刻认识到了自己的不足,需要我去弥补追赶的还有好多好多…(针对这个我有空可以写一篇博客分享 ~)
作为曾经萌生过转产品念头的佛系技术人,我越发坚定了在技术道路上继续探索下去的决心,从今天开始我准备重操旧业,开始输出博客!最近在和一群小伙伴一起学习soul网关,就把这个当成2021年的第一个系列博客吧 ~
一、基本介绍
soul是一个基于WebFlux实现的响应式API网关,具有异步、高性能、跨语言等特点。
官网:https://dromara.org/zh-cn/docs/soul/soul.html
名称由来:
作者希望能够有一样东西像灵魂一样,保护我们的的微服务~
实现参考:
soul的实现参考了Kong、Spring-Cloud-Gateway等优秀的网关,诞生在巨人的肩膀上。
特性:
- 支持各种语言(http协议),支持 dubbo,springcloud协议。
- 插件化设计思想,插件热插拔,易扩展。
- 灵活的流量筛选,能满足各种流量控制。
- 内置丰富的插件支持,鉴权,限流,熔断,防火墙等等。
- 流量配置动态化,性能极高,网关消耗在 1~2ms。
- 支持集群部署,支持 A/B Test, 蓝绿发布。
架构图:
二、代码编译
GitHub地址:https://github.com/dromara/soul
注意,如果从GitHub clone速度较慢,可以使用chrome插件加速: