数据迁移-渠道用户互通
我前面写了一篇关于数据迁移过程一致性思考的文章,现在分享一下,我之前做的一个用户迁移(渠道sdk之间互通)的例子。
需求背景
某头部渠道一个旧的 sdk 不想继续更新了,想要用新的 sdk,不同 sdk 之间用户是隔离的,这个头部渠道不想流失掉这批用户,想让我们帮忙做互通,会提供接口给我们获取每个用户渠道那边的新的 puid(渠道那边自己的用户id)
实现思路
- A. 服务端先上一版,在用户登录的时候做新映射,在保留旧映射关系(puid1->uid)的同时,写入新的映射关系puid2->uid(puid2可通过渠道提供的接口查询得到)。当旧包登录(即强更前,线上在跑的包),当puid1找不到对应的映射的关系时,应进行注册的动作,并进行新老映射(双写)。
- B. A跑几天后,拉去存量数据还未完成映射的,进行手动的映射。
- C. 强更。虽然强更后,没有旧包了,为了安全性,仍旧做了兼容的处理(根据版本号,判断如果是旧包,保持A操作)。