专栏的前 21 讲,从读、写以及扣减的角度介绍了三种特点各异的微服务的构建技巧,最后从微服务的共性问题出发,介绍了这些共性问题的应对技巧。
在实际工作中,你就可以参考本专栏介绍的技巧构建新的微服务,架构一个具备“三高”能力的后台服务。同时,也可以利用所学的技巧对已有的微服务进行系统升级重构,从而解决历史遗留问题。
升级重构是后台架构演化增强的一个利器,本讲将为你详细讲解如何落地对用户无感知、低 Bug 的升级重构方案。
重构常见的形式
升级重构有两种常见的形式,一种是纯代码式的升级,另外一种是包含存储和代码的升级。
纯代码的重构升级是指只针对代码中存在的一些历史遗留问题进行修复,比如代码中的慢 SQL、错误的日志打印方式、代码中未显式开启事务等问题。
注:在本讲,将存在问题的历史版本称为V1 版;修复问题后的升级重构版本称为 V2 版。纯代码的重构升级架构如下图1所示:
图 1:纯代码的升级重构对比图
包含存储和代码的重构升级是指在上述纯代码之外,将原有架构里的存储也一起升级。存储升级有两种形式。
第一种是将存储类型进行升级,比如将数据库升级为缓存,将原有的读接口从数据库切换至缓存。做此类存储类型升级的目的是提升微服务的性能,我们在模块二中曾介绍,同样的硬件配置下,缓存比数据库至少快一个量级。不同类型的存储升级架构如下图 2 所示: