CN107580032B - 数据处理方法、装置及设备 - Google Patents

数据处理方法、装置及设备 Download PDF

Info

Publication number
CN107580032B
CN107580032B CN201710728870.4A CN201710728870A CN107580032B CN 107580032 B CN107580032 B CN 107580032B CN 201710728870 A CN201710728870 A CN 201710728870A CN 107580032 B CN107580032 B CN 107580032B
Authority
CN
China
Prior art keywords
database
service request
service
data
record
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710728870.4A
Other languages
English (en)
Other versions
CN107580032A (zh
Inventor
李少翀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710728870.4A priority Critical patent/CN107580032B/zh
Publication of CN107580032A publication Critical patent/CN107580032A/zh
Application granted granted Critical
Publication of CN107580032B publication Critical patent/CN107580032B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书实施例提供一种数据处理方法、装置及设备,该数据处理方法在接收到针对某个业务的业务请求后,并非直接对数据库进行操作,而是在预定的业务请求记录中没有该业务后,再对数据库进行操作,这样可以实现同一业务在各数据库的数据一致。

Description

数据处理方法、装置及设备
技术领域
本说明书实施例涉及数据处理技术领域,尤其涉及数据处理方法、装置及设备。
背景技术
在数据存储领域,为了防止出现操作失误或系统故障导致数据丢失,可以对业务数据进行冗余备份存储。
而在冗余备份的应用场景下,可能会出现的一种情况:针对同一业务,请求方向该业务的运营服务器发起了多次请求,由于某种原因(例如灾备切换等),多次请求被运营服务器路由到不同的数据库,例如:第一次请求被路由到数据库A,运营服务器通过操作数据库A将该业务的状态数据更新为1,第二次请求被路由到数据库B,运营服务器通过操作数据库B将该业务的状态数据更新为2,这就导致两个数据库中同一业务的数据不一致,因此,在分库的应用场景下,如何实现同一业务在各数据库的数据一致,成为亟待解决的技术问题。
发明内容
有鉴于此,本说明书实施例提供一种数据处理方法、装置及设备。
根据本说明书实施例的第一方面,提供一种数据处理方法,包括步骤:
接收到针对预定业务的业务请求后,从多个可用于响应所述业务请求的数据库中,确定响应所述业务请求需操作的数据库为第一数据库;
获取预定的业务请求记录,所述业务请求记录用于记录历史业务请求所针对的业务、响应该历史业务请求所操作的数据库;
如果所述业务请求记录中未记录所述预定业务,则允许对第一数据库执行与所述业务请求相应的操作,并将所述预定业务与第一数据库记录到所述业务请求记录。
根据本说明书实施例的第二方面,提供一种数据处理装置,包括:
数据库确定模块,用于接收到针对预定业务的业务请求后,从多个可用于响应所述业务请求的数据库中,确定响应所述业务请求需操作的数据库为第一数据库;
记录获取模块,用于获取预定的业务请求记录,所述业务请求记录用于记录历史业务请求所针对的业务、响应该历史业务请求所操作的数据库;
数据操作模块,用于在所述业务请求记录中未记录所述预定业务时,允许对第一数据库执行与所述业务请求相应的操作;
业务记录模块,用于将所述预定业务与第一数据库记录到所述业务请求记录。
根据本说明书实施例的第三方面,提供一种计算机设备,包括:
处理器;
存储处理器可执行指令的存储器;
其中,所述处理器耦合于所述存储器,用于读取所述存储器存储的程序指令,并作为响应,执行如下操作:
接收到针对预定业务的业务请求后,从多个可用于响应所述业务请求的数据库中,确定响应所述业务请求需操作的数据库为第一数据库;
获取预定的业务请求记录,所述业务请求记录用于记录历史业务请求所针对的业务、响应该历史业务请求所操作的数据库;
如果所述业务请求记录中未记录所述预定业务,则允许对第一数据库执行与所述业务请求相应的操作,并将所述预定业务与第一数据库记录到所述业务请求记录。
实施本说明书提供的实施例,在接收到针对某个业务的业务请求后,并非直接对所确定的第一数据库进行操作,而是在预定的业务请求记录中没有该业务后,再对第一数据库执行与所述业务请求相应的操作,并将所述预定业务与第一数据库记录到所述业务请求记录,因此,通过所述业务请求记录可以保证响应同一业务的业务请求的操作在同一个数据库执行,进而实现同一业务在各数据库的数据一致。
附图说明
图1是本说明书一示例性实施例示出的实现数据处理的系统的架构示意图;
图2是本说明书一示例性实施例示出的数据处理方法的流程图;
图3-6是本说明书一示例性实施例示出的数据处理方法的应用场景图;
图7是本说明书一示例性实施例示出的数据处理装置的框图;
图8是本说明书一示例性实施例示出的计算机设备的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
请参阅图1,图1所示的是本说明书一示例性实施例示出的实现数据处理的系统100的架构图。系统100可以包括经由网络112与一个或多个客户端106进行数据通信的运营服务器105,以及独立于运营服务器105或集成于运营服务器105的数据库115、116。网络112可以包括例如互联网、内部网、外部网、广域网(WAN)、局域网(LAN)、有线网、无线网或其它合适的网络等,或者两个或更多个这类网络的任何组合。贯穿示例性实施方案的论述,应了解,术语“数据”和“信息”可在本说明书中互换地用于指代可存在于基于计算机的环境中的文本、图像、音频、视频或任何其它形式的信息。
运营服务器105上可以包括可商购获得的超文本传送协议(HTTP)服务器应用,如HTTP服务器、互联网信息服务(IIS)和/或其它服务器。
客户端106可以是安装有应用的网络装置。这里提到的应用可以是提供各种服务的业务系统涉及的应用,例如提供账务转入或转出服务的金融系统、提供通讯服务的通讯系统等,网络装置从硬件上可以包括桌上型计算机、膝上型计算机、平板计算机、智能电话、手持型计算机、个人数字助理(“PDA”),或任何其它有线或无线处理器驱动的装置。
一旦用户使用客户端106并通过网络112向运营服务器105发起注册请求,运营服务器105可以记录该用户的注册信息,并按照注册请求在运营服务器105中开设预置权限的账号。此外,可以存储有各用户注册的账户、各账户的各种密码(登录密码和/或业务处理密码等等)以及用户注册时上传的身份验证信息。
后续每次用户通过客户端106发起针对某个业务的业务请求,例如:访问请求、调取请求等,从而对运营服务器105发生访问时,运营服务器105基于每次业务请求中携带的用户ID之类的表明用户身份的标识,可以获知并记录这样的业务请求。特别的,可以记录该用户的请求时间,可选择的,也可以记录发起请求时的IP地址,或者所采用的网络装置的硬件类型,或者客户端版本/客户端所基于的操作系统版本之类信息中一个或多个。特别的,对于发生数据更新的业务请求,例如转入或转出业务的请求、修改业务状态的请求等,运营服务器105还可以记录该业务请求,并通过执行相应的内部或外部的操作后给予用户特定的响应。一般地,所有业务请求,均会在运营服务器105中留下相应记录。运营服务器105可以按照用户ID、业务描述信息等信息来分别归类不同用户的所有业务请求。对于交互行为的业务请求,例如不同注册用户之间的交互,也可以按照上述用户ID分类并构成集合。
运营服务器105可以用数据库115或数据库116来存储上述业务请求、响应该业务请求的操作以及该操作产生的数据,数据库115和数据库116可用于响应客户端106的业务请求的数据库。
针对冗余备份的应用场景,数据库115可以是主数据库和该主数据库的冗余备份数据库中的一数据库,数据库116可以是主数据库和该主数据库的冗余备份数据库中的一数据库。
针对数据迁移的应用场景,数据库115可以是主数据库和该主数据库的迁移数据库中的一数据库,数据库116可以是主数据库和该主数据库的迁移数据库中的一数据库。其中,主数据库或迁移数据库可以是Oracle数据库、OceanBase数据库、MySQL数据库等。
除数据库115和数据库116外系统100还可以包括其他数据库。存储在数据库115或数据库116中的数据,与以下描述的各种实施例的操作步骤相关联。
实际应用中,客户端106在用户的控制下,可能向运营服务器105发起针对任一业务的多次业务请求,运营服务器105接收到客户端发起的业务请求后,可以响应该业务请求对系统100中的一数据库执行与所述业务请求相应的操作。某些状况下,针对同一业务(例如,电子商务领域的一交易订单),同一客户端106可以向运营服务器105业务系统发起了多次业务请求,第一次业务请求在数据库115与数据库116完成数据迁移前发送到运营服务器105,运营服务器105响应该第一次业务请求,对数据库115执行相应操作,将该业务的状态数据更新为1。
在数据库115与数据库116完成数据迁移,用数据库116替换数据库115后,第二次业务请求发送到运营服务器105,运营服务器105响应该第二次业务请求,对数据库116执行相应操作,将该业务的状态数据更新为2。
综上可知,运营服务器响应两次业务请求,对不同数据库执行了操作,会导致两个数据库中同一业务的数据不一致,为了解决不同数据库中同一业务的数据不一致的问题,本说明书实施了提供了一种新的数据处理方案,以下结合附图2,详细说明本说明书实施例的数据处理过程。
请参阅图2,图2是本说明书一示例性实施例示出的数据处理方法的流程图,该实施例可以应用于图1所示的运营服务器上,包括以下步骤S201-S204:
步骤S201、接收到针对预定业务的业务请求后,从多个可用于响应所述业务请求的数据库中,确定响应所述业务请求需操作的数据库为第一数据库。
步骤S202、获取预定的业务请求记录,所述业务请求记录用于记录历史业务请求所针对的业务、响应该历史业务请求所操作的数据库。
步骤S203、如果所述业务请求记录中未记录所述预定业务,则允许对第一数据库执行与所述业务请求相应的操作。
步骤S204、将所述预定业务与第一数据库记录到所述业务请求记录。
本实施例中,业务场景不同时,运营服务器响应所述业务请求,操作第一数据库时所操作的数据会有所不同,例如针对电子商务领域的订单业务、金融领域的转入或转出账务的业务,所操作的数据可以是订单数据、账务数据等流水型数据,在其他业务场景,还可以所操作的数据还可以是其他类型的数据,本说明书实施例对此不做限制。
实际应用中,业务请求由图1所示的客户端发起,携带有其所针对的预定业务的描述信息,该描述信息可以包括用户标识和业务标识,用户标识可以是表明用户身份的信息,如客户端的账号、用户的身份证件、电话等,还可以是发起请求时的IP地址,或者所采用的网络装置的硬件类型,或者客户端版本/客户端所基于的操作系统版本之类信息中一个或多个,业务标识可以是预定业务的业务名称、业务编号等,还可以是预定业务在数据库内的索引。
运营服务器接收到客户端发起的业务请求后,可以基于该业务请求确定出需要操作的数据。此外,还可以根据其当前关联的数据库的地址、访问数据库的优先等级等信息,从多个可用于响应业务请求的数据库中,确定出运营服务器当前关联的数据或优先等级最高的数据库为第一数据库,其当前允许所述预运营服务器对其执行读写操作,运营服务器可以优先访问该数据库。
在冗余备份的应用场景下,这里提到的多个数据库可以包括容灾备份场景下的主数据库和该主数据库的冗余备份数据库。在将业务数据由一种类型的数据库迁移到另一种类型的数据库的应用场景下,这里提到的多个数据库可以包括主数据库和该主数据库的迁移数据库。在其他应用场景下,这里提到的多个数据库还可以指其他数据库,本说明书实施例对此不做限制。
从多个数据库中确定好第一数据库后,为了判断在该业务请求之前,运营服务器是否有接收到过其所针对的业务的其他业务请求,以及判断在接收到过该其他业务请求时,运营服务器所操作的数据库是否为第一数据库,可以调取用于记录历史业务请求所针对的业务、响应该历史业务请求所操作的数据库的业务请求记录,如果之前从未生成过该业务请求记录,调取内容为空,可以直接许对第一数据库执行与所述业务请求相应的操作,并记录所述预定业务与第一数据库,生成业务请求记录。在将业务数据由一种类型的数据库迁移到另一种类型的数据库的应用场景下,所述业务请求记录可以存储在所述迁移数据库中。在其他实施例中,所述业务请求记录也可以存储在运营服务器内、主数据内或其他数据库内。
如果在本次业务请求之前已生成该业务请求记录,可以调取到该业务请求记录,如果调取到的业务请求记录中记录有所述预定业务,可以判断响应所述预定业务的历史业务请求时操作的数据库,是否为第一数据库;如果响应所述预定业务的历史业务请求时操作的数据库不是第一数据库,则禁止对第一数据库执行与所述业务请求相应的操作。这样就可以避免在第一数据库中存储与所述业务请求相应的数据,进而避免不同数据库中同一业务数据不一致的事情发生,后期在不同数据库中同步业务数据时,可以将预定业务的数据整体从一个数据库同步到另一个数据库,不会出现不同数据库间彼此同步同一业务的数据,出现相同业务数据的反复同步,反复修改导致的资源浪费。
针对某些需要实现幂等的业务,可以在响应所述预定业务的历史业务请求时操作的数据库是第一数据库时,先判断是否首次接收到所述业务请求,如果不是首次接收到所述业务请求,则禁止对第一数据库执行与所述业务请求相应的操作,如果是首次接收到所述业务请求,则允许对第一数据库执行与所述业务请求相应的操作。
判断是否首次接收到业务请求,可以根据运营服务器记录的访问请求记录来判断,也可以从第一数据库中查找响应该业务请求会生成的数据,如果查找到,表明之前已经响应过该业务请求,本次不是首次接收到该业务请求。
此外,在涉及不同数据库的数据同步的场景下,如果响应所述预定业务的历史业务请求时操作的数据库不是第一数据库,是另一数据库,如第二数据库,的数据,但是,第二数据库中与所述预定业务相关的各组数据已全部同步到第一数据库,此时,第一数据库可以代替第二数据库响应该业务请求,不会造成业务报错。实际应用时,可以在禁止对第一数据库执行与所述业务请求相应的操作前,判断第一数据库中是否存储有另一数据库中与所述预定业务相关的数据,如果第一数据库中未存储有与所述预定业务相关的述预定业务相关的任一组数据,则禁止对第一数据库执行与所述业务请求相应的操作;如果第一数据库中存储有与所述预定业务相关的各组数据,可以允许对第一数据库执行与所述业务请求相应的操作。这里提到的与所述预定业务相关的数据,是响应针对所述预定业务的历史业务请求时所生成的数据。
进而,针对某些需要实现幂等的业务,还可以在第一数据库中存储有与所述预定业务相关的各组数据时,进一步判断是否首次接收到所述业务请求;如果不是首次接收到所述业务请求,则禁止对第一数据库执行与所述业务请求相应的操作;如果是首次接收到所述业务请求,则允许对第一数据库执行与所述业务请求相应的操作。
在对第一数据库执行与所述业务请求相应的操作后,为了避免后续接收到该业务请求时,对第一数据库外的其他数据库执行相应的操作,可以在将所述预定业务与第一数据库记录到所述业务请求记录,实际记录时,可以将所述预定业务的描述信息与数据库的标识对应记录到所述业务请求记录;也可以将所述预定业务在第一数据库中的索引、第一数据库的标识对应记录到所述业务请求记录;还可以将本次在第一数据库中操作的数据的索引、第一数据库的标识对应记录到所述业务请求记录。
通过业务请求记录完成对本次的业务请求的响应处理后,对于涉及到不同数据库间的数据迁移的业务场景,还可以在对第一数据库执行与所述业务请求相应的操作后,将本次在第一数据库中操作的数据标记为待同步到所述迁移数据库的数据;在满足预定的同步条件时,将第一数据库中已标记的数据同步到所述迁移数据库,同步数据时,可以按标记时间依次将第一数据库中的数据写入所述迁移数据库,也可以按其他条件对应的顺序,将第一数据库中的数据写入所述迁移数据库。
某些例子中,本方案的设计人员可以根据实际应用场景预定同步时间,到达同步时间后即满足预定的同步条件。其他例子中,本方案还可以实时检测业务请求频率,在业务请求频率低于预定频率值时,确定满足预定的同步条件。在其他例子中,还可以预定其他的同步条件,本说明书实施例对此不做限制。
其中,本次在第一数据库中操作的数据,可以是删除、插入、修改的数据,在其他例子中还可以是其他操作涉及的数据,本说明书实施例对此不做下周。
以下结合附图3至6,在涉及到不同数据库间的数据迁移的业务场景下例举说明本说明书的数据处理过程。
在图3至6所示的各业务场景中,包括两个数据库,其中一个为数据库Master,另一个为数据库Slave,业务请求记录为黑名单,用于已处理的业务请求(历史业务请求)所针对的业务、响应该历史业务请求所操作的数据库,待同步到所述迁移数据库的数据的标记存储在数据同步记录内,根据该数据同步记录内记录的内容,可以确定出待同步的数据。
请参阅图3,图3所示的场景中,数据库Master是运营服务器优先访问的初始数据库,数据库Slave是数据库Master的冗余备份数据库或迁移数据库,数据库Master中的数据还未开始向数据库Slave同步,也未生成过业务请求记录(黑名单)。
实际应用中,如果用户在客户端设备登录客户端,并通过客户端向运营服务器发送针对业务A的第一业务请求(步骤301):将业务A的状态设为1,运营服务器接收到该业务请求后,运营服务器可向数据库Master写入用于将业务A的状态设为1的数据(步骤S302):表示“业务A的状态为1”的字符串。然后,为了后期同步数据,可以标记写入的数据,生成图3中所示的同步数据表31。由于数据库Master中的数据还未开始向数据库Slave同步,运营服务器还未对数据库Slave执行操作,所以数据库Slave的同步数据为空,如图3中所示的表32。
此外,为了再次接收到业务A的业务请求时判断出本次操作的是数据库Master,可以将业务A的标识A和数据库标识Master对应记录,生成如图3中表33所示的黑名单,存储在数据库Slave。
请参阅图4,图4所示的场景中,数据库Master是运营服务器优先访问的初始数据库,数据库Slave是数据库Master的冗余备份数据库或迁移数据库,数据库Master存储有图3对应的实施例中生成的数据同步记录,如图4所示的表41,已根据表41将数据库Master的至少部分数据同步到数据库Slave,数据库Slave是运营服务器当前化优先访问的数据库,存储有图3对应的实施例中生成的黑名单,如图4所示的表42。
实际应用中,如果用户在客户端设备登录客户端,并通过客户端向运营服务器发送针对业务B的第一业务请求(步骤401):将业务B的状态设为1,运营服务器接收到该业务请求后,运营服务器可从数据库Slave中调取表42所示的黑名单(步骤402),再判断调取的黑名单中是否存在业务B(步骤403),判断结果为不存在,可以向数据库Slave写入用于将业务B的状态设为1的数据(步骤S404):表示“业务B的状态为1”的字符串。然后,为了后期同步数据,可以标记写入的数据,生成图4中所示的同步数据表43。
此外,为了再次接收到业务B的业务请求时判断出本次操作的是数据库Slave,可以将业务B的标识B和数据库标识Slave对应记录,生成如图4中表44所示的黑名单。
请参阅图5,图5所示的场景中,数据库Master是运营服务器优先访问的初始数据库,数据库Slave是数据库Master的冗余备份数据库或迁移数据库,数据库Master存储有图3对应的实施例中生成的数据同步记录,如图5所示的表51,已根据表51将数据库Master的至少部分数据同步到数据库Slave,数据库Slave是运营服务器当前化优先访问的数据库,存储有图4对应的实施例中生成的同步数据记录和黑名单,分别如图5所示的表52和表53。
实际应用中,如果用户在客户端设备登录客户端,并通过客户端向运营服务器发送针对业务A的第二业务请求(步骤501):将业务A的状态设为2,运营服务器接收到该业务请求后,运营服务器可从数据库Slave中调取表53所示的黑名单(步骤502),再判断调取的黑名单中是否存在业务A,以及存在时对应的服务器标识是否为Slave(步骤503),判断结果是存在业务A,对应的服务器标识不是Slave,此时,不允许运营服务器向数据库Slave写入用于将业务A的状态设为2的数据,则拒绝该业务请求(步骤S504)。
在其他场景下,如果数据库Master是运营服务器初始化优先访问的数据库,数据库Slave是数据库Master的冗余备份数据库或迁移数据库,数据库Master存储有图3对应的实施例中生成的数据同步记录,如图5所示的表51,已根据表51将数据库Master的所有需同步的数据同步到数据库Slave,那么即使调取的黑名单中存在业务A,且业务A对应的服务器标识不是Slave,也允许运营服务器向数据库Slave写入用于将业务A的状态设为2的数据。
请参阅图6,图6所示的场景中,数据库Master是运营服务器初始优先访问的数据库,数据库Slave是数据库Master的冗余备份数据库或迁移数据库,已根据图3对应的实施例中生成的数据同步记录,将数据库Master的至少部分数据同步到数据库Slave。
数据库Slave在切换为运营服务器化优先访问的数据库后,存储有图4对应的实施例中生成的黑名单和同步数据记录,分别如图6所示的表62和表63,已根据表63所示的数据同步记录,将数据库Slave的至少部分数据同步到数据库Master,再次切换后,数据库Master是运营服务器当前优先访问的数据库。
实际应用中,如果用户在客户端设备登录客户端,并通过客户端向运营服务器发送针对业务A的第二业务请求(步骤601):将业务A的状态设为2,运营服务器接收到该业务请求后,运营服务器可从数据库Slave中调取表62所示的黑名单(步骤602),再判断调取的黑名单中是否存在业务A,以及存在时对应的服务器标识是否为Master(步骤603),判断结果是存在业务A,对应的服务器标识不是Master,此时,运营服务器可以向数据库Master写入用于将业务A的状态设为2的数据(步骤S604):表示“业务A的状态为2”的字符串。然后,为了后期同步数据,可以标记写入的数据,生成图6中所示的同步数据表61。
此外,由于也去请求记录中已存在业务A和本次操作的是数据库的标识Master,可以不对黑名单进行修改。
针对图3至图6中任一项所述的应用场景,当满足预定的定时条件时,可以将数据库Master中已标记的数据同步到数据库Slave中,或者,将数据库Slave中已标记的数据同步到数据库Master中。
此外,如果业务A或业务B时需要实现幂等的业务,可以在允许对数据库Master或数据库Slave进行与业务请求相应的操作前,判断是否首次接收到该业务请求,如果是则允许对数据库Master或数据库Slave进行与业务请求相应的操作,如果不是,则禁止对数据库Master或数据库Slave进行与业务请求相应的操作。
由上述实施例可知:本说明书提供的数据处理方案,既可以实现同一业务在各数据库的数据一致,还可以保证数据迁移过程中的业务幂等。
与前述方法的实施例相对应,本说明书还提供了装置的实施例。
参见图7,图7是本说明书一示例性实施例示出的数据处理装置的框图,该装置可以包括:数据库确定模块710、记录获取模块720、数据操作模块730和业务记录模块740。
其中,数据库确定模块710,用于接收到针对预定业务的业务请求后,从多个可用于响应所述业务请求的数据库中,确定响应所述业务请求需操作的数据库为第一数据库。
记录获取模块720,用于获取预定的业务请求记录,所述业务请求记录用于记录历史业务请求所针对的业务、响应该历史业务请求所操作的数据库。
数据操作模块730,用于在所述业务请求记录中未记录所述预定业务时,允许对第一数据库执行与所述业务请求相应的操作。
业务记录模块740,用于将所述预定业务与第一数据库记录到所述业务请求记录。
一些例子中,所述多个可用于响应所述业务请求的数据库,包括:主数据库和该主数据库的冗余备份数据库。
另一些例子中,所述多个可用于响应所述业务请求的数据库,包括:主数据库和该主数据库的迁移数据库。
作为例子,第一数据库当前允许所述预定业务的业务系统对其执行读写操作。
作为例子,本说明书实施例的数据处理装置还可以包括:
同步标记模块,用于在允许对第一数据库执行与所述业务请求相应的操作后,将本次在第一数据库中操作的数据标记为待同步到所述迁移数据库的数据。
数据迁移模块,用于在满足预定的同步条件时,将第一数据库中已标记的数据同步到所述迁移数据库。
作为例子,所述业务请求记录存储在主数据库的迁移数据库中。
另一些例子中,本说明书实施例的数据处理装置还可以包括:
数据库判断模块,用于在所述业务请求记录中记录有所述预定业务的描述信息,判断响应所述预定业务的历史业务请求时操作的数据库,是否为第一数据库。
第一操作禁止模块,用于在响应所述预定业务的历史业务请求时操作的数据库不是第一数据库时,禁止对第一数据库执行与所述业务请求相应的操作。
作为例子,本说明书实施例的数据处理装置还可以包括:
首次请求判断模块,用于在响应所述预定业务的历史业务请求时操作的数据库是第一数据库时,判断是否首次接收到所述业务请求。
第二操作禁止模块,用于在不是首次接收到所述业务请求时,禁止对第一数据库执行与所述业务请求相应的操作。
第一操作允许模块,用于在是首次接收到所述业务请求时,允许对第一数据库执行与所述业务请求相应的操作。
作为例子,本说明书实施例的数据处理装置还可以包括:
第三操作禁止模块,用于在第一数据库中未存储有与所述预定业务相关的述预定业务相关的任一组数据时,禁止对第一数据库执行与所述业务请求相应的操作。
首次请求确认模块,用于在第一数据库中存储有与所述预定业务相关的各组数据时,判断是否首次接收到所述业务请求。
第四操作禁止模块,用于在不是首次接收到所述业务请求时,禁止对第一数据库执行与所述业务请求相应的操作;
第二操作允许模块,用于在首次接收到所述业务请求时,允许对第一数据库执行与所述业务请求相应的操作。
作为例子,与所述预定业务相关的数据是响应针对所述预定业务的历史业务请求时所生成的数据。
另一些例子中,业务记录模块740可以包括第一记录模块或第二记录模块,其中:
第一记录模块,用于将所述预定业务在第一数据库中的索引、第一数据库的标识对应记录到所述业务请求记录。
第二记录模块,用于将本次在第一数据库中操作的数据的索引、第一数据库的标识对应记录到所述业务请求记录。
上述装置中各个单元(或模块)的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元或模块可以是或者也可以不是物理上分开的,作为单元或模块显示的部件可以是或者也可以不是物理单元或模块,即可以位于一个地方,或者也可以分布到多个网络单元或模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书装置的实施例可以应用在计算机设备上。具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现中,计算机设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、个人数字助理、媒体播放器或者这些设备中的任意几种设备的组合。
装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在计算机设备的处理器将非易失性存储器等可读介质中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图8所示,为本说明书装置所在计算机设备的一种硬件结构图,除了图8所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的计算机设备通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。
在一个例子中,计算机设备的存储器可以存储处理器可执行程序指令;处理器可以耦合存储器,用于读取所述存储器存储的程序指令,并作为响应,执行如下操作:接收到针对预定业务的业务请求后,从多个可用于响应所述业务请求的数据库中,确定响应所述业务请求需操作的数据库为第一数据库;获取预定的业务请求记录,所述业务请求记录用于记录历史业务请求所针对的业务、响应该历史业务请求所操作的数据库;如果所述业务请求记录中未记录所述预定业务,则允许对第一数据库执行与所述业务请求相应的操作,并将所述预定业务与第一数据库记录到所述业务请求记录。
在其他实施例中,处理器所执行的操作可以参考上文方法实施例中相关的描述,在此不予赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在其他实施例中,处理器所执行的操作可以参考上文方法实施例中相关的描述,在此不予赘述。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (23)

1.一种数据处理方法,包括步骤:
接收到针对预定业务的业务请求后,从多个可用于响应所述业务请求的数据库中,确定响应所述业务请求需操作的数据库为第一数据库;
获取预定的业务请求记录,所述业务请求记录用于记录历史业务请求所针对的业务、响应该历史业务请求所操作的数据库;
如果所述业务请求记录中未记录所述预定业务,则允许对第一数据库执行与所述业务请求相应的操作,并将所述预定业务与第一数据库记录到所述业务请求记录;其中,所述与业务请求相应的操作包括:删除操作、插入操作或修改操作。
2.根据权利要求1所述的方法,所述多个可用于响应所述业务请求的数据库,包括:主数据库和该主数据库的冗余备份数据库。
3.根据权利要求1所述的方法,所述多个可用于响应所述业务请求的数据库,包括:主数据库和该主数据库的迁移数据库。
4.根据权利要求3所述的方法,第一数据库当前允许所述预定业务的运营服务器对其执行读写操作。
5.根据权利要求3所述的方法,在允许对第一数据库执行与所述业务请求相应的操作后,所述方法还包括以下步骤:
将本次在第一数据库中操作的数据标记为待同步到所述迁移数据库的数据;
在满足预定的同步条件时,将第一数据库中已标记的数据同步到所述迁移数据库。
6.根据权利要求3所述的方法,所述业务请求记录存储在所述迁移数据库中。
7.根据权利要求1所述的方法,如果所述业务请求记录中记录有所述预定业务,所述方法还包括以下步骤:
判断响应所述预定业务的历史业务请求时操作的数据库,是否为第一数据库;
如果不是第一数据库,则禁止对第一数据库执行与所述业务请求相应的操作。
8.根据权利要求7所述的方法,如果响应所述预定业务的历史业务请求时操作的数据库是第一数据库,所述方法还包括以下步骤:
判断是否首次接收到所述业务请求;
如果不是首次接收到所述业务请求,则禁止对第一数据库执行与所述业务请求相应的操作;
如果是首次接收到所述业务请求,则允许对第一数据库执行与所述业务请求相应的操作。
9.根据权利要求7所述的方法,在禁止对第一数据库执行与所述业务请求相应的操作前,所述方法还包括以下步骤:
如果第一数据库中未存储有与所述预定业务相关的述预定业务相关的任一组数据,则禁止对第一数据库执行与所述业务请求相应的操作;
如果第一数据库中存储有与所述预定业务相关的各组数据,则判断是否首次接收到所述业务请求;
如果不是首次接收到所述业务请求,则禁止对第一数据库执行与所述业务请求相应的操作;
如果是首次接收到所述业务请求,则允许对第一数据库执行与所述业务请求相应的操作。
10.根据权利要求9所述的方法,与所述预定业务相关的数据是响应针对所述预定业务的历史业务请求时所生成的数据。
11.根据权利要求1至10中任一项所述的方法,所述将所述预定业务与第一数据库记录到所述业务请求记录,包括:
将所述预定业务在第一数据库中的索引、第一数据库的标识对应记录到所述业务请求记录;或,
将本次在第一数据库中操作的数据的索引、第一数据库的标识对应记录到所述业务请求记录。
12.一种数据处理装置,包括:
数据库确定模块,用于接收到针对预定业务的业务请求后,从多个可用于响应所述业务请求的数据库中,确定响应所述业务请求需操作的数据库为第一数据库;
记录获取模块,用于获取预定的业务请求记录,所述业务请求记录用于记录历史业务请求所针对的业务、响应该历史业务请求所操作的数据库;
数据操作模块,用于在所述业务请求记录中未记录所述预定业务时,允许对第一数据库执行与所述业务请求相应的操作;其中,所述与业务请求相应的操作包括:删除操作、插入操作或修改操作;
业务记录模块,用于将所述预定业务与第一数据库记录到所述业务请求记录。
13.根据权利要求12所述的装置,所述多个可用于响应所述业务请求的数据库,包括:主数据库和该主数据库的冗余备份数据库。
14.根据权利要求12所述的装置,所述多个可用于响应所述业务请求的数据库,包括:主数据库和该主数据库的迁移数据库。
15.根据权利要求14所述的装置,第一数据库当前允许所述预定业务的运营服务器对其执行读写操作。
16.根据权利要求14所述的装置,所述装置还包括:
同步标记模块,用于在允许对第一数据库执行与所述业务请求相应的操作后,将本次在第一数据库中操作的数据标记为待同步到所述迁移数据库的数据;
数据迁移模块,用于在满足预定的同步条件时,将第一数据库中已标记的数据同步到所述迁移数据库。
17.根据权利要求14所述的装置,所述业务请求记录存储在主数据库的迁移数据库中。
18.根据权利要求12所述的装置,所述装置还包括:
数据库判断模块,用于在所述业务请求记录中记录有所述预定业务的描述信息,判断响应所述预定业务的历史业务请求时操作的数据库,是否为第一数据库;
第一操作禁止模块,用于在响应所述预定业务的历史业务请求时操作的数据库不是第一数据库时,禁止对第一数据库执行与所述业务请求相应的操作。
19.根据权利要求18所述的装置,所述装置还包括:
首次请求判断模块,用于在响应所述预定业务的历史业务请求时操作的数据库是第一数据库时,判断是否首次接收到所述业务请求;
第二操作禁止模块,用于在不是首次接收到所述业务请求时,禁止对第一数据库执行与所述业务请求相应的操作;
第一操作允许模块,用于在是首次接收到所述业务请求时,允许对第一数据库执行与所述业务请求相应的操作。
20.根据权利要求18所述的装置,所述装置还包括:
第三操作禁止模块,用于在第一数据库中未存储有与所述预定业务相关的述预定业务相关的任一组数据时,禁止对第一数据库执行与所述业务请求相应的操作;
首次请求确认模块,用于在第一数据库中存储有与所述预定业务相关的各组数据时,判断是否首次接收到所述业务请求;
第四操作禁止模块,用于在不是首次接收到所述业务请求时,禁止对第一数据库执行与所述业务请求相应的操作;
第二操作允许模块,用于在首次接收到所述业务请求时,允许对第一数据库执行与所述业务请求相应的操作。
21.根据权利要求20所述的装置,与所述预定业务相关的数据是响应针对所述预定业务的历史业务请求时所生成的数据。
22.根据权利要求12至21中任一项所述的装置,所述业务记录模块包括:
第一记录模块,用于将所述预定业务在第一数据库中的索引、第一数据库的标识对应记录到所述业务请求记录;或,
第二记录模块,用于将本次在第一数据库中操作的数据的索引、第一数据库的标识对应记录到所述业务请求记录。
23.一种计算机设备,包括:
处理器;
存储处理器可执行程序指令的存储器;
其中,所述处理器耦合于所述存储器,用于读取所述存储器存储的程序指令,并执行所述程序指令以实现如下操作:
接收到针对预定业务的业务请求后,从多个可用于响应所述业务请求的数据库中,确定响应所述业务请求需操作的数据库为第一数据库;
获取预定的业务请求记录,所述业务请求记录用于记录历史业务请求所针对的业务、响应该历史业务请求所操作的数据库;
如果所述业务请求记录中未记录所述预定业务,则允许对第一数据库执行与所述业务请求相应的操作,并将所述预定业务与第一数据库记录到所述业务请求记录;其中,所述与业务请求相应的操作包括:删除操作、插入操作或修改操作。
CN201710728870.4A 2017-08-23 2017-08-23 数据处理方法、装置及设备 Active CN107580032B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710728870.4A CN107580032B (zh) 2017-08-23 2017-08-23 数据处理方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710728870.4A CN107580032B (zh) 2017-08-23 2017-08-23 数据处理方法、装置及设备

Publications (2)

Publication Number Publication Date
CN107580032A CN107580032A (zh) 2018-01-12
CN107580032B true CN107580032B (zh) 2020-04-24

Family

ID=61035947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710728870.4A Active CN107580032B (zh) 2017-08-23 2017-08-23 数据处理方法、装置及设备

Country Status (1)

Country Link
CN (1) CN107580032B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110149352B (zh) * 2018-02-11 2021-07-27 腾讯科技(深圳)有限公司 一种业务请求处理方法、装置、计算机设备和存储介质
CN111260304B (zh) * 2019-11-26 2024-03-08 上海赛连信息科技有限公司 一种试用账户管理和发放方法和装置
CN112908319B (zh) * 2019-12-04 2022-10-25 海信视像科技股份有限公司 一种处理信息交互的方法及设备
CN111241112B (zh) * 2019-12-27 2023-05-23 山大地纬软件股份有限公司 一种保证幂等的微服务调用监管系统及方法
CN113610537A (zh) * 2021-08-05 2021-11-05 北京云从科技有限公司 请求执行方法、服务器、计算机设备和存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI104598B (fi) * 1996-08-29 2000-02-29 Nokia Networks Oy Tapahtumien tallettaminen palvelutietokantajärjestelmässä
GB2463000B (en) * 2008-07-25 2012-11-07 Vodafone Plc Mobile communications network
US8984170B2 (en) * 2011-09-09 2015-03-17 Oracle International Corporation Idempotence for database transactions
CN102306197B (zh) * 2011-09-22 2013-07-03 用友软件股份有限公司 保证跨数据源操作结果一致性的装置和方法
CN104572754B (zh) * 2013-10-24 2018-06-05 北大方正集团有限公司 一种数据库系统、数据库系统访问方法及装置
CN105045877B (zh) * 2015-07-20 2018-10-12 深信服科技股份有限公司 数据库数据分片存储方法和装置、数据查询方法和装置
CN106209875A (zh) * 2016-07-19 2016-12-07 青岛海信传媒网络技术有限公司 基于多业务服务器的业务处理方法及业务服务器

Also Published As

Publication number Publication date
CN107580032A (zh) 2018-01-12

Similar Documents

Publication Publication Date Title
CN107580032B (zh) 数据处理方法、装置及设备
CN107391758B (zh) 数据库切换方法、装置及设备
US8914856B1 (en) Synchronization of networked storage systems and third party systems
US20110106826A1 (en) Tracking digital assets on a distributed network
CN108683668B (zh) 内容分发网络中的资源校验方法、装置、存储介质及设备
US11425571B2 (en) Device configuration method, apparatus and system
CN104106241A (zh) 生成安全名称记录的系统和方法
US10467424B2 (en) File system content based security
CN103166911B (zh) 一种版本管理服务器权限管理方法和设备
US8868677B2 (en) Automated data migration across a plurality of devices
US9471896B2 (en) Memo synchronization system, mobile system, and method for synchronizing memo data
CN110022315A (zh) 一种块链式账本中的权重管理方法、装置及设备
CN112036125B (zh) 一种文档管理方法、装置及计算机设备
WO2020168757A1 (zh) 网络系统访问方法、装置、计算机设备及可读存储介质
CN111240892A (zh) 数据备份方法及装置
US20150020167A1 (en) System and method for managing files
CN113395340A (zh) 一种信息更新方法、装置、设备、系统和可读存储介质
CN105224541B (zh) 数据的唯一性控制方法、信息存储方法及装置
CN114328029A (zh) 一种应用资源的备份方法、装置、电子设备及存储介质
US10853892B2 (en) Social networking relationships processing method, system, and storage medium
CN110471906B (zh) 数据库切换方法、装置及设备
CN113282580A (zh) 用于执行定时任务的方法、存储介质及服务器
CN115174158B (zh) 基于多云管理平台的云产品配置检查方法
CN114928620B (zh) 用户信息同步方法、装置、设备、存储介质和程序产品
KR20120073799A (ko) 클라우드 스토리지 기반의 데이터 동기화 및 서비스 제공 장치와 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right