带你读《2022技术人的百宝黑皮书》——一种可灰度的接口迁移方案(6)

简介: 带你读《2022技术人的百宝黑皮书》——一种可灰度的接口迁移方案(6)

带你读《2022技术人的百宝黑皮书》——一种可灰度的接口迁移方案(5)https://developer.aliyun.com/article/1339607?groupCode=taobaotech


image.png增量数据

代码省略,直接执行代理仓储层的插入方法即可

 

image.png更新数据

更新数据需要双写,如果总开关打开(即迁移完毕),则可以停止老数据的写入,因为不会再读了。

@Transactional(rollbackFor = Throwable.class) public <T> Boolean update(T t) {
if (t == null) { return false;
}
if (总开关没打开) {
// 数据没有迁移完毕
// 更新要双写,如有,保持数据一致targetRepository.update(t);
}
// 更新新数据proxyRepository.update(t); return true;

 

 

实践

 

本文只是提出一种迁移的方案思路,可能并不能适用于所有场景,但是在系统升级的过程中,工程师面对的最终的目标应该是一致的,即为了让系统稳定的上线,并且在出现问题时能够安全回滚。本文的实现逻辑是通过注解和切面实现对目标接口的方法进行转发,转发到代理类接口,从而切换到新逻辑和新数据源,并由ProxyManager来适 配数据源的代理分发逻辑,完成数据的查询、更新、新增逻辑。

 

团队介绍

 

天猫校园技术团队,一个致力于服务校园人群,提升校园人群生活品质,提供校园saas全套解决方案的技术团队。

相关文章
|
9月前
|
Java
带你读《2022技术人的百宝黑皮书》——一种可灰度的接口迁移方案(1)
带你读《2022技术人的百宝黑皮书》——一种可灰度的接口迁移方案(1)
|
9月前
带你读《2022技术人的百宝黑皮书》——一种可灰度的接口迁移方案(3)
带你读《2022技术人的百宝黑皮书》——一种可灰度的接口迁移方案(3)
|
9月前
带你读《2022技术人的百宝黑皮书》——一种可灰度的接口迁移方案(2)
带你读《2022技术人的百宝黑皮书》——一种可灰度的接口迁移方案(2)
带你读《2022技术人的百宝黑皮书》——一种可灰度的接口迁移方案(2)
|
9月前
带你读《2022技术人的百宝黑皮书》——一种可灰度的接口迁移方案(5)
带你读《2022技术人的百宝黑皮书》——一种可灰度的接口迁移方案(5)
|
9月前
带你读《2022技术人的百宝黑皮书》——一种可灰度的接口迁移方案(4)
带你读《2022技术人的百宝黑皮书》——一种可灰度的接口迁移方案(4)
|
9月前
|
安全 前端开发
带你读《2022技术人的百宝黑皮书》——移动域全链路可观测架构和关键技术(9)
带你读《2022技术人的百宝黑皮书》——移动域全链路可观测架构和关键技术(9)
|
监控 前端开发 算法
带你读《2022技术人的百宝黑皮书》——前端质量之灰度监控的有效实践(6)
带你读《2022技术人的百宝黑皮书》——前端质量之灰度监控的有效实践(6)
|
监控 前端开发 JavaScript
带你读《2022技术人的百宝黑皮书》——前端质量之灰度监控的有效实践(4)
带你读《2022技术人的百宝黑皮书》——前端质量之灰度监控的有效实践(4)
|
监控 前端开发 安全
带你读《2022技术人的百宝黑皮书》——前端质量之灰度监控的有效实践(1)
带你读《2022技术人的百宝黑皮书》——前端质量之灰度监控的有效实践(1)
123 0
|
监控 前端开发 API
带你读《2022技术人的百宝黑皮书》——前端质量之灰度监控的有效实践(3)
带你读《2022技术人的百宝黑皮书》——前端质量之灰度监控的有效实践(3)