极客大学架构师训练营 0 期 week 10 作业
1.根据微服务框架 Dubbo 的架构图,画出 Dubbo 进行一次微服务调用的时序图。
2.关于微服务架构(中台架构、领域驱动设计、组件设计原则),你有什么样的思考和认识?
DDD可以指导大型服务的微服务化,DDD 强调领域模型和微服务设计的一体性,先有领域模型然后才有微服务,而不是脱离领域模型来谈微服务设计。
作为中台,需要将通用的可复用的业务能力沉淀到中台业务模型,实现企业级能力复用。因此中台面临的首要问题就是中台领域模型的重构。而中台落地时,依然会面临微服务设计和拆分的问题。
中台本质是业务模型,微服务是业务模型的系统落地,DDD 是一种设计思想,它可以同时指导中台业务建模和微服务设计,它们之间就是这样的一个铁三角关系。DDD 强调领域模型和微服务设计的一体性,先有领域模型然后才有微服务,而不是脱离领域模型来谈微服务设计。
DDD和微服务其实都是从业务领域出发,将大的业务领域分解为小的子域,完成领域建模,用领域模型指导微服务设计和落地。两者都是采用分而治之的策略来降低业务领域认识和软件产品建设的复杂度。
领域驱动设计在领域建模的过程中最关键的就是完成了业务边界的划分,这个边界包括领域模型之间的边界,同时也包含了领域模型内部聚合之间的边界,有了这个边界就可以设计出高内聚低耦合的微服务。这是DDD战略设计阶段的关键内容。
而在DDD战术设计阶段,用DDD的分层架构实现微服务内各层之间解耦,很好的降低各层之间的依赖。在发生变化时,可以降低各层之间相互影响,保证各层模型的稳定。
评论