写点什么

week10- 根据当周学习情况,完成一篇学习总结

用户头像
未来已来
关注
发布于: 2021 年 01 月 03 日

一、微服务:服务本身的设计、维护以及治理

1、单体系统架构:

缺点;编译、部署困难;代码分支管理困难;数据库连接耗尽;新增业务困难;

2、解决方案就是拆分,将模块独立部署,降低系统耦合性;

横向拆分(将复用的业务拆分出来);纵向拆分(将一个大应用拆分为多个小应用);

3、webservice 与企业级分布式服务;

缺点:臃肿的注册与发现机制;低效的 xml 序列化手段;开销相对较高的 HTTP 远程通信;复杂的部署与维护手段;

4、微服务框架需求;负载均衡、失效转移、高校的远程通信(二进制、长连接)、对应用最少侵入、版本管理、

5、微服务框架(Dubbo)架构;

二、微服务:落地实践的策略与思路

1、Service Mesh 服务网格;

2、Service Mesh 的 Sider 模式;

3、微服务落地落地;

3.1、业务先行,先理顺业务边界和依赖,技术是手段而不是目的;

3.2、先有独立的模块,后有分布式的服务;

3.3、业务耦合严重,逻辑复杂多变的系统进行服务重构要谨慎;--->业务重构、模块重构;现实准备;

3.4、要搞清楚实施微服务的目的是什么,业务复用?开发边界清晰?分布式集群提升性能?

4、命令与查询职责隔离(CQRS);

4.1、更清晰的领域模型;

4.2、针对读写分别优化,实现更好的性能;

4.3、查询服务不会修改数据,更好地保护数据;

5、事件溯源

5.1、利用事件溯源,可以精确复现任何用户状态,进行复核审计;

5.2、利用事件溯源,可以有效监控用户状态变化,并在此基础上实现分布式事务;

6、断路器;关闭、打开、半开;

7、服务充实及调用超时;

8、最重要的是需求;需求/目标--->价值--->原则--->最佳实践---->工具;

三、微服务网关的技术架构

1、基于网关的微服务架构;

2、网关的作用;统一接入、安全防护,流量管控;协议转换;

3、微服务网关;

4、网关管道技术;职责:各种校验与拦截;实现技术:责任链设计模式;

5、Flower 异步网关与异步微服务框架;利用 Servlet3 实现异步网关;

6、开放平台网关;

7、开放授权协议 OAuth2.0;

8、授权码授权;

四、领域驱动设计 DDD

1、边界、功能

2、为什么需要 DDD;用户或者产品经理的需求零零散散,不断变更;

3、事务脚本;这个业务场景是:

4、领域模型,业务对象承担自己的职责;

5、贫血模型 VS 充血模型;

6、DDD 战略设计和战术设计;界面驱动,业务驱动,数据库驱动;

DDD 概念:子域、限界上下文、上下文映射图、实体、值对象、聚合(关联对象)

构建成系统:DDD 分层架构;

7、DDD 六边形架构;

五、软件组件设计原则

1、在没有编程语言的时候就已经有了软件组件;

2、软件的复杂度和它的规模成指数关系;

3、组件内聚原则;

3.1、复用发布等同原则;

3.2、共同封闭原则;

3.3、共同复用原则;

4、组件耦合原则;依赖关系

4.1、无循环依赖原则;

4.2、稳定依赖原则;

4.3、稳定抽象原则;

5、组件的边界与依赖关系,不仅仅是技术问题;

六、案例:用领域驱动设计驱动系统架构


用户头像

未来已来

关注

还未添加个人签名 2019.02.26 加入

还未添加个人简介

评论

发布
暂无评论
week10-根据当周学习情况,完成一篇学习总结