记录一下开发过程中的问题,我们在一次数据同步的过程中出现了数据丢失问题,当时的数据同步方案采取的是多线程。后来同步的过程中数据莫名奇妙的丢失,每次丢失的数据数量还不一样。
项目业务简述:
A服务采用多线程去B服务上分页查询并保存数据至B服务(不要问我为啥这样奇怪,因为AB服务是业务问题,必须这样去做)。由于A服务是多线程去保存,对于B服务来说,就会出现高并发问题。起初我们认为数据丢失是高并发的问题,但是始终没有找到问题所在,求助大佬才发现,分页查询的sql并没有按照唯一关键字分组,导致数据在分页查询的过程中出现重复。在我们的分页查询sql上面加上group by后问题解决。
postgresql数据库分页查询存在数据重复问题可以参考此篇博客:https://www.cnblogs.com/zhangfx01/p/10613862.html
所以,给各位开发提醒,分页查询一定记得按照唯一关键字进行排序。