写点什么

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

用户头像
张荣召
关注
发布于: 2020 年 11 月 28 日

1.Service Mesh 服务网格

Service Mesh 是一个基础设施层,用于处理服务间的通信,通常表现为一组轻量级网络代理,他们与应用程序部署在一起,而对应用程序透明。

适用场景:大规模服务,复杂网络拓扑结构。


2.微服务架构落地

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

  • 现有独立的模块,后又分布式的服务。

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

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

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

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

     CQRS:Command-Query Responsbility Seprate(读写职责分离)

  • 更清晰的领域模型

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

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

4.事件溯源

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

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

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

5.断路器

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

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

     

 

6.服务重试及调用超时

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

7.最重要的是需求

实践落地的指导思想:先知道需要什么,再选择工具。

架构师工作思路:先知道需求,在选择工具。

技术选型,遵照这种方法进行思考。先知道需求(想要什么)==>价值==>指导规则==>最佳实践==>框架工具

微服务:

业务驱动技术。


用户头像

张荣召

关注

还未添加个人签名 2018.05.02 加入

还未添加个人简介

评论

发布
暂无评论
10.2微服务:落地实践的策略与思路