第十周 - 学习总结
微服务
微服务架构落地
- 业务先行,先理顺业务边界和依赖,技术是手段而不是目的; 
- 先有独立的模块,后有分布式的服务; 
- 业务耦合严重,逻辑复杂多变的系统进行微服务重构要谨慎; 
- 要搞清楚实施微服务的目的是什么,业务复用?开发边界清晰?分布式集群提升性能? 
微服务最佳实践
命令与查询职责隔离(CQRS)
在服务接口层面将查询(读操作)与命令(写操作)隔离,实现服务层的读写分离:
- 更清晰的领域模型; 
- 针对读写分别优化,实现更好的性能; 
- 查询服务不会修改数据,更好地保护数据。 
事件溯源
将用户请求处理过程中的每次状态变化都记录到事件日志中,并按时间序列进行持久化存储:
- 利用事件溯源,可以精确复现任何用户状态,进行复核审计; 
- 利用事件溯源,可以有效监控用户状态变化,并在此基础上实现分布式事务。 
断路器
当某个服务出现故障,响应延迟或者失败率增加,继续调用这个服务会导致调用者请求阻塞,资源消耗增加,进而出现服务级联失效,这种情况下使用断路器阻断对故障服务的调用。
- 断路器三种状态:关闭、打开、半开。 
服务重试及调用超时
上游调用者超时时间要大于下游调用者超时时间之和。
最重要的是需求
- Needs(需求) - 要知道需求是什么; 
- Values(价值)- 有了需求看这种架构、方案能不能带来价值; 
- Principles(原则)- 应该遵循什么样的原则使用这种技术方案; 
- Practices(最佳实践)- 看使用这些技术的最佳实践都有哪些; 
- Tools(工具)- 使用这种技术或这种架构方案具体选型使用哪种工具。 











 
    
评论