CN112486956A - 数据存取方法、装置和电子设备 - Google Patents

数据存取方法、装置和电子设备 Download PDF

Info

Publication number
CN112486956A
CN112486956A CN202011462487.7A CN202011462487A CN112486956A CN 112486956 A CN112486956 A CN 112486956A CN 202011462487 A CN202011462487 A CN 202011462487A CN 112486956 A CN112486956 A CN 112486956A
Authority
CN
China
Prior art keywords
data
application server
information
request
user
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.)
Pending
Application number
CN202011462487.7A
Other languages
English (en)
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.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co 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 Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202011462487.7A priority Critical patent/CN112486956A/zh
Publication of CN112486956A publication Critical patent/CN112486956A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

本公开实施例公开了数据存取方法、装置和电子设备。该方法的一具体实施方式包括:接收用户发送的数据存取请求;检测用于指示预设数据库是否处于可访问状态的预设信息访问开关是否开启,所述信息访问开关在所述数据库不可访问状态时开启;响应于确定检测结果为是,确定与所述数据存取请求所对应的目标应用服务器;将所述数据存取请求发送给目标应用服务器,以使目标应用服务器执行所述存取请求对应的存取操作。一方面,可以提高对用户的数据获取请求反馈的速度,另一方面,可以降低现有技术中,为了保证数据库发生故障时,可以持续为用户提供数据存取操作所需的增加备份数据库所需要的成本。

Description

数据存取方法、装置和电子设备
技术领域
本公开涉及互联网技术领域,尤其涉及一种数据存取方法、装置和电子设备。
背景技术
为了支撑客户端的大流量请求,服务端通常采用分布式的架构,使用多台应用服务器提供服务。在分布式架构下现有的服务端存储架构包括Redis数据库和Mysql预设数据库。用户可以向应用服务器发送数据获取请求。在Redis工作正常的情况下,由Redis为应用服务器提供数据服务。Mysql服务器作为Redis服务器宕机时的备份预设数据库。如果Redis预设数据库发生宕机,应用服务器将停止对Redis预设数据库的访问,替换成访问作为备份的Mysql预设数据库。
发明内容
提供该公开内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该公开内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
本公开实施例提供了一种数据存取方法、装置和电子设备。
第一方面,本公开实施例提供了一种数据存取方法,应用于应用服务器,包括:接收用户发送的数据存取请求;检测用于指示预设数据库是否处于可访问状态的预设信息访问开关是否开启,所述信息访问开关在所述数据库不可访问状态时开启;响应于确定检测结果为是,确定与所述数据存取请求所对应的目标应用服务器;将所述数据存取请求发送给目标应用服务器,以使目标应用服务器执行所述存取请求对应的存取操作。
第三方面,本公开实施例提供了一种信息获取装置,应用于应用服务器,包括:接收单元,用于接收用户发送的数据存取请求;检测单元,用于检测用于指示预设数据库是否处于可访问状态的预设信息访问开关是否开启,所述信息访问开关在所述数据库不可访问状态时开启;确定单元,用于响应于确定检测结果为是,确定与所述数据存取请求所对应的目标应用服务器;发送单元,用于将所述数据存取请求发送给目标应用服务器,以使目标应用服务器执行所述存取请求对应的存取操作。
第三方面,本公开实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的数据存取方法,或者如第二方面所述的数据存取方法。
第四方面,本公开实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的数据存取方法,或者如第二方面所述的数据存取方法。
本公开实施例提供的数据存取方法、装置和电子设备,通过接收用户发送的数据存取请求;检测用于指示预设数据库是否处于可访问状态的预设信息访问开关是否开启,所述信息访问开关在所述数据库不可访问状态时开启;响应于确定检测结果为是,确定与所述数据存取请求所对应的目标应用服务器;将所述数据存取请求发送给目标应用服务器,以使目标应用服务器执行所述存取请求对应的存取操作。相对于相关技术中的,应用服务器仅实现将用户的访问请求发送给数据库,又将数据库返回的数据发送给用户的现有技术方案相比,本方案中可以实现在数据库不可访问时,由应用服务器来进行数据存取,一方面,可以提高对用户的数据获取请求反馈的速度,另一方面,可以降低现有技术中,为了保证数据库发生故障时,可以持续为用户提供数据存取操作所需的增加备份数据库所需要的成本。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1是根据本公开的数据存取方法的一个实施例的流程图;
图2是根据本公开的数据存取方法的一个原理性结构示意图;
图3是根据本公开的数据存取装置的一个示意性结构图;
图4是本公开的一个实施例的数据存取方法可以应用于其中的信息获取系统的示意性架构图;
图5是根据本公开实施例提供的电子设备的基本结构的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
请参考图1,其示出了根据本公开的数据存取方法的一个实施例的流程。该数据存取方法应用于应用服务器器。如图1所示该数据存取方法,包括以下步骤:
步骤101,接收用户发送的数据存取请求。
在本实施例中,用户可以使用终端设备向服务器发送数据存取请求。
在一些应用场景中,上述数据存取方法可以应用于电子支付领域。在这些应用场景中,用户可以在终端设备中发起数据存储请求。上述数据存储请求可以包括用户的信息。用户的信息包括用户的用户访问应用服务器的身份信息,例如用户账号。此外,用户的身份信息还可以包括用户的姓名、用户的支付口令、用户的用于登录服务端的密码等。
上述应用服务器中可以设置预设存储区域。在接收到用户输入的上述数据存储请求之后,可以将上述数据存储请求所指示的数据存储在目标应用服务器本地的上述预设存储区域。此外,还可以将上述存储数据发送至预设数据库,以使预设数据库存储上述存储数据。
此外,上述数据存取请求还可以是数据获取请求。当用户在终端设备上发起支付操作时,用户可以通过终端设备向服务端发送获取支付验证码的数据获取请求。上述数据获取请求可以包括用户的用户身份信息。
在一些应用场景中,上述服务器可以包括多台应用服务器,以及为应用服务器用户数据获取请求的负载均衡服务器。
步骤102,检测用于指示预设数据库是否处于可访问状态的预设信息访问开关是否开启,所述信息访问开关在所述数据库不可访问状态时开启。
通常,应用服务器将用户的数据存取请求转发给预设数据库进行处理。在一些应用场景中,预设数据库可能处于不可访问的状态。例如预设数据库宕机,与预设数据库之间的通信链路出现故障等。
在本实施例中,可以设置预设信息访问开关。上述预设信息访问开关在数据库处于不可访问状态时开启。预设信息访问开关在数据库处于访问状态时关闭。
在一些可选的实现方式中,上述信息访问开关的状态通过如下步骤确定:
响应于检测到预设数据库当前运行异常和/或统计历史接口访问的失败率大于预设失败率阈值,将所述信息访问开关设置为开启状态;否则,将信息访问开关设置为关闭状态。
在一些应用场景中,上述预设数据库可以每隔预设时间间隔通过与应用服务器之间的通信连接,向应用服务器发送用于指示是否正常运行的运行状态信息。上述状态信息例如可以包括正常运行状态、运行异常状态。运行异常状态例如可以包括宕机状态。在预设数据库发生宕机时,可以在宕机之前向应用服务器发送发生宕机的运行状态信息。
在这些应用场景中,应用服务器可以根据上述运行状态信息来确定预设数据库是否处于可访问状态。当服务器的运行状态信息为正常运行状态时,确定预设数据库处于可访问状态。否则,可以确定预设数据库处于当前运行异常。
在另外一些应用场景中,应用服务器可以每隔预设时间段根据向预设数据库发送的状态确认信息。根据数据库对上述状态确认信息发送的反馈信息确定预设数据库是否处于可访问状态。如果反馈信息指示预设数据库正常运行,则预设数据库处于可访问状态,否则预设数据库处于异常。
此外,应用服务器还可以统计历史接口访问的失败率。也即应用服务器每隔预设时间段,统计一次历史访问数据库接口的结果记录。上述结果包括成功和失败。上述历史访问预设数据库的结果记录可以为距离当前时刻的历史时间例如30分钟、60分钟内的访问数据库的访问结果记录等。上述历史时间可以根据具体的应用场景来设置历史时间。当预设数据库的历史接口访问的失败率大于预设失败率阈值,将信息访问开关置为开启状态。上述预设失败率阈值可以为50%、60%等,此处不进行限制。
若预设数据库处于可访问状态,则将上述预设信息访问开关置为关闭,若预设数据库处于不可访问状态,则将上述信息访问开关置为开启。
在本实施例中,若预设信息访问开关处于开启时,可以由服务器根据上述数据获取请求进行响应。也即对于数据存储请求,将数据存储请求指示的数据存储到服务器,对于数据获取请求,从服务器中确定数据获取请求指示的数据,并将上述数据发送给用户。
也即,由预设信息访问开关控制是否由服务器来根据数据存取请求对数据进行存储操作。
在接收到上述数据存取请求之后,服务器可以检测上述预设信息访问开关是否开启。
在接收到用户的数据存取请求之后,可以检测上述预设信息访问开关是否开启。
步骤103,响应于确定检测结果为是,确定与数据存取请求所对应的目标应用服务器。
在本实施例中,如果在步骤102中的检测结果为是,可以确定数据存取请求所述对应的目标应用服务器。
在一些应用场景中,应用服务器的数量可以为两个以上。当应用服务器的数量为两个以上时,可以根据各种方法从上述两个以上应用服务器中确定出目标应用服务器。确定目标应用服务的方法例如可以为负载均衡方法。
具体地,可以协调多个应用服务器各自的负载,以使多个应用服务器各自对应的负载达到相对均衡的目的。这里的负载可以是为负载均衡服务器为应用服务器分配的数据存取请求的数量。
接收到用户通过终端设备发送的数据获取请求之后,可以根据各应用服务器的负载状况为上述数据获取请求分配目标应用服务器。从而一方面使得各应用服务器的负载均衡,另一方面使得用户的数据获取请求可以得到较快的响应速度。
在本实施例的一些可选的实现方式中,上述步骤103可以包括:根据所述用户身份信息,将为所述用户提供过历史数据存取请求服务的应用服务器作为目标应用服务器。可以为每一次数据存取请求的响应做一条记录,例如该记录可以包括数据存取请求的用户身份信息、为该数据存取请求进行服务的应用服务器的标识。
在这些可选的实现方式中,对于同一用户,可以识别该用户的用户身份信息,并将该用户的数据存取请求,分配给为该用户历史提供过数据存取请求服务的同一目标应用服务器。
这样一来,可以将该用户在不同时刻发送的数据存取请求均分配给同一目标应用服务器。为同一用户分配同一目标应用服务器,从而该用户在个不同时间段的数据存取请求可以由同一目标应用服务器执行,从而使得该用户的数据存取请求可以较完整地保存和记录在同一目标应用服务器中。
在一些应用场景中,上述数据存取请求为数据获取请求。用户从服务端获取数据服务时,服务端需要对用户的之前存储的存储数据进行匹配,当匹配成功时,才向用户提供相应的数据服务。目标应用服务器中若存储了该用户对应的上述存储数据,在接收到该用户发送的数据获取请求时,可以根据用户的用户身份信息在上述应用服务器中查找与用户身份信息匹配的用户的存储数据。可以提高对用户的数据获取请求的反应速度。
在一些应用场景中,上述用户的用户身份信息可以包括用户使用的终端设备所对应的网络协议地址(IP地址)。上述确定所述数据存取请求所对应的目标应用服务器可以包括如下步骤:
首先,确定网络协议地址对应的哈希值。
其次,将上述哈希值按照上述多个应用服务器的数量取模,得到目标应用服务器的索引值。
最后,根据上述索引值在多个应用服务器中确定目标应用服务器。
例如可以使用一致性哈希算法来确定IP地址对应哈希值。上述一致性哈希算法例如可以包括但不限于MD(Message-Digest Algorithm)2、MD3、MD4、MD5等。
然后对哈希值按照上述多个应用服务器器的数量取模。也即模为应用服务器的数量。上述索引值可以为对上述哈希值以应用服务器的数量进行取模,得到的值。
根据上述索引值来确定为上述用户提供数据存取服务的目标应用服务器。
需要说明的是,上述哈希算法以及对对哈希值取模运算是目前广泛研究和应用的公知技术,此处不进行赘述。
在这些应用场景中,通过对用户终端设备的IP地址计算哈希值,并对哈希值根据应用服务器的数量取模得到的应用服务器的索引值,来确定目标应用服务器,可以实现用户通过上述终端设备访问同一目标应用服务器。以实现用户通过上述目标应用服务器进行数据存取。
在一些应用场景中,上述数据存取请求可以为数据获取请求。根据上述数据获取请求,目标服务器确定的反馈数据例如可以是各种与上述数据获取请求所对应的反馈数据。作为示例,上述反馈数据例如可以是动态口令,验证码等。
步骤104,将数据存取请求发送给目标应用服务器,以使目标应用服务器执行存取请求对应的存取操作。
具体地,若数据存取请求为数据存储请求,上述目标应用服器可以对数数据存储请求所指示的数据进行存储。若数据存取请求为数据获取请求,上述目标应用服器可以确定数数据获取请求所指示的数据,并将上述数据发送给用户。
上述目标应用服务器可以事先设置数据存储区域。在该数据存储区域中可以存储多个用户的用户数据。上述用户数据可以包括键值对。上述键值对中的键和键值在上述存储区域中关联存储。
作为示例,上述键值对中的键例如可以包括用户的标识,键值可以包括与用户对应的反馈数据。
在本实施例中,上述数据存储区域的大小可以基于所述预设数据库的存储空间以及应用服务器的数量来设置。
为了提高为用户的数据存取请求的反应速度,上述数据存储区域可以是设置在应用服务器的内存中的数据存储区域。
具体地,应用服务数据存储区域=预设数据库存储内存/应用服务器台数ⅹ冗余系数。
这里的冗余系数可以根据具体地应用场景进行设置,此处不进行限定。
目标应用服务器在本地提取了反馈数据之后,可以将上述反馈数据发送给用户的终端设备。以使终端设备向用户展示所述反馈数据。
本公开的上述实施例提供的方法,通过接收用户发送的数据存取请求;检测用于指示预设数据库是否处于可访问状态的预设信息访问开关是否开启,所述信息访问开关在所述数据库不可访问状态时开启;响应于确定检测结果为是,确定与所述数据存取请求所对应的目标应用服务器;将所述数据存取请求发送给目标应用服务器,以使目标应用服务器执行所述存取请求对应的存取操作。相对于现有技术中的,应用服务器仅实现将用户的访问请求发送给数据库,又将数据库返回的数据发送给用户的现有技术方案相比,本方案中可以实现在数据库不可访问时,由应用服务器来进行数据存取,一方面,可以提高对用户的数据获取请求反馈的速度,另一方面,可以降低现有技术中,为了保证数据库发生故障时,可以持续为用户提供数据存取操作所需的增加备份数据库所需要的成本。
在本实施例的一些可选的实现方式中,上述信息访问开关为开启状态。在上述信息访问开关为开启状态下,上述数据存取方法还包括如下步骤:
首先,确定当前接收到的信息是否为用于检测预设数据库是否正常运行的探测请求信息。
其次,响应于确定结果为是,向预设数据库发送所述探测请求信息。
最后,基于所述的预设数据库根据所述探测请求信息的反馈信息,确定是否将所述信息访问开关设置为关闭状态。
在这些可选的实现方式中,探测预设数据库是否正常运行的探测请求可以由其他电子设备或者用户发送。应用服务器可以对每一条所接收到的信息进行头文件信息识别,根据头文件信息确定该信息是否为用于探测预设数据库是否正常运行的探测请求信息。
若当前接收到的信息为上述探测请求信息,则通过与预设数据库之间的通信连接,向上述预设数据库发送上述探测请求信息。若当前接收到的信息不是探测请求信息,则将上述信息分配给目标应用服务器进行处理。
在向预设数据库发送上述探测请求信息之后,可以接收预设数据库根据上述探测请求信息发送的反馈信息,确定是否将信息访问开关设置为关闭状态。
在一些应用场景中,上述预设数据库如果处于无法继续进行数据服务的状态,可以向服务器发送一个用于指示异常中的反馈信息。
在另外一些应用场景中,如预设数据库还未恢复,无法对探测请求信息进行反馈,则应用服务器可以在发出探测请求信息之后的预设时间之后没有接收到预设数据库的反馈信息视为预设数据库的反馈信息为异常。
若预设数据库的反馈信息为异常,则保持上述信息访问开关的开启状态。若预设数据库的反馈信息为已恢复正常,则可以将上述信息访问开关置为关闭状态。
在信息访问开关为关闭状态时,应用服务器可以将用户的信息存取请求发送给预设数据库。由上述预设数据库对用户的信息存取请求进行响应。
在一些可选的实现方式中,上述数据存取方法还包括如下步骤:响应于所述预设信息访问开关由开启转为关闭后接收到所述预设数据库发送的数据迁移请求,将所述数据迁移请求所指示的存储数据发送给所述预设数据库。
在这些可选的实现方式中,为了保持预设数据库的中的数据的完整性,在预设数据库异常时由应用服务器代为执行的对用户的数据存取请求进行相应的记录,在预设数据库恢复之后,可以迁移至预设库中。具体地,预设数据库在恢复之后,可以向应用服务器发送数据迁移请求,上述数据迁移请求可以包括预设数据库异常的时间信息,预设数据库可以将上述时间信息所指示的时间段内发生的全部的数据记录迁移至上述预设数据库。上述数据记录包括数据存取请求发生的时间信息、数据存取请求对应的数据。
在本实施例的一些可选的实现方式中,上述数据存取操作还包括如下步骤:
响应于检测到应用服务器重新启动,向预设数据库发送数据同步请求,以使预设数据库根据上述数据同步请求,向应用服务器发送数据同步请求所指示的与应用服务器匹配的存储数据。
在这些可选的实现方式中,应用服务器中可以对用户发送的存取数据信息进行存储,实现了数据的备份,以避免应用服务器或者预设数据库中的一方出现故障后,发生数据丢失的现象。
在一个应用服务器发生故障后,可以由其他的备用应用服务器代替该应用服务器对数据存取请求进行处理,也即将上述数据存取请求发送给预设数据库。由预设数据库执行对存取请求进行响应。预设数据库对上述存取请求进行相应之后,可以生成对该存取请求进行响应的数据记录。在该应用服务器故障解除恢复运行之后,可以向上述预设数据库发送数据同步请求,同步请求可以包括时间段信息、应用服务器的标识信息。预设数据库可以根据上述时间段信息和应用服务器的标识信息在本地确定出由上述备用服务器在上述时间段信息所指示的时间段内代为执行的处理操作所对应的全部数据记录作为目标数据记录。并将上述目标数据记录发送给上述应用服务器。
在这些可选的实现方式中,可以使用应用服务器中存储的数据作为预设数据库的备份数据。当预设数据库发生故障时,一方面由于应用服务器中存储有预设数据库中的数据,不会发生数据丢失,用户可以通过应用服务器获取与数据获取请求匹配的数据。另一方面在预设数据库故障排除恢复后,可以应用服务器可以将其中存储的存储数据迁移至预设数据库中,同时还在应用服务器中保存上述存储数据,实现了应用服务器与预设数据库互相备份,在一方出现故障时,数据不会发生丢失,确保为用户提供数据服务。
为了实现应用服务器器中可以存储数据,需要在应用服务器的内存中设置存储区域。相比于现有技术中使用Mysql数据库作为Redis数据库的备份而言,在应用服务器中增加内存的成本要小。从而可以减少数据备份的成本。
现有技术中,使用Mysql数据库作为Redis数据库的备份时,如果Redis预设数据库发生宕机,应用服务器将停止对Redis预设数据库的访问,替换成访问作为备份的Mysql预设数据库。此时如果备份的Mysql预设数据库也发生宕机或者数据格式变更未及时同步,将造成服务不可用。增加备份的预设数据库数量能够减少备份服务器全部发生宕机或者网络故障的概率,但是无法消除这种概率,并且随着备份服务器的增加,系统成本也相应增加。
本公开的方案可以解除现有技术中的对数据库的依赖,不会因为数据库宕机影响对用户的数据服务。此外,由于不用额外设置备份数据库,可以减少成本。
请参考图2,其示出了本公开的数据存取方法的一个原理性结构示意图。如图2所示,可以设置用于在应用服务器中执行数据存取的开关,也即信息访问开关。信息访问开关可以根据预设数据库的运行状态进行设置。当预设数据库异常时,信息访问开关开启,否则关闭。当接收到用户请求之后,可以确定信息访问开关是否开启,若开启,则确定用户请求是否为探测请求。若用户请求不是探测请求(也即为数据存取请求),可以确定目标应用服务器,访问目标应用服务器,也即将数据存储请求发送给目标应用服务器,以使目标应用服务器执行存取请求对应的存取操作。
若用户请求是探测请求,则正常访问预设数据库,也即向预设数据库发送上述探查请求。若预设数据库基于上述探测请求的反馈信息指示预设数据库处于正常运行状态,则可以认为试探成功。可以将信息访问开关的状态置为关闭状态。若预设数据库基于上述探测请求的反馈信息指示数据库处于异常状态,或者在预设时间段内未接收到预设数据库的反馈信息,则可以视为探测不成功,保持信息访问开关的开启状态。
当接收到用户请求时,确定信息访问开关关闭,则可以正常访问预设数据库,也即将上述用户请求发送给预设数据库,由于数据库对用户请求进行相应的数据存取操作。
可以统计预设时间段内的访问预设数据库的访问失败率。若该预设时间段内的数据库访问失败率高于与失败率阈值,则可以视为预设数据库处于异常状态。可以开启信息访问开关,也即将信息访问开关置为开启状态。
进一步参考图3,作为对上述各图所示方法的实现,本公开提供了一种数据存取装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例的数据存取装置包括:接收单元301、检测单元302、确定单元303和发送单元304。其中,接收单元301,用于接收用户发送的数据存取请求;检测单元302,用于检测用于指示预设数据库是否处于可访问状态的预设信息访问开关是否开启,所述信息访问开关在所述数据库不可访问状态时开启;确定单元303,用于响应于确定检测结果为是,确定与所述数据存取请求所对应的目标应用服务器;发送单元304,用于将所述数据存取请求发送给目标应用服务器,以使目标应用服务器执行所述存取请求对应的存取操作。
在本实施例中,数据存取装置的接收单元301、检测单元302、确定单元303和发送单元304的具体处理及其所带来的技术效果可分别参考图1对应实施例中步骤101、步骤102、步骤103和步骤104的相关说明,在此不再赘述。
在一些可选的实现方式中,确定单元303进一步用于:根据所述用户身份信息,将为所述用户提供过历史数据存取请求服务的应用服务器作为目标应用服务器。
在一些可选的实现方式中,所述数据获取请求包括用户的用户身份信息,所述用户身份信息包括所述用户使用的终端设备所对应的网络协议地址;以及确定单元303进一步用于:确定所述网络协议地址对应的哈希值;将所述哈希值按照所述多个应用服务器的数量取模,得到所述目标应用服务器的索引值;根据所述索引值在所述多个应用服务器中确定所述目标应用服务器。
在一些可选的实现方式中,数据存储装置还包括状态设置单元(未示出)。状态设置单元用于:响应于检测到预设数据库当前运行异常和/或统计历史接口访问的失败率大于预设失败率阈值,将所述信息访问开关设置为开启状态;否则将所述信息访问开关设置为关闭状态。
在一些可选的实现方式中,所述信息访问开关为开启状态,状态设置单元进一步用于:确定当前接收到的信息是否为用于检测预设数据库是否正常运行的探测请求信息;响应于确定结果为是,向预设数据库发送所述探测请求信息;以及基于所述的预设数据库根据所述探测请求信息的反馈信息,确定是否将所述信息访问开关设置为关闭状态。
在一些可选的实现方式中,数据存取装置还包括数据迁移单元(图中未示出)。数据迁移单元用于:响应于所述预设信息访问开关由开启转为关闭后接收到所述预设数据库发送的数据迁移请求,将所述数据迁移请求所指示的存储数据发送给所述预设数据库。
在一些可选的实现方式中,所述应用服务器的数据存储空间基于所述预设数据库的存储空间以及应用服务器的数量来设置。
在一些可选的实现方式中,数据存取转置还包括数据同步单元(图中未示出)。数据同步单元用于:响应于检测到所述应用服务器重新启动,向所述预设数据库发送数据同步请求,以使预设数据库根据所述数据同步请求,向所述应用服务器发送所述数据同步请求所指示的与所述应用服务器匹配的存储数据。
请参考图4,图4示出了本公开的一个实施例的信息处理方法可以应用于其中的示例性系统架构。
如图4所示,系统架构可以包括终端设备401、402、403,网络404,服务器405和数据库406。网络404用以在终端设备401、402、403和服务器405,以及服务器405与数据库406之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备401、402、403可以通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种客户端应用,例如网页浏览器应用、搜索类应用、新闻资讯类应用。终端设备401、402、403中的客户端应用可以接收用户的指令,并根据用户的指令完成相应的功能,例如根据用户的指令向服务器发送数据存取请求。
终端设备401、402、403可以是硬件,也可以是软件。当终端设备401、402、403为硬件时,可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。当终端设备401、402、403为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器405可以是提供各种服务的服务器,例如接收终端设备401、402、403发送的数据存取请求,对数据存取请求进行向相应处理。并将处理结果发送给终端设备401、402、403。
数据库可以是各种类型的数据库,例如Redis、MongoDB、Mysql数据库。数据库可以提供各种数据存取服务,例如接收服务器405发送的数据获取请求,向服务器405发送数据获取请求所指示的数据。
需要说明的是,本公开实施例所提供的数据存取方法可以由终端设备执行,相应地,数据存取装置可以设置在终端设备401、402、403中。此外,本公开实施例所提供的数据存取方法还可以由服务器405执行,相应地,数据存取装置可以设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本公开实施例的电子设备(例如图4中所示的服务器)的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收用户发送的数据存取请求;检测用于指示预设数据库是否处于可访问状态的预设信息访问开关是否开启,所述信息访问开关在所述数据库不可访问状态时开启;响应于确定检测结果为是,确定与所述数据存取请求所对应的目标应用服务器;将所述数据存取请求发送给目标应用服务器,以使目标应用服务器执行所述存取请求对应的存取操作。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (11)

1.一种数据存取方法,其特征在于,应用于应用服务器,包括:
接收用户发送的数据存取请求;
检测用于指示预设数据库是否处于可访问状态的预设信息访问开关是否开启,所述信息访问开关在所述数据库不可访问状态时开启;
响应于确定检测结果为是,确定与所述数据存取请求所对应的目标应用服务器;
将所述数据存取请求发送给目标应用服务器,以使目标应用服务器执行所述存取请求对应的存取操作。
2.根据权利要求1所述的方法,其特征在于,所述确定所述数据获取请求所对应的目标应用服务器,包括:
根据所述用户身份信息,将为所述用户提供过历史数据存取请求服务的应用服务器作为目标应用服务器。
3.根据权利要求1所述的方法,其特征在于,所述数据获取请求包括用户的用户身份信息,所述用户身份信息包括所述用户使用的终端设备所对应的网络协议地址;以及
所述确定所述数据获取请求所对应的目标应用服务器,包括:
确定所述网络协议地址对应的哈希值;
将所述哈希值按照多个应用服务器的数量取模,得到所述目标应用服务器的索引值;
根据所述索引值在所述多个应用服务器中确定所述目标应用服务器。
4.根据权利要求1所述的方法,其特征在于,所述信息访问开关的状态通过如下步骤确定:
响应于检测到预设数据库当前运行异常和/或统计历史接口访问的失败率大于预设失败率阈值,将所述信息访问开关设置为开启状态;
否则,将所述信息访问开关设置为关闭状态。
5.根据权利要求4所述的方法,其特征在于,所述信息访问开关设置为开启状态,以及所述方法还包括:
确定当前接收到的信息是否为用于检测预设数据库是否正常运行的探测请求信息;
响应于确定结果为是,向预设数据库发送所述探测请求信息;以及
基于所述的预设数据库根据所述探测请求信息的反馈信息,确定是否将所述信息访问开关设置为关闭状态。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述预设信息访问开关由开启转为关闭后接收到所述预设数据库发送的数据迁移请求,将所述数据迁移请求所指示的存储数据发送给所述预设数据库。
7.根据权利要求1所述的方法,其特征在于,所述应用服务器的数据存储空间基于所述预设数据库的存储空间以及应用服务器的数量来设置。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于检测到所述应用服务器重新启动,向所述预设数据库发送数据同步请求,以使预设数据库根据所述数据同步请求,向所述应用服务器发送所述数据同步请求所指示的与所述应用服务器匹配的存储数据。
9.一种数据存取装置,其特征在于,应用于应用服务器,包括:
接收单元,用于接收用户发送的数据存取请求;
检测单元,用于检测用于指示预设数据库是否处于可访问状态的预设信息访问开关是否开启,所述信息访问开关在所述数据库不可访问状态时开启;
确定单元,用于响应于确定检测结果为是,确定与所述数据存取请求所对应的目标应用服务器;
发送单元,用于将所述数据存取请求发送给目标应用服务器,以使目标应用服务器执行所述存取请求对应的存取操作。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的方法。
CN202011462487.7A 2020-12-10 2020-12-10 数据存取方法、装置和电子设备 Pending CN112486956A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011462487.7A CN112486956A (zh) 2020-12-10 2020-12-10 数据存取方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011462487.7A CN112486956A (zh) 2020-12-10 2020-12-10 数据存取方法、装置和电子设备

Publications (1)

Publication Number Publication Date
CN112486956A true CN112486956A (zh) 2021-03-12

Family

ID=74916147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011462487.7A Pending CN112486956A (zh) 2020-12-10 2020-12-10 数据存取方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN112486956A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051077A (zh) * 2021-03-26 2021-06-29 深圳市优必选科技股份有限公司 一种用户请求的处理方法、装置、终端设备及存储介质
CN113411400A (zh) * 2021-06-18 2021-09-17 中国工商银行股份有限公司 信息调用方法、装置、电子设备及可读存储介质
CN115242807A (zh) * 2022-06-30 2022-10-25 深圳震有科技股份有限公司 一种5g通信系统中的数据存取方法及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004086387A (ja) * 2002-08-23 2004-03-18 Konica Minolta Holdings Inc ファイリングシステム及びファイリングプログラム
CN101242253A (zh) * 2007-02-06 2008-08-13 上海市医疗保险信息中心 软件故障应急处理方法及系统
CN101867607A (zh) * 2010-05-21 2010-10-20 北京无限立通通讯技术有限责任公司 一种分布式数据存取方法、装置及系统
CN104331444A (zh) * 2014-10-27 2015-02-04 北京京东尚科信息技术有限公司 一种保护数据库的方法和装置
CN107545050A (zh) * 2017-08-22 2018-01-05 阿里巴巴集团控股有限公司 数据查询方法及装置、电子设备
CN110222073A (zh) * 2019-06-10 2019-09-10 腾讯科技(深圳)有限公司 一种数据查询的方法以及相关装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004086387A (ja) * 2002-08-23 2004-03-18 Konica Minolta Holdings Inc ファイリングシステム及びファイリングプログラム
CN101242253A (zh) * 2007-02-06 2008-08-13 上海市医疗保险信息中心 软件故障应急处理方法及系统
CN101867607A (zh) * 2010-05-21 2010-10-20 北京无限立通通讯技术有限责任公司 一种分布式数据存取方法、装置及系统
CN104331444A (zh) * 2014-10-27 2015-02-04 北京京东尚科信息技术有限公司 一种保护数据库的方法和装置
CN107545050A (zh) * 2017-08-22 2018-01-05 阿里巴巴集团控股有限公司 数据查询方法及装置、电子设备
CN110222073A (zh) * 2019-06-10 2019-09-10 腾讯科技(深圳)有限公司 一种数据查询的方法以及相关装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051077A (zh) * 2021-03-26 2021-06-29 深圳市优必选科技股份有限公司 一种用户请求的处理方法、装置、终端设备及存储介质
CN113411400A (zh) * 2021-06-18 2021-09-17 中国工商银行股份有限公司 信息调用方法、装置、电子设备及可读存储介质
CN115242807A (zh) * 2022-06-30 2022-10-25 深圳震有科技股份有限公司 一种5g通信系统中的数据存取方法及相关设备

Similar Documents

Publication Publication Date Title
CN112486956A (zh) 数据存取方法、装置和电子设备
CN111597065B (zh) 用于采集设备信息的方法和装置
CN111274503B (zh) 数据处理的方法、装置、电子设备及计算机可读介质
CN111338834B (zh) 数据存储方法和装置
CN111163336B (zh) 视频资源推送方法、装置、电子设备及计算机可读介质
CN110620806B (zh) 信息生成方法和装置
CN111460432B (zh) 在线文档权限控制方法、装置、设备及计算机可读介质
CN111596992B (zh) 导航栏展示方法、装置和电子设备
CN112181733A (zh) 一种服务请求的处理方法、装置、设备及存储介质
CN111831448A (zh) 请求的处理方法、装置和电子设备
CN111858381A (zh) 应用程序容错能力测试方法、电子设备及介质
CN111628913B (zh) 在线时长的确定方法、装置、可读介质和电子设备
CN113824675B (zh) 管理登录态的方法和装置
CN114202332A (zh) 一种数字货币钱包管理方法、装置和系统
CN113763646A (zh) 设备控制方法、装置、电子设备和计算机可读介质
CN111897620A (zh) 交互方法、装置和电子设备
CN110659476A (zh) 用于重置密码的方法和装置
CN112882908B (zh) 用于生成信息的方法和装置
CN115086408B (zh) 数据处理方法、系统、装置、电子设备和存储介质
CN112948108B (zh) 请求处理方法、装置和电子设备
CN114745276B (zh) 交换机带宽调整方法、装置、电子设备和计算机可读介质
CN114693313B (zh) 基于标识码的入库设备检测方法、装置、电子设备和介质
CN110011767B (zh) 用于tcp连接备份的方法和装置
CN114329563A (zh) 数据库的处理方法、装置、设备及介质
CN117014351A (zh) 一种网络检测方法、装置、设备及介质

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