1.一种数据同步方法,其包括:
从源数据库中读取数据;
将读取的数据打包成数据块;
将数据块保存到数据块池中,并向多个线程发送广播通知;
接收到广播通知的空闲线程从数据块池中读取数据块,并将数据块写入目的数据库。
2.根据权利要求1所述的方法,其中,在从源数据库中读取数据之前,所述方法还包括:与源数据库建立用于读取数据的至少一条连接,以及创建所述多个线程,且每个线程与目的数据库建立一条用于写入数据的连接。
3.根据权利要求1所述的方法,其中,所述将读取的数据打包成数据块进一步包括:按照预设块大小,将读取的数据打包成数据块。
4.根据权利要求1所述的方法,其中,在所述向多个线程发送广播通知之后,所述方法还包括:
设置用于锁定数据块读取操作的锁;
所述多个线程判断自身是否处于空闲状态,若是,则发起抢锁请求;
所述接收到广播通知的空闲线程从数据块池中读取数据块具体为:抢锁成功的空闲线程从数据块池中读取数据块。
5.根据权利要求4所述的方法,其中,在抢锁成功的空闲线程从数据块池中成功读取一个数据块之后,所述方法还包括:抢锁成功的空闲线程释放锁。
6.根据权利要求1或4所述的方法,其中,所述方法还包括:
判断所述数据块池中的数据块的数量是否到达预设数量阈值;
若是,则停止从源数据库中读取数据,直至所述数据块池中的数据块的数量小于所述预设数量阈值。
7.根据权利要求1或4所述的方法,其中,所述方法还包括:
判断所述数据块池中的数据量是否到达预设阈值;
若是,则停止从源数据库中读取数据,直至所述数据块池中的数据量小于所述预设阈值。
8.一种数据同步装置,其包括:
数据读取模块,适于从源数据库中读取数据;
打包模块,适于将读取的数据打包成数据块;
保存模块,适于将数据块保存到数据块池中;
通知模块,适于向多个线程处理模块发送广播通知;
多个线程处理模块,其中处于空闲状态的线程处理模块适于:从数据块池中读取数据块,并将数据块写入目的数据库。
9.根据权利要求8所述的装置,其中,所述数据读取模块还适于:与源数据库建立用于读取数据的至少一条连接;
所述装置还包括:创建模块,适于创建多个线程处理模块;
每个所述线程处理模块适于:与目的数据库建立一条用于写入数据的连接。
10.根据权利要求8所述的装置,其中,所述打包模块具体适于:按照预设块大小,将读取的数据打包成数据块。