写点什么

架构师训练营 week10 summary

用户头像
Nick
关注
发布于: 2020 年 08 月 11 日
微服务框架需求
  • 失效转移

  • 负载均衡

  • 高效的远程通讯

  • 对应用的最小入侵

  • 版本管理

Service Mesh网络服务
微服务架构落地
  • 业务先行,先理清业务边界和依赖,技术是手段而不是目的

  • 先有独立模块,后有分布式的服务

  • 业务耦合严重,逻辑复杂多变的系统进行微服务重构要谨慎

  • 搞清楚实施微服务的目的是什么

命令与查询职责隔离(CQRS):在服务接口层面将查询和命令隔离,实现服务层的读写分离
  • 更清晰的领域模型

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

  • 查询服务不会修改数据,更好的保护数据

  • 事件溯源:将用户请求的每次状态变化记录持久化

  • 精确复现任何用户的状态,进行复核审计

  • 有效监控用户状态变化,并以此实现分布式事

微服务网关
  • 统一接入:高性能、高并发、高可靠、负载均衡

  • 协议适配:http、dubbo、jsf

  • 流量管控与容错:限流、降级、熔断

  • 安全防护:校验拦截、防刷控制、黑白名单

开发平台网关
  • 开放授权协议OAuth2.0:授权码、隐式授权、资源所有者密码、凭据与客户端凭据.互联网常用授权码

  • 审计(日志、计费)

DDD总结:
  • 经过多年发展依然落地困难,但在设计中我们仍然可以在战略设计上采用DDD思想,理清模块职责边界

  • 资深程序员真正的优势是他在一个业务领域的多年积累而不是CRUD,对业务领域有更深刻的理解和认知。

  • 把握好领域模型在不断的需求变更中的演进,是系统保持更好的活力,并以此实现自己真正的价值

组件设计原则
  • 软件复杂度和它的规模成指数关系

  • 组件内聚原则:讨论组件内应该包含哪些功能和类,以便提供相对完整的功能,又不至于太过庞大

  • 复用发布原则:软件复用的最小粒度应该等于其发布的最小粒度。

  • 共同封闭原则:将那些会同时修改、并且为了相同目的而修改的类放到同一个组件

  • 共同复用原则:不要强迫一个组件的用户依赖他们不需要的东西

  • 组件耦合:讨论组件间的耦合关系应该如何设计

  • 无限循环依赖原则:避免循环依赖

  • 稳定依赖原则:组件依赖必须指向更稳定的方向,不稳定的组件应该依赖于稳定的组件

  • 稳定抽象原则:一个组件的抽象化程度应该与其稳定性程度一致,一个稳定的组件应该是抽象的,而不稳定的组件是具体的

  • 组件的边界与依赖关系,不仅仅是技术问题:要考虑人、部门、政治问题



用户头像

Nick

关注

还未添加个人签名 2018.05.01 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 week10 summary