概述
通过之前几篇文章的梳理,soul网关的主线逻辑已经清晰了,核心的功能逻辑在各个plugin中,流程逻辑在soul-web中。soul-web就是网关业务的实际执行者,下面我们来看看该项目中还有哪些我们没注意到的功能。
加强彼此联系,努力实现盖娅星系!
本文主要分析soul中SoulWebHandler
的源码。该类实现了webHandler接口,替代了webFlux默认的DispatcherHandler
负责全部流量的处理。可以说SoulWebHandler
是soul处理流量的入口,体现了soul实现网关的核心思路。剧透核心思路就是挨个调用启动的插件,遍历插件配置,看流量是否匹配,如果匹配则根据配置执行插件逻辑。
插件大体可以分为路由插件和业务插件,路由插件负责将请求转发到正确的下游服务上,业务插件负责执行网关的通用业务逻辑,比如限流、鉴权等。流量必须在路由插件中配置才能正确转发,而业务插件不是必配的。每个插件都是单独针对全部流量配置筛选和使用规则,所以配置可以很灵活。