跨局域网实现mysql数据传输的办法?

比如在ip地址是1.1.1.1的服务器上有一个数据库a,a中有一个表aa;ip地址是1.1.1.2的服务器上有一个数据库b,b有一个表bb。现在每对aa插入一条数据,能不能实现对bb插入一条数据,能保证数据传输的安全性和速度更好.两个库在不同的网络内.

4个回答

这个难就难在数据一致性不好保证;

1.使用消息中间件,小库插入成功后发送一条消息到中间件,然后有一个程序专门负责处理消息,将数据再写到大库里;
这里比较难的地方就是要保证A.小库写入成功要保证消息投递成功 B.消息处理处要保证数据写入大库成功才回执消息的ack;
C.消息处理的幂等性,同一条数据的消息要保证只插入成功一次;
最好还有检查机制,加上定时任务来保证;

2.程序负责双写,各个事务隔离开,先写小库,小库最好还有一张表来表示是否写了大库,小库写成功后调用写大库,如果成功就ok,如果失败则由定时任务从
小库里面的负责大库写的业务表里面捞数据,然后补大库中去,保证最终一致,大库也要保证有幂等表,防止多次写入;

希望对你有帮助...

w172087242
little_how 回复qq_31488633: 如果不能改他们的应用,可以用canal来同步
10 个月之前 回复
qq_31488633
qq_31488633 回复little_how: 有的,但不是我这边负责,我了解了解
10 个月之前 回复
w172087242
little_how 回复qq_31488633: 为什么一定要数据库做,上层应用不可以?你写入小数据库的那个没有任何上层应用?
10 个月之前 回复
qq_31488633
qq_31488633 回复little_how: 有两个数据库在不同的服务器,一个数据库的数据添加时,需要另一个数据库监听到并添加数据,就这个功能
11 个月之前 回复
qq_31488633
qq_31488633 回复little_how: 怎么进去的是什么意思,大数据库怎么访问的小数据库吗, 我还不知道用什么方法,所以我说的跨局域网就是这个难点,可能对懂得人来说很简单,我之前不是做数据库的,所以我不知道怎么访问
11 个月之前 回复
w172087242
little_how 回复qq_31488633: 小库数据怎么进去的?
11 个月之前 回复
qq_31488633
qq_31488633 回复little_how: 只涉及数据库之间的数据传输,从小库传到大库就行,困扰我的有两个点,一个是需要跨局域网,数据库属于不同ip,一个是对实时性要求较高,少量数据1s以内,其他也要5s以内.
11 个月之前 回复
w172087242
little_how 回复qq_31488633: 你接收消息的程序是什么语言写的
11 个月之前 回复
qq_31488633
qq_31488633 回复w172087242: 如果我只是把数据实时传过来存下来具体应该怎么做呢,第一次处理数据库相关问题,希望有个操作简单步骤详细的介绍,或者提供个具体方向和一些参考资料也可以
11 个月之前 回复
w172087242
little_how 回复qq_31488633: 处理上报数据那里直接双写就可以了,没必要启用federated,而且你启用federated也是双写,还不能自己控制逻辑
11 个月之前 回复
qq_31488633
qq_31488633 小库中的数据为传感器采集数据,如果先不考虑大库合并所有小库数据的问题,只是把一个小库数据传到大库中,有什么方法或者工具吗.容许数据有部分丢失,使用federated是否可行,或者使用flume是否可行
11 个月之前 回复

如果两个库中的两个表是一样的,所谓插入数据到bb表是为了实现数据的同步,可以参考主从库相关资料;如果并非是为了实现数据同步,可以手动写一个业务型的事务,确认aa表中的数据和bb表中的数据同时入库才算结束本次操作,否则回退当做异常处理

qq_31488633
qq_31488633 有很多分散在全国各地的小型数据库,然后在总部有一个大数据库. 需求:每当有一条数据新插入小型数据库,大数据库也要将这条数据插入到自己的库中,两个表的结构是一样的
11 个月之前 回复

这个问题不是很好做,主要的问题是数据同步,我建议可以这样做:
小型数据库在插入一条数据时,记录一下这条数据的状态(是否一已经同步),我们再启动一个线程,不断的查询状态,一旦找到没有同步的数据便发起一次同步动作,当同步到主库之后接收到ACK,再将状态标识为已经同步
需要注意:
1、插入数据和插入数据状态设为一个事务,原子操作
2、主库需要支持幂等,一旦这条数据在数据库中就要忽略插入操作

qq_31488633
qq_31488633 暂时不考虑同步的话,两个点,一个跨局域网传输,一个实时更新数据,对于这两个点有具体点的建议吗
11 个月之前 回复

小库数据是传感器写进去的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问