Factorio 中的 SOA:面向服务架构与单体架构基准对比
面向服务架构(SOA)将单体应用拆分成独立服务,通过企业服务总线(ESB)连接。在 Factorio 中,这可以用一条中央双向传送带总线来模拟,它将资源分发到专业的生产分支。与单体架构相比,SOA 一开始复杂度就很高,但能释放出巨大的扩展潜力。
总线负责所有路由:接收服务的请求,重定向资源,并交付结果。服务间绝不直接通信,只能通过总线,就像标准化协议一样。发电厂从总线起点接入,直接从中抽取燃料。液体通过管道流动,原材料则双向通过传送带运输。
实施计划与早期挑战
初始布局:总线向右和向上扩展,生产分支向下垂挂。垂直扩展非常轻松——复制区域时不会混淆逻辑。
关键游戏适配:
- 传送带充当本地节点的插槽。
- 火车仅用于入站用户(网络)。
- 每个产品专用分支(绿电路、齿轮)。
- 双向总线支持反向流动(核燃料回送发电厂)。
挑战:
- 维护总线耗费大量人力时长。
- 总线宽度导致空间限制。
- 垂直扩展需提前预留空间。
从矿山启动小型单体工厂生产建材——MVP 风格,无论何种架构都不可避免。
试点运行:建设和扩展
基础搭建(传送带、装配机、插入器)后,接入冶炼和发电。齿轮和红电路区向下扩展,总线向右拉长。黄带满足需求,无短缺,与单体不同。
早期障碍:
- 初始矿山耗尽前无火车——临时传送路径作为轻载 alpha 测试。
- 虫子防御优先(墙、炮塔、黑手雷),延误产品进度。
- 总线扩展超出视野——雷达全局查看。
- 通道负载不足:宽流中稀疏物品。
- 湖泊挡路——填海造陆。
总线铺设和维护耗时巨大,凸显现实 SOA 痛点:规模扩大时 ESB 复杂度飙升。分支与总线的通信模拟团队协调会议。
中期指标:SOA 与单体对比
SOA 在吞吐量上大放异彩:黄电路生产喂饱总线和工厂,单体则频频短缺。扩展更简单——直接在总线旁加区,无需重构。
但启动较慢:试点运行需多游戏日,且未全员上线。虫子和资源分散核心逻辑焦点,类似预算压力。
垂直分支复制(服务扩展)效果拔群——分支间距是关键。
关键收获
- 总线是瓶颈:服务增多时路由逻辑膨胀,易崩溃。
- 独立服务便于更新,但需严格标准。
- 在 Factorio 中,SOA 吞吐胜出,空间和建造时间落后。
- 小型单体起步是任何架构的 MVP。
- 双向流动对模拟真实性至关重要(燃料循环)。
— Editorial Team
暂无评论。