一种业务数据的读、写方法、装置、设备和存储介质制造方法及图纸

技术编号:21799071 阅读:25 留言:0更新日期:2019-08-07 10:29
本发明专利技术公开了一种业务数据的读、写方法、装置、设备和存储介质。该方法包括:接收数据操作;确定数据操作的操作类型;若操作类型为写操作,则执行第一写操作;若第一写操作执行成功,则执行第二写操作,第二写操作用于将业务数据写入所有从数据库,以使主数据库与所有从数据库同步业务数据。该方法通过区分主数据库与从数据库,区分业务数据写入的顺序,只有当将业务数据写入主数据库成功后才会将该业务数据写入从数据库,不管该业务数据是否成功写入从数据库,都有完整、正确的业务数据存在于主数据库中,当从数据库执行写操作失败后,可以从主数据获取正确的业务数据进行从数据库的写入,从而保证业务数据在各个数据库中的一致性。

A Method, Device, Equipment and Storage Media for Reading and Writing Business Data

【技术实现步骤摘要】
一种业务数据的读、写方法、装置、设备和存储介质
本专利技术实施例涉及数据存储技术,尤其涉及一种业务数据的读、写方法、装置、设备和存储介质。
技术介绍
目前,随着互联网的普及与发展,有越来越多的数据需要被处理,同时对处理的要求也越来越高。对于一些网站运营商而言,每天可能需要面对极大的业务数据,随着业务数据量的增大,对数据的稳定存储、快速读取的要求也越来越高。通常业务数据会存储在一个数据库中,此时,如果该数据库出现了故障,那么这个数据库中的业务数据都无法使用。为了解决这一问题,一般会设置多个数据库之间进行业务数据的同步。但是,如果一个业务数据同时被写入多个数据库,可能因为写入不稳定等因素,导致一个业务数据在不同的数据库中表现为不同的业务数据,即无法保证每个数据库中业务数据的一致性。当用户需要读取该业务数据时,会根据数据数据库的不同而产生不同的返回结果,从而导致系统维护的难度加大。
技术实现思路
本专利技术提供一种业务数据的读、写方法、装置、设备和存储介质,以解决一个业务数据同时被写入多个数据库,无法保证一致性的问题。第一方面,本专利技术实施例提供了一种业务数据的写方法,在一分布式的数据集群中包含主数据库、从数据库与一代理,所述方法应用于所述代理中,包括:接收数据操作;确定所述数据操作的操作类型;若所述操作类型为写操作,则执行第一写操作,所述第一写操作用于将所述数据操作所作用的业务数据写入所述主数据库;若所述第一写操作执行成功,则执行第二写操作,所述第二写操作用于将所述业务数据写入所有从数据库,以使所述主数据库与所有从数据库同步所述业务数据。在此基础上,所述代理记录有所述主数据库的第一地址,所述代理创建有线程池,所述线程池中具有线程;所述执行第一写操作,包括:为所述主数据库分配线程,作为第一线程;确定所述主数据库的第一地址;调用所述第一线程访问所述第一地址,以向所述主数据库写入所述业务数据;释放所述第一线程。在此基础上,所述从数据库的数量为至少两个,所述代理记录有所述从数据库的第二地址;所述执行第二写操作,包括:确定第一目标数据库,所述第一目标数据库为未执行写子操作的从数据库;对所述第一目标数据库执行写子操作,所述写子操作用于写入所述业务数据;判断将所述业务数据是否成功写入所述第一目标数据库;若是,则确认所述主数据库与所述第一目标数据库成功同步所述业务数据,返回执行所述确定第一目标数据库。在此基础上,所述执行第二写操作,还包括:确定第二目标数据库,所述第二目标数据库为执行所述写子操作失败的从数据库;对所述第二目标数据库执行所述写子操作;判断将所述业务数据是否成功写入所述第二目标数据库;若是,则确认所述主数据库与所述第二目标数据库成功同步所述业务数据,返回执行所述确定第二目标数据库。在此基础上,所述代理记录有所述从数据库的第二地址,所述代理创建有线程池,所述线程池中具有线程;所述对所述第一目标数据库执行写子操作,包括:为所述第一目标数据库分配线程,作为第二线程;确定所述第一目标数据库的第二地址;调用所述第二线程访问所述第二地址,以向所述第一目标数据库写所述业务数据;释放所述第二线程;所述对所述第二目标数据库执行写子操作,包括:为所述第二目标数据库分配线程,作为第三线程;确定所述第二目标数据库的第二地址;调用所述第三线程访问所述第二地址,以向所述第一目标数据库写所述业务数据;释放所述第三线程。在此基础上,包括:统计对同一个所述从数据库执行所述写子操作失败的次数;当所述次数超过预设的阈值时,对所述从数据库生成报错信息。第二方面,本专利技术实施例还提供了一种业务数据的读方法,在一分布式的数据集群中包含主数据库、从数据库与一代理,所述方法应用于所述代理中,包括:接收数据操作;确定所述数据操作的操作类型;若所述操作类型为读操作,则从所述从数据库中选择目标数据库;对所述目标数据库执行读操作,所述读操作用于读取所述数据操作所作用的业务数据。在此基础上,所述代理记录有所述从数据库的地址,所述代理创建有线程池,所述线程池中具有线程;所述对所述目标数据库执行读操作,包括:为所述目标数据库分配线程;确定所述目标数据库的地址;调用所述线程访问所述地址,以从所述目标数据库读取所述数据操作所作用的业务数据;释放所述线程。第三方面,本专利技术实施例还提供了一种业务数据的写装置,包括:第一数据接收模块,用于接收数据操作;第一数据类型确定模块,用于确定所述数据操作的操作类型;第一写操作执行模块,用于若所述操作类型为写操作,则执行第一写操作,所述第一写操作用于将所述数据操作所作用的业务数据写入所述主数据库;第二写操作执行模块,用于若所述第一写操作执行成功,则执行第二写操作,所述第二写操作用于将所述业务数据写入所有从数据库,以使所述主数据库与所有从数据库同步所述业务数据。第四方面,本专利技术实施例还提供了一种业务数据的读装置,包括:第二数据接收模块,用于接收数据操作;第二数据类型确定模块,用于确定所述数据操作的操作类型;目标数据库确定模块,用于若所述操作类型为读操作,则从所述从数据库中选择目标数据库;读操作执行模块,用于对所述目标数据库执行读操作,所述读操作用于读取所述数据操作所作用的业务数据。第五方面,本专利技术实施例还提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的一种业务数据的写方法;或者,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第二方面所述的一种业务数据的读方法。第六方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的一种业务数据的写方法;或者,该程序被处理器执行时实现如第二方面所述的一种业务数据的读方法。本专利技术接收数据操作;确定所述数据操作的操作类型;若所述操作类型为写操作,则执行第一写操作,所述第一写操作用于将所述数据操作所作用的业务数据写入所述主数据库;若所述第一写操作执行成功,则执行第二写操作,所述第二写操作用于将所述业务数据写入所有从数据库,以使所述主数据库与所有从数据库同步所述业务数据。通过区分主数据库与从数据库,区分业务数据写入的顺序,只有当将业务数据写入主数据库成功后才会将该业务数据写入从数据库,不管该业务数据是否成功写入从数据库,都有完整、正确的业务数据存在于主数据库中,当从数据库执行写操作失败后,可以从主数据获取正确的业务数据进行从数据库的写入,从而保证业务数据在各个数据库中的一致性。附图说明图1为本专利技术实施例一提供的一种业务数据的写方法的流程图;图2A为本专利技术实施例二提供的一种业务数据的写方法的流程图;图2B为本专利技术实施例二提供的一种执行重新写入从库操作的流程图;图3为本专利技术实施例三提供的一种业务数据的读方法的流程图;图4为本专利技术实施例四提供的一种业务数据的读方法的流程图;图5为本专利技术实施例五提供的一种业务数据的写装置的结构图;图6为本专利技术实施例六提供的一种业务数据的读装置的结构图;图7为本专利技术实施例七提供的一种电子设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具本文档来自技高网...

【技术保护点】
1.一种业务数据的写方法,其特征在于,在一分布式的数据集群中包含主数据库、从数据库与一代理,所述方法应用于所述代理中,包括:接收数据操作;确定所述数据操作的操作类型;若所述操作类型为写操作,则执行第一写操作,所述第一写操作用于将所述数据操作所作用的业务数据写入所述主数据库;若所述第一写操作执行成功,则执行第二写操作,所述第二写操作用于将所述业务数据写入所有从数据库,以使所述主数据库与所有从数据库同步所述业务数据。

【技术特征摘要】
1.一种业务数据的写方法,其特征在于,在一分布式的数据集群中包含主数据库、从数据库与一代理,所述方法应用于所述代理中,包括:接收数据操作;确定所述数据操作的操作类型;若所述操作类型为写操作,则执行第一写操作,所述第一写操作用于将所述数据操作所作用的业务数据写入所述主数据库;若所述第一写操作执行成功,则执行第二写操作,所述第二写操作用于将所述业务数据写入所有从数据库,以使所述主数据库与所有从数据库同步所述业务数据。2.根据权利要求1所述的方法,其特征在于,所述代理记录有所述主数据库的第一地址,所述代理创建有线程池,所述线程池中具有线程;所述执行第一写操作,包括:为所述主数据库分配线程,作为第一线程;确定所述主数据库的第一地址;调用所述第一线程访问所述第一地址,以向所述主数据库写入所述业务数据;释放所述第一线程。3.根据权利要求1所述的方法,其特征在于,所述从数据库的数量为至少两个,所述代理记录有所述从数据库的第二地址;所述执行第二写操作,包括:确定第一目标数据库,所述第一目标数据库为未执行写子操作的从数据库;对所述第一目标数据库执行写子操作,所述写子操作用于写入所述业务数据;判断将所述业务数据是否成功写入所述第一目标数据库;若是,则确认所述主数据库与所述第一目标数据库成功同步所述业务数据,返回执行所述确定第一目标数据库。4.根据权利要求3所述的方法,其特征在于,所述执行第二写操作,还包括:确定第二目标数据库,所述第二目标数据库为执行所述写子操作失败的从数据库;对所述第二目标数据库执行所述写子操作;判断将所述业务数据是否成功写入所述第二目标数据库;若是,则确认所述主数据库与所述第二目标数据库成功同步所述业务数据,返回执行所述确定第二目标数据库。5.根据权利要求4所述的方法,其特征在于,所述代理记录有所述从数据库的第二地址,所述代理创建有线程池,所述线程池中具有线程;所述对所述第一目标数据库...

【专利技术属性】
技术研发人员:蔡旭森
申请(专利权)人:广州虎牙信息科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1