内容提要
本文以连锁餐饮数字化系统为例,科普SOA架构。文章指出,SOA思想是按业务能力切分系统、各守数据、对等协作,虽ESB等旧装备已淘汰,但思想仍存于“民间SOA”。微服务是SOA在系统内部的延伸,架构无先进落后,只有匹配与否。最后强调,理解系统在谱系中的位置比追逐新名词更重要。
延伸解读
SOA 思想为何“阴魂不散”
文章指出,SOA 的“死”是装备(ESB、SOAP、XML)的淘汰,而非思想。其核心——按业务能力切分、各守数据、对等协作——依然普遍存在于现代系统中,只是不再自称 SOA。这种“民间 SOA”以点对点 API 和 MQ 实现,轻量且实用。理解这一点,有助于避免因名词过时而忽视其架构本质。
单体、SOA、微服务:不同粒度的问题
文章强调,单体与微服务讨论的是“系统内部如何组织”,而 SOA 讨论的是“多个系统如何协作”。微服务本质上是 SOA 思想在系统内部的延伸。因此,评估架构时应区分层级:公司层面看系统间协作,系统内部看拆分粒度。混淆层级会导致错误判断,例如将“非微服务”等同于“落后”。
拆分的判据:变更频率与资源需求
针对何时拆分微服务,文章给出具体判据:当某个模块的变更频率或资源需求明显偏离其他模块时,可考虑独立。例如秒杀发券流量是其他模块的几十倍,就应优先拆分。这避免了盲目追求微服务,强调架构匹配团队规模与业务需求,而非追逐新名词。
Q&A
什么是SOA架构?
SOA(面向服务的架构)是一种将系统按业务能力切分为多个大系统,每个系统管理自己的数据和业务,系统之间通过接口(API)和消息(MQ)进行对等协作的架构风格。
为什么说SOA已经过时了?
SOA的过时主要指的是其传统装备如ESB(企业服务总线)、SOAP、WSDL等笨重且昂贵,已被淘汰。但SOA的思想——按业务能力切分系统、对等协作——仍然广泛存在,只是不再自称SOA,而是以微服务、中台、API-first等形式延续。
什么是“民间SOA”?
“民间SOA”是指没有使用ESB等传统重型装备,而是采用点对点API直连和消息队列(MQ)来实现SOA思想的架构形态。它思想上是SOA,但装备更轻量、更实用,在现实中非常普遍。
单体、SOA和微服务有什么区别?
单体和微服务关注的是单个系统内部的组织方式,而SOA关注的是多个系统之间的协作方式。微服务本质上是将SOA的思想下沉到系统内部,切分得更细、部署更独立。三者不是进化链,而是不同粒度的架构选择。
什么时候应该拆分微服务?
当某个模块的变更频率或资源需求明显偏离其他模块时,可以考虑将其独立为微服务。例如,秒杀发券模块流量是其他模块的几十倍,就应该优先拆分。团队规模小、业务复杂度不高时,不拆微服务也是合理的。
SOA思想在现代架构中如何体现?
SOA思想体现在微服务、中台、API-first、平台工程以及MCP协议等现代实践中。它们都将能力封装为服务,供其他系统或AI调用,本质上是SOA思想的延续和演变。