CN105095313A - 一种数据访问方法和设备 - Google Patents
一种数据访问方法和设备 Download PDFInfo
- Publication number
- CN105095313A CN105095313A CN201410219069.3A CN201410219069A CN105095313A CN 105095313 A CN105095313 A CN 105095313A CN 201410219069 A CN201410219069 A CN 201410219069A CN 105095313 A CN105095313 A CN 105095313A
- Authority
- CN
- China
- Prior art keywords
- user
- data
- idc
- version information
- locality
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种数据访问方法和设备,该方法包括:IDC在收到数据查询请求消息时,查询用户标识在本地的缓存集群中对应的第一数据版本信息,并查询用户标识在本地的数据库中对应的第二数据版本信息;如果第一数据版本信息与第二数据版本信息相同,或者第二数据版本信息比第一数据版本信息新,则利用用户标识在本地的数据库中对应的用户数据更新用户标识在本地的缓存集群中对应的用户数据;所述IDC从本地的缓存集群中查询所述用户标识对应的用户数据,并返回携带了所述用户标识对应的用户数据的数据查询响应消息。本申请实施例中,可以减小网络带宽开销,并保证用户得到的用户数据的一致性,使用户查询到最新的用户数据的概率大大提高。
Description
技术领域
本申请涉及互联网技术领域,尤其是涉及一种数据访问方法和设备。
背景技术
随着业务的发展,通常会在不同位置分别部署IDC(InternetDataCenter,互联网数据中心),如图1所示,为在不同位置分别部署IDC1,IDC2,IDC3的网络示意图,如:IDC1部署在北京,IDC2部署在上海,IDC3部署在广州。为了避免跨IDC访问的网络消耗,各IDC内均包括缓存集群,且缓存集群用于存储用户数据。基于此,当用户访问IDC1时,将由IDC1查询本地的缓存集群1,并基于该缓存集群1内的用户数据向用户提供用户数据;当用户访问IDC2时,将由IDC2查询本地的缓存集群2,并基于该缓存集群2内的用户数据向用户提供用户数据;当用户访问IDC3时,将由IDC3查询本地的缓存集群3,并基于该缓存集群3内的用户数据向用户提供用户数据。
为了保证用户所得到的用户数据的一致性,需要保证缓存集群1、缓存集群2和缓存集群3内存储的用户数据是一致的。基于此,在现有技术中,当某个IDC内的缓存集群中存储的用户数据发生变化时,该IDC需要向其它IDC发送携带了发生变化的用户数据的异步消息,由其它IDC利用该异步消息中携带的发生变化的用户数据更新本地的缓存集群中存储的用户数据。
例如,IDC1内的缓存集群1中存储的用户1的用户数据发生变化时,IDC1分别向IDC2和IDC3发送异步消息,且该异步消息中携带了用户1的所有用户数据(其包括有发生变化的用户数据);IDC2在收到异步消息之后,利用该异步消息中携带的用户1的所有用户数据更新本地的缓存集群2中的用户1的所有用户数据;IDC3在收到异步消息之后,利用该异步消息中携带的用户1的所有用户数据更新本地的缓存集群3中的用户1的所有用户数据。
但是,上述方式需要在异步消息中携带某个用户的所有数据,而用户的所有数据通常比较大(如所有数据最大可能有几兆字节的大小),因此在发送携带某个用户的所有数据的异步消息时,会带来很大的网络带宽开销。
发明内容
本申请实施例提供一种数据访问方法和设备,以减小网络带宽开销。
为了达到上述目的,本申请实施例提供一种数据访问方法,该方法应用于包括多个互联网数据中心IDC的网络中,其中,各IDC内包括缓存集群和数据库,所述方法包括以下步骤:IDC在收到来自其它IDC的携带了用户标识和数据版本信息的消息时,在本地的缓存集群中记录该用户标识与该数据版本信息之间的对应关系;所述IDC在收到用于查询用户标识对应的用户数据的数据查询请求消息时,查询所述用户标识在本地的缓存集群中对应的第一数据版本信息,并查询所述用户标识在本地的数据库中对应的第二数据版本信息;如果第一数据版本信息与第二数据版本信息相同,或者第二数据版本信息比第一数据版本信息新,则所述IDC利用所述用户标识在本地的数据库中对应的用户数据更新所述用户标识在本地的缓存集群中对应的用户数据;所述IDC从本地的缓存集群中查询所述用户标识对应的用户数据,并返回携带了所述用户标识对应的用户数据的数据查询响应消息。
优选地,本申请实施例中,所述IDC在收到来自其它IDC的携带了用户标识和数据版本信息的消息之后,所述方法还包括:所述IDC删除本地的缓存集群中记录的该用户标识对应的用户数据。
优选地,本申请实施例中,所述方法还包括:所述IDC在收到用于更新用户标识对应的用户数据的数据更新请求消息时,更新该用户标识在本地的缓存集群中对应的用户数据,并确定当前的数据版本信息,并向其它IDC发送携带了该用户标识和该数据版本信息的消息。
优选地,本申请实施例中,所述方法还包括:所述IDC在收到用于更新用户标识对应的用户数据的数据更新请求消息时,更新该用户标识在本地的数据库中对应的用户数据,并确定当前的数据版本信息,在本地的数据库中记录该用户标识与该数据版本信息之间的对应关系;以及,通知其它IDC更新该用户标识在本地的数据库中对应的用户数据,并在本地的数据库中记录该用户标识与该数据版本信息之间的对应关系。
在所述IDC查询所述用户标识在本地的缓存集群中对应的第一数据版本信息,并查询所述用户标识在本地的数据库中对应的第二数据版本信息之后,所述方法还包括:如果第一数据版本信息比第二数据版本信息新,则所述IDC确定所述数据查询请求消息对应的业务类型;如果所述业务类型为第一业务类型,则所述IDC直接从当前本地的数据库中查询所述用户标识对应的用户数据,并返回携带了所述用户标识对应的用户数据的数据查询响应消息;
如果所述业务类型为第二业务类型,则所述IDC向其它IDC发送携带所述用户标识的数据库查询请求消息,由其它IDC查询所述用户标识在本地的数据库中对应的用户数据,并向所述IDC返回携带所述用户标识对应的用户数据的数据库查询响应消息;所述IDC在收到所述数据库查询响应消息之后,利用所述用户标识对应的用户数据更新所述用户标识在本地的缓存集群中对应的用户数据,并从本地的缓存集群中查询所述用户标识对应的用户数据,并返回携带了所述用户标识对应的用户数据的数据查询响应消息。
优选地,所述数据版本信息具体包括最后一次更新用户数据的时间信息。
另一方面,本申请实施例中还提供一种互联网数据中心IDC,应用于包括多个IDC的网络中,各IDC内包括缓存集群和数据库,所述IDC具体包括:存储模块,用于在收到来自其它IDC的携带了用户标识和数据版本信息的消息时,在本地的缓存集群中记录该用户标识与该数据版本信息之间的对应关系;查询模块,用于在收到用于查询用户标识对应的用户数据的数据查询请求消息时,查询所述用户标识在本地的缓存集群中对应的第一数据版本信息,并查询所述用户标识在本地的数据库中对应的第二数据版本信息;更新模块,用于当第一数据版本信息与第二数据版本信息相同,或者第二数据版本信息比第一数据版本信息新时,利用所述用户标识在本地的数据库中对应的用户数据更新所述用户标识在本地的缓存集群中对应的用户数据;缓存通信模块,用于从本地的缓存集群中查询所述用户标识对应的用户数据,并返回携带了所述用户标识对应的用户数据的数据查询响应消息。
所述存储模块,还用于在收到来自其它IDC的携带了用户标识和数据版本信息的消息后,删除本地的缓存集群中记录的该用户标识对应的用户数据。
优选地,本申请实施例中,所述更新模块,还用于在收到用于更新用户标识对应的用户数据的数据更新请求消息时,更新该用户标识在本地的缓存集群中对应的用户数据;所述缓存通信模块,还用于确定当前的数据版本信息,并向其它IDC发送携带了该用户标识和该数据版本信息的消息。
优选地,本申请实施例中,所述更新模块,还用于在收到用于更新用户标识对应的用户数据的数据更新请求消息时,更新该用户标识在本地的数据库中对应的用户数据;所述存储模块,还用于确定当前的数据版本信息,并在本地的数据库中记录该用户标识与该数据版本信息之间的对应关系;所述IDC还包括数据库通信模块;其中,所述数据库通信模块,还用于通知其它IDC更新该用户标识在本地的数据库中对应的用户数据,并在本地的数据库中记录该用户标识与该数据版本信息之间的对应关系。
所述缓存通信模块,还用于在第一数据版本信息比第二数据版本信息新时,确定所述数据查询请求消息对应的业务类型;如果所述业务类型为第一业务类型,则直接从当前本地的数据库中查询所述用户标识对应的用户数据,并返回携带了所述用户标识对应的用户数据的数据查询响应消息;如果所述业务类型为第二业务类型,则向其它IDC发送携带所述用户标识的数据库查询请求消息,由其它IDC查询所述用户标识在本地的数据库中对应的用户数据,并向所述IDC返回携带所述用户标识对应的用户数据的数据库查询响应消息;在收到所述数据库查询响应消息之后,指示所述更新模块利用所述用户标识对应的用户数据更新所述用户标识在本地的缓存集群中对应的用户数据,并由所述缓存通信模块从本地的缓存集群中查询所述用户标识对应的用户数据,并返回携带了所述用户标识对应的用户数据的数据查询响应消息。
优选地,所述数据版本信息具体包括最后一次更新用户数据的时间信息。
与现有技术相比,本申请实施例至少具有以下优点:本申请实施例中,在更新用户数据时,IDC向其它IDC发送的消息中包含用户标识和数据版本信息,而不再包含所有用户数据,由于用户标识和数据版本信息的大小远远小于用户数据的大小,因此IDC向其它IDC发送的消息中携带内容的远远小于异步消息中携带的用户数据,从而可以减小网络带宽开销,并保证用户得到的用户数据的一致性,使用户查询到最新的用户数据的概率大大提高。
附图说明
为了更加清楚地说明本申请实施例的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本申请实施例的这些附图获得其他的附图。
图1是现有技术中在不同位置分别部署IDC的网络示意图;
图2是本申请实施例一中提出的应用场景示意图;
图3是本申请实施例一中提出的一种数据访问方法流程示意图;
图4是本申请实施例二中提出的一种IDC的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
针对现有技术中存在的问题,本申请实施例一提供一种数据访问方法,应用于包括多个IDC的网络中,该网络可以为分布式网络,且各IDC内包括缓存集群和数据库,该缓存集群和数据库均用于存储用户数据。以图2为本申请实施例的应用场景示意图,可以将IDC1部署在北京,将IDC2部署在上海,将IDC3部署在广州,IDC1内包括缓存集群1和数据库1,IDC2内包括缓存集群2和数据库2,IDC3内包括缓存集群3和数据库3。在用户设备访问IDC时,基于用户设备所处的位置,服务器可以将用户设备的访问请求分配到IDC1、或IDC2、或IDC3上。例如,用户设备1在北京访问IDC时,服务器可以将用户设备1的访问请求分配到IDC1上;用户设备2在上海访问IDC时,服务器可以将用户设备2的访问请求分配到IDC2上;用户设备3在广州访问IDC时,服务器可以将用户设备3的访问请求分配到IDC3上。
在上述应用场景下,如图3所示,该数据访问方法具体包括以下步骤:
步骤301,IDC在收到用于更新用户标识对应的用户数据的数据更新请求消息时,更新该用户标识在本地的缓存集群中对应的用户数据,确定当前的数据版本信息,向其它IDC发送携带了该用户标识和该数据版本信息的消息。
本申请实施例中,IDC在收到该数据更新请求消息时,还需要更新该用户标识在本地的数据库中对应的用户数据,并确定当前的数据版本信息,并在本地的数据库中记录该用户标识与该数据版本信息之间的对应关系;以及,该IDC通知其它IDC更新该用户标识在本地的数据库中对应的用户数据,并在本地的数据库中记录该用户标识与该数据版本信息之间的对应关系。
本申请实施例中,该数据版本信息具体包括但不限于:最后一次更新用户数据的时间信息,如最后一次更新用户数据的时间13:00。
在图2所示的应用场景下,假设用户A对应的用户数据为数据1、数据2和数据3,则:IDC1的缓存集群1和数据库1中将分别记录用户标识(即用户A)与对应的用户数据(即数据1、数据2和数据3),且IDC2的缓存集群2和数据库2中将分别记录用户标识(即用户A)与对应的用户数据(即数据1、数据2和数据3),并且IDC3的缓存集群3和数据库3中将分别记录用户标识(即用户A)与对应的用户数据(即数据1、数据2和数据3)。
假设用户A需要将数据1修改为数据4,则用户A会通过相应的用户设备发送数据更新请求消息,该数据更新请求消息用于更新用户标识对应的用户数据,即用于将用户A对应的数据1修改为数据4。在此基础上,假设服务器将该数据更新请求消息分配给IDC1进行处理,则:IDC1在收到该数据更新请求消息时,更新该用户标识(用户A)在本地的缓存集群1中对应的用户数据(即将数据1修改为数据4)。之后,假设将数据1修改为数据4的时间为13:10,则:IDC1确定当前的数据版本信息为13:10。
在此基础上,进一步的,IDC1还需要向IDC2发送携带了该用户标识(用户A)和该数据版本信息(13:10)的消息,并且IDC1还需要向IDC3发送携带了该用户标识(用户A)和该数据版本信息(13:10)的消息。
此外,IDC1在收到该数据更新请求消息时,还需要更新该用户标识(用户A)在本地的数据库1中对应的用户数据(即将数据1修改为数据4)。之后,假设将数据1修改为数据4的时间为13:10,则:IDC1确定当前的数据版本信息为13:10,并在本地的数据库1中记录该用户标识(用户A)与该数据版本信息(13:10)之间的对应关系。进一步的,IDC1还需要通知IDC2更新该用户标识(用户A)在本地的数据库2中对应的用户数据(即将数据1修改为数据4),并在本地的数据库2中记录该用户标识(用户A)与该数据版本信息(13:10)之间的对应关系;IDC1还需要通知IDC3更新该用户标识(用户A)在本地的数据库3中对应的用户数据(即将数据1修改为数据4),并在本地的数据库3中记录该用户标识(用户A)与该数据版本信息(13:10)之间的对应关系。之后,IDC2还需要更新用户A在本地的数据库2中对应的用户数据(即将数据1修改为数据4),并在本地的数据库2中记录用户A与该数据版本信息(13:10)之间的对应关系;IDC3还需要更新用户A在本地的数据库3中对应的用户数据(即将数据1修改为数据4),并在本地的数据库3中记录用户A与该数据版本信息(13:10)之间的对应关系。
步骤302,IDC接收来自其它IDC的携带用户标识和数据版本信息的消息,在本地的缓存集群中记录该用户标识与该数据版本信息之间的对应关系。
本申请实施例中,IDC在收到来自其它IDC的携带了用户标识和数据版本信息的消息之后,在本地的缓存集群中记录该用户标识与该数据版本信息之间的对应关系的基础上,该IDC还需要删除本地的缓存集群中记录的该用户标识对应的用户数据,即此时缓存集群中只记录用户标识与数据版本信息。
IDC1向IDC2发送携带了用户标识(用户A)和数据版本信息(13:10)的消息之后,IDC2接收来自IDC1的携带用户标识(用户A)和数据版本信息(13:10)的消息,并在本地的缓存集群2中记录用户标识(用户A)与数据版本信息(13:10)之间的对应关系,并从本地的缓存集群2中删除用户标识(用户A)对应的用户数据(数据1、数据2和数据3)。
IDC1向IDC3发送携带了用户标识(用户A)和数据版本信息(13:10)的消息之后,IDC3接收来自IDC1的携带用户标识(用户A)和数据版本信息(13:10)的消息,并在本地的缓存集群3中记录用户标识(用户A)与数据版本信息(13:10)之间的对应关系,并从本地的缓存集群3中删除用户标识(用户A)对应的用户数据(数据1、数据2和数据3)。
步骤303,IDC在收到用于查询用户标识对应的用户数据的数据查询请求消息时,查询该用户标识在本地的缓存集群中对应的第一数据版本信息,并查询该用户标识在本地的数据库中对应的第二数据版本信息。
在图2所示的应用场景下,假设用户A需要查询用户A对应的用户数据,则用户A会通过相应的用户设备发送数据查询请求消息,该数据查询请求消息用于查询用户A对应的用户数据;在此基础上,假设服务器将该数据查询请求消息分配给IDC1进行处理,则IDC1在收到该数据查询请求消息时,直接查询到该用户标识(用户A)在本地的缓存集群1中对应的用户数据,该用户数据为数据4、数据2和数据3,该过程在此不再详加赘述。
假设用户B需要查询用户A对应的用户数据,则用户B会通过相应的用户设备发送数据查询请求消息,该数据查询请求消息用于查询用户A对应的用户数据;在此基础上,假设服务器将该数据查询请求消息分配给IDC2进行处理,则IDC2在收到该数据查询请求消息时,查询该用户标识(用户A)在本地的缓存集群2中对应的第一数据版本信息(13:10),并查询该用户标识(用户A)在本地的数据库2中对应的第二数据版本信息(13:10)。
假设用户C需要查询用户A对应的用户数据,则用户C会通过相应的用户设备发送数据查询请求消息,该数据查询请求消息用于查询用户A对应的用户数据;在此基础上,假设服务器将该数据查询请求消息分配给IDC3进行处理,则IDC3在收到该数据查询请求消息时,查询该用户标识(用户A)在本地的缓存集群3中对应的第一数据版本信息(13:10),并查询该用户标识(用户A)在本地的数据库3中对应的第二数据版本信息(13:10)。
本申请实施例中,针对IDC2(或IDC3)收到数据查询请求消息的处理过程,在IDC2(或IDC3)收到数据查询请求消息之前,如果IDC2(或IDC3)已经在本地的缓存集群2中记录用户标识(用户A)与数据版本信息(13:10)之间的对应关系,且IDC2(或IDC3)已经在本地的数据库2中记录用户A与数据版本信息(13:10)之间的对应关系,则第一数据版本信息(13:10)与第二数据版本信息(13:10)相同,且执行步骤304;如果IDC2(或IDC3)已经在本地的数据库2中记录用户A与数据版本信息(13:10)之间的对应关系,但是IDC2(或IDC3)没有在本地的缓存集群2中记录用户标识(用户A)与数据版本信息(13:10)之间的对应关系,则第二数据版本信息(13:10)比第一数据版本信息(13:00)新,且执行步骤304;如果IDC2(或IDC3)已经在本地的缓存集群2中记录用户标识(用户A)与数据版本信息(13:10)之间的对应关系,但是IDC2(或IDC3)没有在本地的数据库2中记录用户A与数据版本信息(13:10)之间的对应关系,则第一数据版本信息(13:10)比第二数据版本信息(13:00)新,且执行步骤305。
步骤304,如果第一数据版本信息与第二数据版本信息相同,或者第二数据版本信息比第一数据版本信息新,则IDC利用用户标识(即数据查询请求消息中携带的用户标识)在本地的数据库中对应的用户数据更新用户标识在本地的缓存集群中对应的用户数据,并从本地的缓存集群中查询用户标识对应的用户数据,并返回携带了用户标识对应的用户数据的数据查询响应消息。
在用户A将数据1修改为数据4之前,IDC2的缓存集群2和数据库2中将分别记录用户标识(用户A)与对应的用户数据(数据1、数据2和数据3),在用户A将数据1修改为数据4之后,在第一数据版本信息与第二数据版本信息相同时,IDC2的缓存集群2中没有记录用户标识(用户A)对应的用户数据,IDC2的数据库2中记录用户标识(用户A)与对应的用户数据(数据4、数据2和数据3),在第二数据版本信息比第一数据版本信息新时,IDC2的缓存集群2中没有记录用户标识(用户A)对应的用户数据,IDC2的数据库2中记录用户标识(用户A)与对应的用户数据(数据4、数据2和数据3)。
基于此,IDC2在收到用于查询用户标识(用户A)对应的用户数据的数据查询请求消息之后,利用该用户标识(用户A)在本地的数据库2中对应的用户数据(数据4、数据2和数据3)更新该用户标识(用户A)在本地的缓存集群2中对应的用户数据,在用户数据更新完成之后,该用户标识(用户A)在本地的缓存集群2中对应的用户数据为数据4、数据2和数据3。之后,IDC2从本地的缓存集群2中查询用户标识(用户A)对应的用户数据(数据4、数据2和数据3),并返回携带了用户数据(数据4、数据2和数据3)的数据查询响应消息,即将数据4、数据2和数据3通过数据查询响应消息返回给查询用户标识(用户A)对应的用户数据的用户。
此外,IDC3的处理过程与IDC2的处理过程相同,在此不再重复赘述。
步骤305,如果第一数据版本信息比第二数据版本信息新,则IDC确定数据查询请求消息对应的业务类型;如果该业务类型为第一业务类型,则执行步骤306;如果该业务类型为第一业务类型,则执行步骤307。
其中,该第一业务类型具体包括但不限于对业务实时性要求低的业务,如:生成好友业务或者删除好友业务等;该第二业务类型具体包括但不限于对业务实时性要求高的业务,如:订单金额修改业务等。
步骤306,IDC直接从当前本地的数据库中查询用户标识对应的用户数据,并返回携带了该用户标识对应的用户数据的数据查询响应消息。
在用户A将数据1修改为数据4之前,IDC2的缓存集群2和数据库2中将分别记录用户标识(用户A)与对应的用户数据(数据1、数据2和数据3),在用户A将数据1修改为数据4之后,在第一数据版本信息比第二数据版本信息新时,IDC2的缓存集群2中没有记录用户标识(用户A)对应的用户数据,IDC2的数据库2中将记录用户标识(用户A)与对应的用户数据(数据1、数据2和数据3)。基于此,IDC2在收到用于查询用户标识(用户A)对应的用户数据的数据查询请求消息时,由于该数据查询请求消息对应的业务类型对业务实时性要求低,因此,IDC2可以直接从当前本地的数据库2中查询该用户标识(用户A)对应的用户数据(即数据1、数据2和数据3),并返回携带了该用户数据(数据1、数据2和数据3)的数据查询响应消息,即IDC2可以将数据1、数据2和数据3直接通过该数据查询响应消息返回给查询用户标识(用户A)对应的用户数据的用户。
此外,IDC3的处理过程与IDC2的处理过程相同,在此不再重复赘述。
步骤307,IDC向其它IDC发送携带用户标识的数据库查询请求消息,由其它IDC在收到数据库查询请求消息后,查询用户标识在本地的数据库中对应的用户数据,并向IDC返回携带该用户数据的数据库查询响应消息。
步骤308,IDC在收到数据库查询响应消息之后,利用该用户标识对应的用户数据(即数据库查询响应消息中携带的用户数据)更新该用户标识在本地的缓存集群中对应的用户数据,从本地的缓存集群中查询该用户标识对应的用户数据,并返回携带了该用户标识对应的用户数据的数据查询响应消息。
在用户A将数据1修改为数据4之前,IDC2的缓存集群2和数据库2中将分别记录用户标识(用户A)与对应的用户数据(数据1、数据2和数据3),在用户A将数据1修改为数据4之后,在第一数据版本信息比第二数据版本信息新时,IDC2的缓存集群2中没有记录用户标识(用户A)对应的用户数据,IDC2的数据库2中将记录用户标识(用户A)与对应的用户数据(数据1、数据2和数据3)。基于此,IDC2在收到用于查询用户标识(用户A)对应的用户数据的数据查询请求消息时,由于该数据查询请求消息对应的业务类型对业务实时性要求高,因此,IDC2向IDC1发送携带用户标识(用户A)的数据库查询请求消息,IDC1在收到数据库查询请求消息之后,查询用户标识(用户A)在本地的数据库1中对应的用户数据(即数据4、数据2和数据3),并通过数据库查询响应消息将用户标识(用户A)对应的用户数据(即数据4、数据2和数据3)返回给IDC2。进一步的,IDC2在收到数据库查询响应消息之后,利用该数据库查询响应消息中携带的该用户标识(用户A)对应的用户数据(数据4、数据2和数据3)更新该用户标识(用户A)在本地的缓存集群2中对应的用户数据,此时该用户标识(用户A)在本地的缓存集群2中对应的用户数据为数据4、数据2和数据3。之后,IDC2从本地的缓存集群2中查询用户标识(用户A)对应的用户数据(数据4、数据2和数据3),并返回携带了用户数据(数据4、数据2和数据3)的数据查询响应消息,即IDC2将数据4、数据2和数据3通过数据查询响应消息返回给查询用户标识(用户A)对应的用户数据的用户。
此外,IDC3的处理过程与IDC2的处理过程相同,在此不再重复赘述。
综上所述,本申请实施例中,在更新用户数据时,IDC在本地的缓存集群中更新完毕用户数据之后,向其它IDC发送的消息中包含用户标识和数据版本信息,而不再包含所有用户数据,由于用户标识和数据版本信息的大小远远小于用户数据的大小,因此IDC向其它IDC发送的消息中携带内容的远远小于异步消息中携带的用户数据,从而可以减小网络带宽开销,并保证用户得到的用户数据的一致性,使用户查询到最新的用户数据的概率大大提高。
实施例二
基于与上述方法同样的申请构思,本申请实施例提供了一种IDC,应用于包括多个IDC的网络中,各IDC内包括缓存集群和数据库,如图4所示,所述IDC具体包括:存储模块11,用于在收到来自其它IDC的携带了用户标识和数据版本信息的消息时,在缓存集群中记录该用户标识与该数据版本信息之间的对应关系;查询模块12,用于在收到用于查询用户标识对应的用户数据的数据查询请求消息时,查询所述用户标识在本地的缓存集群中对应的第一数据版本信息,并查询所述用户标识在本地的数据库中对应的第二数据版本信息;更新模块13,用于当第一数据版本信息与第二数据版本信息相同,或第二数据版本信息比第一数据版本信息新时,利用所述用户标识在本地的数据库中对应的用户数据更新所述用户标识在本地的缓存集群中对应的用户数据;缓存通信模块14,用于从本地的缓存集群中查询所述用户标识对应的用户数据,并返回携带了所述用户标识对应的用户数据的数据查询响应消息。
优选地,本申请实施例中,所述存储模块11,还用于在收到来自其它IDC的携带了用户标识和数据版本信息的消息之后,删除本地的缓存集群中记录的该用户标识对应的用户数据。
优选地,本申请实施例中,所述更新模块13,还用于在收到用于更新用户标识对应的用户数据的数据更新请求消息时,更新该用户标识在本地的缓存集群中对应的用户数据;所述缓存通信模块14,还用于确定当前的数据版本信息,并向其它IDC发送携带了该用户标识和该数据版本信息的消息。
优选地,本申请实施例中,所述更新模块13,还用于在收到用于更新用户标识对应的用户数据的数据更新请求消息时,更新该用户标识在本地的数据库中对应的用户数据;所述存储模块11,还用于确定当前的数据版本信息,并在本地的数据库中记录该用户标识与该数据版本信息之间的对应关系;所述IDC还包括数据库通信模块15;其中,所述数据库通信模块15,用于通知其它IDC更新该用户标识在本地的数据库中对应的用户数据,并在本地的数据库中记录该用户标识与该数据版本信息之间的对应关系。
优选地,本申请实施例中,所述缓存通信模块14,还用于在第一数据版本信息比第二数据版本信息新时,确定所述数据查询请求消息对应的业务类型;如果所述业务类型为第一业务类型,则直接从当前本地的数据库中查询所述用户标识对应的用户数据,并返回携带了所述用户标识对应的用户数据的数据查询响应消息;如果所述业务类型为第二业务类型,则向其它IDC发送携带所述用户标识的数据库查询请求消息,由其它IDC查询所述用户标识在本地的数据库中对应的用户数据,并向所述IDC返回携带所述用户标识对应的用户数据的数据库查询响应消息;在收到所述数据库查询响应消息之后,指示所述更新模块13利用所述用户标识对应的用户数据更新所述用户标识在本地的缓存集群中对应的用户数据,并由所述缓存通信模块14从本地的缓存集群中查询所述用户标识对应的用户数据,并返回携带了所述用户标识对应的用户数据的数据查询响应消息。
优选地,本申请实施例中,所述数据版本信息具体包括但不限于:最后一次更新用户数据的时间信息。
其中,本申请装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
综上所述,本申请实施例中,在更新用户数据时,IDC在本地的缓存集群中更新完毕用户数据之后,向其它IDC发送的消息中包含用户标识和数据版本信息,而不再包含所有用户数据,由于用户标识和数据版本信息的大小远远小于用户数据的大小,因此IDC向其它IDC发送的消息中携带内容的远远小于异步消息中携带的用户数据,从而可以减小网络带宽开销,并保证用户得到的用户数据的一致性,使用户查询到最新的用户数据的概率大大提高。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本申请的几个具体实施例,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (12)
1.一种数据访问方法,应用于包括多个互联网数据中心IDC的网络中,各IDC内包括缓存集群和数据库,其特征在于,所述方法包括以下步骤:
IDC在收到来自其它IDC的携带了用户标识和数据版本信息的消息时,在本地的缓存集群中记录该用户标识与该数据版本信息之间的对应关系;
所述IDC在收到用于查询用户标识对应的用户数据的数据查询请求消息时,查询所述用户标识在本地的缓存集群中对应的第一数据版本信息,并查询所述用户标识在本地的数据库中对应的第二数据版本信息;
如果第一数据版本信息与第二数据版本信息相同,或者第二数据版本信息比第一数据版本信息新,则所述IDC利用所述用户标识在本地的数据库中对应的用户数据更新所述用户标识在本地的缓存集群中对应的用户数据;
所述IDC从本地的缓存集群中查询所述用户标识对应的用户数据,并返回携带了所述用户标识对应的用户数据的数据查询响应消息。
2.如权利要求1所述的方法,其特征在于,所述IDC在收到来自其它IDC的携带了用户标识和数据版本信息的消息之后,所述方法还包括:
所述IDC删除本地的缓存集群中记录的该用户标识对应的用户数据。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述IDC在收到用于更新用户标识对应的用户数据的数据更新请求消息时,更新该用户标识在本地的缓存集群中对应的用户数据,并确定当前的数据版本信息,并向其它IDC发送携带了该用户标识和该数据版本信息的消息。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述IDC在收到用于更新用户标识对应的用户数据的数据更新请求消息时,更新该用户标识在本地的数据库中对应的用户数据,并确定当前的数据版本信息,在本地的数据库中记录该用户标识与该数据版本信息之间的对应关系;以及,通知其它IDC更新该用户标识在本地的数据库中对应的用户数据,并在本地的数据库中记录该用户标识与该数据版本信息之间的对应关系。
5.如权利要求1所述的方法,其特征在于,在所述IDC查询所述用户标识在本地的缓存集群中对应的第一数据版本信息,并查询所述用户标识在本地的数据库中对应的第二数据版本信息之后,所述方法还包括:
如果第一数据版本信息比第二数据版本信息新,则所述IDC确定所述数据查询请求消息对应的业务类型;如果所述业务类型为第一业务类型,则所述IDC直接从当前本地的数据库中查询所述用户标识对应的用户数据,并返回携带了所述用户标识对应的用户数据的数据查询响应消息;
如果所述业务类型为第二业务类型,则所述IDC向其它IDC发送携带所述用户标识的数据库查询请求消息,由其它IDC查询所述用户标识在本地的数据库中对应的用户数据,并向所述IDC返回携带所述用户标识对应的用户数据的数据库查询响应消息;所述IDC在收到所述数据库查询响应消息之后,利用所述用户标识对应的用户数据更新所述用户标识在本地的缓存集群中对应的用户数据,并从本地的缓存集群中查询所述用户标识对应的用户数据,并返回携带了所述用户标识对应的用户数据的数据查询响应消息。
6.如权利要求1-5任一项所述的方法,其特征在于,所述数据版本信息具体包括:最后一次更新用户数据的时间信息。
7.一种互联网数据中心IDC,应用于包括多个IDC的网络中,各IDC内包括缓存集群和数据库,其特征在于,所述IDC具体包括:
存储模块,用于在收到来自其它IDC的携带了用户标识和数据版本信息的消息时,在缓存集群中记录该用户标识与该数据版本信息之间的对应关系;
查询模块,用于在收到用于查询用户标识对应的用户数据的数据查询请求消息时,查询所述用户标识在本地的缓存集群中对应的第一数据版本信息,并查询所述用户标识在本地的数据库中对应的第二数据版本信息;
更新模块,用于当第一数据版本信息与第二数据版本信息相同,或第二数据版本信息比第一数据版本信息新时,利用所述用户标识在本地的数据库中对应的用户数据更新所述用户标识在本地的缓存集群中对应的用户数据;
缓存通信模块,用于从本地的缓存集群中查询所述用户标识对应的用户数据,并返回携带了所述用户标识对应的用户数据的数据查询响应消息。
8.如权利要求7所述的IDC,其特征在于,
所述存储模块,还用于在收到来自其它IDC的携带了用户标识和数据版本信息的消息后,删除本地的缓存集群中记录的该用户标识对应的用户数据。
9.如权利要求7所述的IDC,其特征在于,
所述更新模块,还用于在收到用于更新用户标识对应的用户数据的数据更新请求消息时,更新该用户标识在本地的缓存集群中对应的用户数据;
所述缓存通信模块,还用于确定当前的数据版本信息,并向其它IDC发送携带了该用户标识和该数据版本信息的消息。
10.如权利要求7所述的IDC,其特征在于,
所述更新模块,还用于在收到用于更新用户标识对应的用户数据的数据更新请求消息时,更新该用户标识在本地的数据库中对应的用户数据;
所述存储模块,还用于确定当前的数据版本信息,并在本地的数据库中记录该用户标识与该数据版本信息之间的对应关系;
所述IDC还包括数据库通信模块;其中,所述数据库通信模块,用于通知其它IDC更新该用户标识在本地的数据库中对应的用户数据,并在本地的数据库中记录该用户标识与该数据版本信息之间的对应关系。
11.如权利要求7所述的IDC,其特征在于,
所述缓存通信模块,还用于在第一数据版本信息比第二数据版本信息新时,确定所述数据查询请求消息对应的业务类型;如果所述业务类型为第一业务类型,则直接从当前本地的数据库中查询所述用户标识对应的用户数据,并返回携带了所述用户标识对应的用户数据的数据查询响应消息;如果所述业务类型为第二业务类型,则向其它IDC发送携带所述用户标识的数据库查询请求消息,由其它IDC查询所述用户标识在本地的数据库中对应的用户数据,并向所述IDC返回携带所述用户标识对应的用户数据的数据库查询响应消息;在收到所述数据库查询响应消息之后,指示所述更新模块利用所述用户标识对应的用户数据更新所述用户标识在本地的缓存集群中对应的用户数据,并由所述缓存通信模块从本地的缓存集群中查询所述用户标识对应的用户数据,并返回携带了所述用户标识对应的用户数据的数据查询响应消息。
12.如权利要求7-11任一项所述的IDC,其特征在于,所述数据版本信息具体包括:最后一次更新用户数据的时间信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410219069.3A CN105095313B (zh) | 2014-05-22 | 2014-05-22 | 一种数据访问方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410219069.3A CN105095313B (zh) | 2014-05-22 | 2014-05-22 | 一种数据访问方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105095313A true CN105095313A (zh) | 2015-11-25 |
CN105095313B CN105095313B (zh) | 2018-12-28 |
Family
ID=54575762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410219069.3A Active CN105095313B (zh) | 2014-05-22 | 2014-05-22 | 一种数据访问方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105095313B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250419A (zh) * | 2016-07-22 | 2016-12-21 | 乐视控股(北京)有限公司 | 一种数据处理方法和装置 |
CN107085603A (zh) * | 2017-03-31 | 2017-08-22 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及装置 |
CN108647357A (zh) * | 2018-05-17 | 2018-10-12 | 阿里巴巴集团控股有限公司 | 数据查询的方法及装置 |
CN109413127A (zh) * | 2017-08-18 | 2019-03-01 | 北京京东尚科信息技术有限公司 | 一种数据同步方法和装置 |
CN109542851A (zh) * | 2018-11-30 | 2019-03-29 | 北京金山云网络技术有限公司 | 文件更新方法、装置及系统 |
CN110347706A (zh) * | 2018-04-03 | 2019-10-18 | 艾玛迪斯简易股份公司 | 用于处理查询的方法、数据库系统和计算机可读存储介质 |
CN110427770A (zh) * | 2019-06-20 | 2019-11-08 | 中国科学院信息工程研究所 | 一种支持业务安全标记的数据库访问控制方法及系统 |
CN112445783A (zh) * | 2020-12-16 | 2021-03-05 | 中国联合网络通信集团有限公司 | 一种用于数据库更新的方法、装置和服务器 |
CN112818059A (zh) * | 2021-01-27 | 2021-05-18 | 百果园技术(新加坡)有限公司 | 一种基于容器发布平台的信息实时同步方法及装置 |
CN113766027A (zh) * | 2021-09-09 | 2021-12-07 | 瀚高基础软件股份有限公司 | 一种流复制集群节点转发数据的方法及设备 |
CN114490759A (zh) * | 2022-01-13 | 2022-05-13 | 特斯联科技集团有限公司 | 一种设备影子的管理方法及应用其进行设备监控的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464895A (zh) * | 2009-01-21 | 2009-06-24 | 阿里巴巴集团控股有限公司 | 一种更新内存数据的方法、系统和装置 |
CN102436633A (zh) * | 2011-11-30 | 2012-05-02 | 华为技术有限公司 | 数据管理方法及系统、数据库系统 |
WO2014015809A1 (zh) * | 2012-07-25 | 2014-01-30 | 腾讯科技(深圳)有限公司 | Ugc主备数据同步方法及其系统、计算机存储介质 |
CN103634144A (zh) * | 2013-11-15 | 2014-03-12 | 新浪网技术(中国)有限公司 | 多idc集群的配置文件管理方法、系统和设备 |
-
2014
- 2014-05-22 CN CN201410219069.3A patent/CN105095313B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464895A (zh) * | 2009-01-21 | 2009-06-24 | 阿里巴巴集团控股有限公司 | 一种更新内存数据的方法、系统和装置 |
CN102436633A (zh) * | 2011-11-30 | 2012-05-02 | 华为技术有限公司 | 数据管理方法及系统、数据库系统 |
WO2014015809A1 (zh) * | 2012-07-25 | 2014-01-30 | 腾讯科技(深圳)有限公司 | Ugc主备数据同步方法及其系统、计算机存储介质 |
CN103634144A (zh) * | 2013-11-15 | 2014-03-12 | 新浪网技术(中国)有限公司 | 多idc集群的配置文件管理方法、系统和设备 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250419A (zh) * | 2016-07-22 | 2016-12-21 | 乐视控股(北京)有限公司 | 一种数据处理方法和装置 |
CN107085603A (zh) * | 2017-03-31 | 2017-08-22 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及装置 |
CN107085603B (zh) * | 2017-03-31 | 2020-04-03 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及装置 |
CN109413127A (zh) * | 2017-08-18 | 2019-03-01 | 北京京东尚科信息技术有限公司 | 一种数据同步方法和装置 |
CN109413127B (zh) * | 2017-08-18 | 2022-04-12 | 北京京东尚科信息技术有限公司 | 一种数据同步方法和装置 |
CN110347706B (zh) * | 2018-04-03 | 2022-02-01 | 艾玛迪斯简易股份公司 | 用于处理查询的方法、数据库系统和计算机可读存储介质 |
CN110347706A (zh) * | 2018-04-03 | 2019-10-18 | 艾玛迪斯简易股份公司 | 用于处理查询的方法、数据库系统和计算机可读存储介质 |
CN108647357A (zh) * | 2018-05-17 | 2018-10-12 | 阿里巴巴集团控股有限公司 | 数据查询的方法及装置 |
CN109542851A (zh) * | 2018-11-30 | 2019-03-29 | 北京金山云网络技术有限公司 | 文件更新方法、装置及系统 |
CN110427770B (zh) * | 2019-06-20 | 2021-04-20 | 中国科学院信息工程研究所 | 一种支持业务安全标记的数据库访问控制方法及系统 |
CN110427770A (zh) * | 2019-06-20 | 2019-11-08 | 中国科学院信息工程研究所 | 一种支持业务安全标记的数据库访问控制方法及系统 |
CN112445783A (zh) * | 2020-12-16 | 2021-03-05 | 中国联合网络通信集团有限公司 | 一种用于数据库更新的方法、装置和服务器 |
CN112818059A (zh) * | 2021-01-27 | 2021-05-18 | 百果园技术(新加坡)有限公司 | 一种基于容器发布平台的信息实时同步方法及装置 |
CN112818059B (zh) * | 2021-01-27 | 2024-05-17 | 百果园技术(新加坡)有限公司 | 一种基于容器发布平台的信息实时同步方法及装置 |
CN113766027A (zh) * | 2021-09-09 | 2021-12-07 | 瀚高基础软件股份有限公司 | 一种流复制集群节点转发数据的方法及设备 |
CN113766027B (zh) * | 2021-09-09 | 2023-09-26 | 瀚高基础软件股份有限公司 | 一种流复制集群节点转发数据的方法及设备 |
CN114490759A (zh) * | 2022-01-13 | 2022-05-13 | 特斯联科技集团有限公司 | 一种设备影子的管理方法及应用其进行设备监控的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105095313B (zh) | 2018-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105095313A (zh) | 一种数据访问方法和设备 | |
CN105224609B (zh) | 一种索引查询方法及装置 | |
CN107623729B (zh) | 一种缓存方法、设备及缓存服务系统 | |
EP3968702A1 (en) | Communication method and apparatus, entity and computer readable storage medium | |
CN108090064A (zh) | 一种数据查询方法、装置、数据存储服务器及系统 | |
CN107786638B (zh) | 一种数据处理方法、装置及系统 | |
CN102202087B (zh) | 一种标识存储设备的方法及系统 | |
CN104750740A (zh) | 数据更新的方法及装置 | |
CN104378452A (zh) | 一种用于域名解析的方法、装置及系统 | |
CN106792653B (zh) | 一种通信号码信息处理方法、装置及系统 | |
CN104601680A (zh) | 一种资源管理方法及装置 | |
CN104572845A (zh) | 文件分发方法、装置、设备及系统 | |
CN107613043A (zh) | Ip地址的地域信息搜索方法及其装置 | |
CN111125170A (zh) | 一种微服务的跨服务数据获取方法、装置及微服务设备 | |
CN108848455A (zh) | 可用网络的获取方法、装置、设备和计算机可读存储介质 | |
US20160308871A1 (en) | Network element data access method and apparatus, and network management system | |
CN111431818B (zh) | 跨域请求的流量分配方法、装置、存储介质及计算机设备 | |
US20220311773A1 (en) | Method and device for communication between microservices | |
CN105897754A (zh) | 一种数据处理系统、数据拉取方法以及客户端 | |
CN104144170A (zh) | 网页地址的过滤方法、装置和系统 | |
CN104424316B (zh) | 一种数据存储方法、数据查询方法、相关装置和系统 | |
CN109815351B (zh) | 信息查询方法及相关产品 | |
US20150100545A1 (en) | Distributed database system and a non-transitory computer readable medium | |
CN113609349A (zh) | 租赁车辆库存检测方法、装置及介质 | |
CN113535730A (zh) | 搜索引擎的索引更新方法及系统、电子设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191210 Address after: P.O. Box 31119, grand exhibition hall, hibiscus street, 802 West Bay Road, Grand Cayman, Cayman Islands Patentee after: Innovative advanced technology Co., Ltd Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands Patentee before: Alibaba Group Holding Co., Ltd. |