本文将以技术调研模式编写,非技术同学可跳过。
背景
基于组件(插件)模式设计构建的入口服务实现中,使用 Go 原生包 plugin 的时候,会存在功能缺陷问题,不足以支撑预期能力;在使用 go-plugin 开源包的时候,虽然功能缺陷得到了弥补,但丧失了部分的性能(组件与主程序通信成本)。
详细见上文 千万级入口服务[Gateway]框架设计(一)
详细见上上文 千万级入口服务[Gateway]框架设计(一)
本文将介绍另一种基于 “分层” 、“管道” 的架构模式。
分层
分层的思路,从你开始学习计算机就见到了。计算机结构 ”冯诺伊曼“ 模型、数据库/Linux 内核结构,等等。可以说 “分层” 是对复杂性问题拆解,化繁为简的主要且有效的思路。
将业务逻辑进行上层抽象,分别划分为几层,层级之间上下级依赖。但需要注意的是,对于业务抽象控制粒度越细,实现成本也就会越大;并且如果业务的调用关系是动态的,抽象层多会导致整体复杂度上升,量级变重;后续业务通信无充分了解抽象分层结构的情况下&#