架构师训练营 week10 - 学习总结

用户头像
devfan
关注
发布于: 2020 年 08 月 12 日

一、单体架构存在的问题

1、编译、部署困难

大的单体应用在部署和构建的时候,非常耗时,每次修改代码,build时间都非常长。如果一旦编译失败,又得重新来一次,整个过程非常耗时

2、代码分支管理困难

复用代码模块由多个团队共同维护修改,代码merge的时候总会发生冲突。发布merge等问题导致发版日工作到凌晨。

3、数据库连接耗尽

大规模的服务集群将需要在数据库上创建数千个连接,数据库服务器上,每个连接都会占用一些昂贵的系统资源,以至于数据库缺乏足够的系统资源进行一般的数据库操作,到时数据库查询访问响应慢,或者无法对外提供服务。

4、新增业务困难

增加新业务,维护旧功能,非常困难,导致员工加班加点赶新需求,经常出故障,新产品迟迟不能上线

二、微服务架构的技术点

服务的注册与发现、身份验证与授权、服务的伸缩控制、反向代理与负载均衡、路由控制、流量切换、日志管理、性能度量监控和优化、分布式跟踪、过载保护、服务降级、服务部署与版本升级策略支持、异常处理。关键点如下图:



三、领域驱动设计DDD



领域模型:(就是面向对象)

按照面向对象的思维设计类,每个类中有成员变量和方法,自己对自己进行计算。



贫血模型:

  • Service, Dao这些对象只有方法,没有数值成员变量,而方法调用时传递的数值对象,没有方法。



充血模型:

  • 领域模型是合并了行为和数据的领域的对象模型。通过领域模型对象的交互完成业务逻辑的实现。设计好了领域模型对象,也就设计好了业务逻辑实现。



领域是一个组织所做的事情以及其所包含的一切, 通常做法是把整个领域拆分成多个子域。DDD就是从领域模型出发,分析领域内模型及其关系,进而进行软件设计的方法。



DDD战略设计:领域,子域,界限上下文,上下文映射图。

DDD战术设计:实体,值对象,聚合 etc.

用户头像

devfan

关注

还未添加个人签名 2017.11.12 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 week10 - 学习总结