知识卡片

点对点接口数量随系统数平方增长

专业/工作

内容

如果n个系统两两之间都要直接交换信息,需要的接口数量是n(n-1)/2——3个系统要3个接口,4个系统要6个,10个系统就要45个。系统数量线性增长,接口维护成本却是平方级增长:任何一个系统改了接口定义,就要连带重新设计、编码、测试、部署另外n-1个接口,很快就会成为变更的阻力。解法是引入集成hub(或消息总线):每个系统只对接一次hub,由hub统一负责路由、弹性、发布订阅等能力,代价是hub本身会变成单点故障和可伸缩性瓶颈,且它的变更节奏会拖慢所有接入方。这是”该不该引入中间层”这个通用问题在系统集成场景下的具体版本。

参考来源

《软件系统架构:使用视点和视角与利益相关者合作》第18章《信息视点》