在多端合作开发中,难免会出现某端由于性能问题不能频繁通过API或其他方式向数据源获取数据情况,这时通过自建数据库很难保证不存在脏数据.
问题回顾
在为 A 端提供数据时,数据本存储在 API 端,但由于 A 端需要对数据进行各种排列组合等操作,便自存了一份数据,这样 A 端在请求数据时会在本地库中查找再到 API 端进行访问,但这样在更新、新建、删除等可能会出现由于网络、开发不规范等原因造成数据不统一的情况(通常 API 端出现更改数据源,A端很容易出现问题) .
同样的问题也会出现在 API 端提供给A端时,要求接口性能较高,从 Redis 等直接获取,但 B 端需要分页等功能,便需要从 DB 中获取进行分页等,这样通过更改 Redis Key 进行兼容两端的方式开发量较大,一方从 DB 获取,一方从 Redis 获取又难免出现数据源不一致的问题.
解决方案
- 在多端合作开发中,尽量保证数据源的一致.
- A 端若自己维护了数据,在操作远端数据时需保证远端数据完成变化再修改近端数据(但这又会遇到网络等原因的问题).
- 幂等验证
- 在无法保证两端数据信息一致时候,一定要维护定时脚本去进行确认,通常会防患于未然