架构师训练营 - 第⑩周命题作业
根据微服务框架 Dubbo 的架构图,画出 Dubbo 进行一次微服务调用的时序图。
关于微服务架构(中台架构、领域驱动设计、组件设计原则),你有什么样的思考和认识?
随着应用功能的增加,应用的体积不断变大,开发、部署、运维变得越来越困难,应用的稳定性与应用大小成反比,应用的拆分就是必然趋势。
微服务就是一种拆分方式,通过微服务我们可以避免上述问题,技术选型更灵活多样,运行的实例数目每个微服务可灵活配置。单个微服务宕机,影响范围有限。微服务也带来了分布式事务的问题。
微服务需要从大应用拆分,每个微服务的职责范围如何划分就是重点和难点。传统的基于需求开发过程,只有需求分析,没有真正的设计,系统没有一个统一的领域模型维护其内在逻辑一致性。这个时候我们可以借用DDD的思维,在战略层面进行规划,明确每个微服务的功能边界。DDD在战术层面的实施上仍有较大争议,如实体、值对象、聚合、CQRS、事件溯源等并不建议强制使用。
组件设计原则主要是内聚和耦合两方面,内聚原则包含复用发布、共同封闭、共同修改;耦合包含避免无限循环、稳定依赖和稳定抽象。组件设计还需要考虑技术以外的因素
评论