写点什么

第十周 - 学习总结

用户头像
molly
关注
发布于: 2020 年 08 月 11 日

微服务

微服务架构落地

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

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

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

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



微服务最佳实践

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

在服务接口层面将查询(读操作)与命令(写操作)隔离,实现服务层的读写分离:

  • 更清晰的领域模型;

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

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

事件溯源

将用户请求处理过程中的每次状态变化都记录到事件日志中,并按时间序列进行持久化存储:

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

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

断路器

当某个服务出现故障,响应延迟或者失败率增加,继续调用这个服务会导致调用者请求阻塞,资源消耗增加,进而出现服务级联失效,这种情况下使用断路器阻断对故障服务的调用。

  • 断路器三种状态:关闭、打开、半开。

服务重试及调用超时

上游调用者超时时间要大于下游调用者超时时间之和。

最重要的是需求

  • Needs(需求) - 要知道需求是什么;

  • Values(价值)- 有了需求看这种架构、方案能不能带来价值;

  • Principles(原则)- 应该遵循什么样的原则使用这种技术方案;

  • Practices(最佳实践)- 看使用这些技术的最佳实践都有哪些;

  • Tools(工具)- 使用这种技术或这种架构方案具体选型使用哪种工具。



用户头像

molly

关注

还未添加个人签名 2017.12.14 加入

还未添加个人简介

评论

发布
暂无评论
第十周 - 学习总结