知识卡片
单体优先与混合架构风格
内容
Martin Fowler认为无法一开始就确定稳定的微服务边界,且边界不合理时重构难度远大于单体,故建议单体优先——先用单体探索复杂度、确定组件边界,待复杂度证明微服务必要性时再拆。一种折中是把微服务粒度设计得更粗,服务内部用上下文边界控制代码模型、上下文间进程内通信,形成糅合单体与微服务的混合架构,此时微服务粒度反而粗于上下文粒度。发散:这解释了为何二者无法确定稳定映射——它随演进阶段在”细于”和”粗于”间摆动。
参考来源
- 位置:《解构领域驱动设计》第18章《领域驱动设计的战略考量》18.1.3(源文件:_epub-src/OEBPS/031.xhtml)
- 结论依据:原文引Fowler的单体优先主张,并提出粗粒度微服务内保留上下文边界的混合架构,说明此时微服务粒度粗于上下文。
- 原始内容:Fowler建议应该单体架构优先……微服务的粒度又粗于限界上下文的粒度了……这正是软件设计棘手之处,却也是它的魅力所在。