回滚机制

回滚是指当程序/数据出错时,将数据和程序恢复到最近的一个正确版本的行为。

常见的如事务回滚、代码库回滚、部署版本回滚、数据版本回滚、静态资源版本回滚等。

7.1 事务回滚

  单库的回滚比较简单,分布式数据库,回滚则要使用分布式事务,见分布式事务笔记。底层实现如2PC,3PC长时间阻塞会影响性能。不需要保证强一致性,则使用本地消息表、事务消息、TCC模式、Sagas模式等实现最终一致性。

7.2 代码库回滚

7.3 部署版本回滚

  部署版本化:避免只发布修改的类和文件,应该全量发布。保留上次发布的版本,方便直接回滚

  小版本增量发布:小版本指修复BUG或者小功能,增量发布指先发布1台验证,然后增量发布直至全部发布

  大版本灰度发布:在一个集群中同时部署两套新旧版本,并行跑一段时间,将流量分发到新旧系统(通过带版本号的URL等),如果验证成功则全部切换到新版本

  架构升级并发布:新老版本部署不同集群

7.4 数据版本回滚

   对业务数据中的商品/价格数据,需要进行版本化处理。

7.5 静态资源版本回滚

  1. 发布新的静态资源到源服务器

  2. 清理CDN缓存,从而可以回源服务器获取最新的静态资源

  3. 在新的URL上添加随机数并清理浏览器缓存

posted @ 2021-04-24 21:26  walker993  阅读(1228)  评论(0编辑  收藏  举报