比如在ip地址是1.1.1.1的服务器上有一个数据库a,a中有一个表aa;ip地址是1.1.1.2的服务器上有一个数据库b,b有一个表bb。现在每对aa插入一条数据,能不能实现对bb插入一条数据,能保证数据传输的安全性和速度更好.两个库在不同的网络内.
4条回答 默认 最新
- little_how 2019-05-28 15:52关注
这个难就难在数据一致性不好保证;
1.使用消息中间件,小库插入成功后发送一条消息到中间件,然后有一个程序专门负责处理消息,将数据再写到大库里;
这里比较难的地方就是要保证A.小库写入成功要保证消息投递成功 B.消息处理处要保证数据写入大库成功才回执消息的ack;
C.消息处理的幂等性,同一条数据的消息要保证只插入成功一次;
最好还有检查机制,加上定时任务来保证;2.程序负责双写,各个事务隔离开,先写小库,小库最好还有一张表来表示是否写了大库,小库写成功后调用写大库,如果成功就ok,如果失败则由定时任务从
小库里面的负责大库写的业务表里面捞数据,然后补大库中去,保证最终一致,大库也要保证有幂等表,防止多次写入;希望对你有帮助...
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何用数码管显示学号(相关搜索:单片机)
- ¥15 错误于library(org.Hs.eg.db): 不存在叫‘org.Hs.eg.db’这个名称的程序包,如何解决?
- ¥60 求一个图片处理程序,要求将图像大小跟现实生活中的大小按比例联系起来的
- ¥50 求一位精通京东相关开发的专家
- ¥100 求懂行的大ge给小di解答下!
- ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
- ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
- ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
- ¥100 华为手机私有App后台保活
- ¥15 sqlserver中加密的密码字段查询问题