CN111405019A - 数据处理方法、装置、计算机设备和存储介质 - Google Patents
数据处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111405019A CN111405019A CN202010160864.5A CN202010160864A CN111405019A CN 111405019 A CN111405019 A CN 111405019A CN 202010160864 A CN202010160864 A CN 202010160864A CN 111405019 A CN111405019 A CN 111405019A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- accessed
- external terminal
- address information
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据处理方法、装置、计算机设备和存储介质。所述方法包括:接收数据访问请求,数据访问请求携带待访问数据标识,当检测到已缓存数据中不存在与待访问数据标识对应的待访问数据时,发送地址查询请求至外部终端,地址查询请求携带待访问数据标识,接收外部终端反馈的目标数据节点标识,目标数据节点标识由外部终端根据待访问数据标识在预设地址信息中查询得到,根据目标数据节点标识,查询目标数据节点的状态,根据目标数据节点的状态响应数据访问请求。采用本方法在分布式缓存系统中数据节点集群中的节点发生变动时,通过发送地址查询请求,获得预设地址信息中对应的目标数据节点标识,实现了自动定位待访问数据所在节点。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据处理方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展和应用,互联网用户规模和数据规模越来越大,这对数据处理能力的要求越来越高,分布式缓存系统可以满足大规模数据处理需求,提高数据的读取速度。
分布式缓存系统包括客户端、路由层设备和数据节点集群。用户可以通过客户端向路由层设备发送请求,路由层设备选取数据节点集群中的数据节点,由选取的数据节点响应用户的请求进行数据处理。然而,分布式缓存系统目前的数据处理方式,在数据节点集群发生变动时,存在无法自动定位数据所在节点的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种在数据节点集群发生变动时,能够自动定位数据所在节点的数据处理方法、装置、计算机设备和存储介质。
一种数据处理方法,所述方法包括:
接收数据访问请求,所述数据访问请求携带待访问数据标识;
当检测到已缓存数据中不存在与所述待访问数据标识对应的待访问数据时,发送地址查询请求至外部终端,所述地址查询请求携带所述待访问数据标识;
接收所述外部终端反馈的目标数据节点标识,所述目标数据节点标识由所述外部终端根据所述待访问数据标识在预设地址信息中查询得到。
根据所述目标数据节点标识,查询目标数据节点的状态,根据所述目标数据节点的状态响应所述数据访问请求。
一种数据处理装置,所述装置包括:
请求接收模块,用于接收数据访问请求,所述数据访问请求携带待访问数据标识;
地址查询模块,用于当检测到已缓存数据中不存在与所述待访问数据标识对应的待访问数据时,发送地址查询请求至外部终端,所述地址查询请求携带所述待访问数据标识;
地址接收模块,用于接收所述外部终端反馈的目标数据节点标识,所述目标数据节点标识由所述外部终端根据所述待访问数据标识在预设地址信息中查询得到;
请求响应模块,用于根据所述目标数据节点标识,查询目标数据节点的状态,根据所述目标数据节点的状态响应所述数据访问请求。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收数据访问请求,所述数据访问请求携带待访问数据标识;
当检测到已缓存数据中不存在与所述待访问数据标识对应的待访问数据时,发送地址查询请求至外部终端,所述地址查询请求携带所述待访问数据标识;
接收所述外部终端反馈的目标数据节点标识,所述目标数据节点标识由所述外部终端根据所述待访问数据标识在预设地址信息中查询得到。
根据所述目标数据节点标识,查询目标数据节点的状态,根据所述目标数据节点的状态响应所述数据访问请求。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收数据访问请求,所述数据访问请求携带待访问数据标识;
当检测到已缓存数据中不存在与所述待访问数据标识对应的待访问数据时,发送地址查询请求至外部终端,所述地址查询请求携带所述待访问数据标识;
接收所述外部终端反馈的目标数据节点标识,所述目标数据节点标识由所述外部终端根据所述待访问数据标识在预设地址信息中查询得到。
根据所述目标数据节点标识,查询目标数据节点的状态,根据所述目标数据节点的状态响应所述数据访问请求。
上述数据处理方法、装置、计算机设备和存储介质,通过接收数据访问请求,数据访问请求携带待访问数据标识,当检测到已缓存数据中不存在与待访问数据标识对应的待访问数据时,发送地址查询请求至外部终端,地址查询请求携带待访问数据标识,接收外部终端反馈的目标数据节点标识,目标数据节点标识由外部终端根据待访问数据标识在预设地址信息中查询得到,根据目标数据节点标识,查询目标数据节点的状态,根据目标数据节点的状态响应数据访问请求,检测到已缓存数据中不存在与待访问数据标识对应的待访问数据,表明此时在分布式缓存系统中数据节点集群中的节点发生变动,在这种情况下通过发送地址查询请求,获得预设地址信息中对应的目标数据节点标识,实现了自动定位待访问数据所在节点。
附图说明
图1为一个实施例中分布式系统应用于区块链系统的结构示意图;
图2为一个实施例中区块结构的示意图;
图3为一个实施例中数据处理方法的流程示意图;
图4为一个实施例中数据迁移操作执行步骤的流程示意图;
图5为一个实施例中待访问数据的访问地址信息重建步骤的流程示意图;
图6为一个实施例中数据上线的时序图;
图7为一个实施例中数据迁移的时序图;
图8为一个实施例中恢复数据访问的时序图;
图9为一个实施例中数据处理装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在对本申请实施例中提供的数据处理方法进行解释说明之前,先对分布式系统的相关内容予以说明。
分布式系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成。以分布式系统为区块链系统为例,参见图1,图1是分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,TransmissionControl Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图1示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图2,图2是本申请实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
本申请提供的数据处理方法,可以应用于如图1所示的应用环境中。用户通过客户端300发起数据访问请求,节点200中的某节点接收客户端300发送的数据访问请求,数据访问请求携带待访问数据标识。该节点通过一致性哈希算法从节点200的数据节点集群中确定与待访问数据标识对应的节点1,将数据访问请求发送至节点1。节点1接收数据访问请求,当检测到节点1已缓存数据中不存在与待访问数据标识对应的待访问数据时,节点1发送地址查询请求至外部终端,地址查询请求携带待访问数据标识。外部终端根据待访问数据标识在预设地址信息中查询得到节点2,节点2与节点1不同,将节点2标识反馈至节点1。节点1查询节点2的状态,根据节点2的状态响应数据访问请求。其中,客户端300通过网络与节点200进行通信,节点200的各个节点之间通过路由进行通信,客户端300可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,外部终端中存储有预设地址信息,比如可以通过在线表的形式存储数据标识与数据所在节点之间的关系,外部终端可以是通过网络接入该分布式系统中的任意形式的计算设备,如服务器、用户终端等。
在一个实施例中,如图3所示,提供了一种数据处理方法,以该方法应用于图1中节点200中的节点1为例进行说明,包括以下步骤:
步骤302,接收数据访问请求,数据访问请求携带待访问数据标识。
数据访问请求是指用户通过客户端发起的,用于请求对数据进行访问,比如请求对某项业务数据进行访问。此外,数据访问请求可以是不同用户发起的数据访问请求,也可以是同一用户在不同时间发起的数据访问请求。比如在某个时刻,多个用户通过客户端发起数据访问请求,用户1发起数据访问请求a,用户2发起数据访问请求b,数据访问请求可以是数据访问请求a,也可以是数据访问请求b,或者同时包括数据访问请求a和b。待访问数据标识是用来标识数据访问请求所请求的数据,比如用户1通过客户端发起的数据访问请求a,请求访问数据A,用户2通过客户端发起的数据访问请求b,请求访问数据B。
步骤304,当检测到已缓存数据中不存在与待访问数据标识对应的待访问数据时,发送地址查询请求至外部终端,地址查询请求携带待访问数据标识。
数据节点集群包括多个数据节点,每个数据节点中缓存有业务数据,具体地,一个数据节点可以对应一个服务器,在数据节点中可以采用标识对应的方式存储业务数据,比如标识1对应业务数据A,标识2对应业务数据B。用户通过客户端发起数据访问请求,数据访问请求携带待访问数据标识。路由设备在接收到数据访问请求时,通过一致性哈希算法从数据节点集群中确定与待访问数据标识对应的节点1,将数据访问请求转发至节点1。节点1接收到数据访问请求,在已缓存数据中查找是否存在待访问数据,当检测到已缓存数据中不存在与待访问数据标识对应的待访问数据时,发送地址查询请求至外部终端,请求获得待访问数据所在节点。
步骤306,接收外部终端反馈的目标数据节点标识,目标数据节点标识由外部终端根据待访问数据标识在预设地址信息中查询得到。
外部终端存储有预设地址信息,预设地址信息是指不同数据的缓存地址信息,预设地址信息具体可以是以在线表格的形式存储数据标识与数据地址的对应关系。以数据访问请求用于访问数据A为例,根据待访问数据标识在预设地址信息中查询,得到数据A所在节点为节点2,即目标数据节点为节点2,节点2与节点1属于数据节点集群中不同的节点。
步骤308,根据目标数据节点标识,查询目标数据节点的状态,根据目标数据节点的状态响应数据访问请求。
目标数据节点的状态用于表征目标数据节点是否故障。承上所述,目标数据节点为节点2,查询节点2的状态,根据节点2的状态响应数据访问请求。在节点2故障时,通过预设第一策略响应数据访问请求;在节点2正常时,通过预设第二策略响应数据访问请求。
上述数据处理方法中,通过接收数据访问请求,数据访问请求携带待访问数据标识,当检测到已缓存数据中不存在与待访问数据标识对应的待访问数据时,发送地址查询请求至外部终端,地址查询请求携带待访问数据标识,接收外部终端反馈的目标数据节点标识,目标数据节点标识由外部终端根据待访问数据标识在预设地址信息中查询得到,根据目标数据节点标识,查询目标数据节点的状态,根据目标数据节点的状态响应数据访问请求,检测到已缓存数据中不存在与待访问数据标识对应的待访问数据,表明此时在分布式缓存系统中数据节点集群中的节点发生变动,在这种情况下通过发送地址查询请求,获得预设地址信息中对应的目标数据节点标识,实现了自动定位待访问数据所在节点。
在一个实施例中,根据目标数据节点的状态响应数据访问请求包括:当目标数据节点的状态为正常状态时,发送第一数据迁移消息至目标数据节点,第一数据迁移消息用于指示目标数据节点将待访问数据发送至外部终端;在接收到第二数据迁移消息时,执行数据迁移操作,第二数据迁移消息由目标数据节点在发送待访问数据至外部终端之后发出,数据迁移操作用于将待访问数据迁移至缓存中。以节点2作为目标数据节点为例,当节点1查询到节点2的状态为正常状态时,节点1发送第一数据迁移消息至节点2,第一数据迁移消息用于指示节点2将待访问数据发送至外部终端,节点2在发送待访问数据至外部终端之后,发出第二数据迁移消息至节点1,节点1在接收到第二数据迁移消息时,执行数据迁移操作,数据迁移操作用于将待访问数据迁移至节点1的缓存中。
传统技术中,在数据节点集群中的节点数量发生变动时,如扩容、缩容等操作,需要由运维人员手动迁移数据,在完成数据迁移后用户才可以进行数据访问。该数据迁移过程涉及到多方人员的配合,耗费大量人力和时间。而上述数据处理方法,在数据节点集群中的节点发生变化,通过查询外部终端的预设地址信息,得到待访问数据真实所在地址,在待访问数据真实所在地址与通过一致性哈希算法得出的地址不一致时,触发待访问数据的自动迁移,将待访问数据从待访问数据真实所在地址(节点2)迁移至节点1(通过一致性哈希算法得出的地址)。以游戏场景为例,传统技术的数据迁移过程中,用户无法访问数据,极大地影响了用户地正常游戏,而上述数据处理方法数据自动迁移,不影响用户正常游戏,对用户来说无感知数据迁移过程。
在一个实施例中,如图4所示,执行数据迁移操作包括:步骤402,从外部终端获取并缓存待访问数据,生成待访问数据的迁移地址信息;步骤404,将迁移地址信息发送至外部终端,由外部终端根据迁移地址信息更新预设地址信息。仍以节点2作为目标数据节点为例,节点1指示节点2将待访问数据发送至外部终端的数据库,然后节点1再从数据库中获取待访问数据,并将待访问数据加入至节点1的缓存数据中,生成待访问数据的迁移地址信息(待访问数据所在节点为节点1),节点1将该迁移地址信息发送至外部终端,外部终端根据该迁移地址信息更新预设地址信息,在后续通过外部终端的预设地址信息查询待访问数据的地址时,得到对应的地址即为节点1,保证了外部终端中存储的地址信息的及时性和准确性。
在一个实施例中,第一数据迁移消息携带数据删除消息和目标地址清除消息,数据删除消息用于指示目标数据节点在将待访问数据发送至外部终端之后,删除待访问数据;目标地址清除消息用于指示外部终端清除预设地址信息中待访问数据的初始地址信息。目标数据节点在将待访问数据发送至外部终端之后,在缓存中删除待访问数据,释放缓存空间。外部终端清除预设地址信息中待访问数据的初始地址信息,比如,外部终端存储的预设地址信息中待访问数据的初始地址信息为节点2,而执行数据迁移操作的目标是将待访问数据迁移至节点1,因此,需要清除预设地址信息中待访问数据的初始地址信息,以存储待访问数据的实时地址信息。清除待访问数据的初始地址信息可以是节点1直接发目标地址清除消息给终端,也可以是节点1发目标地址清除消息给节点2,节点2再转发该消息给终端。
在一个实施例中,根据目标数据节点的状态响应数据访问请求包括:当目标数据节点的状态为故障状态时,发送地址清除消息至外部终端,地址清除消息用于指示外部终端清除预设地址信息中待访问数据的地址信息;在接收到地址清除完成消息时,重建待访问数据的访问地址信息,地址清除完成消息由外部终端在清除预设地址信息中待访问数据的地址信息之后发出。以节点2作为目标数据节点为例,当节点1查询到节点2的状态为故障状态时,节点1发送地址清除消息至外部终端,指示外部终端清除预设地址信息中待访问数据的地址信息(节点2)。外部终端在清除待访问数据的地址信息之后,发出地址清除完成消息至节点1,节点1在接收到地址清除完成消息时,重建待访问数据的访问地址信息。传统技术中,在数据节点集群中的节点发生故障时,需要依赖双机热备来保证数据访问的可用性,在部署上需要冗余出一倍的机器数量,极大地浪费机器资源。而上述数据处理方法,在数据节点集群中的节点发生故障时,无需双机热备,通过与外部终端的交互,重建待访问数据的访问地址信息,由此实现支持通过数据节点集群中的非故障节点响应数据访问请求,极大地节省了机器资源。
在一个实施例中,如图5所示,重建待访问数据的访问地址信息包括:步骤502,发送携带待访问数据标识的地址查询请求至外部终端;步骤504,当接收到外部终端反馈的待访问数据的地址信息为空时,从外部终端获取并缓存待访问数据,生成待访问数据的访问地址信息;步骤506,将访问地址信息发送至外部终端,由外部终端根据访问地址信息更新预设地址信息。节点1发送携带待访问数据标识的地址查询请求至外部终端,外部终端根据该地址查询请求,在预设地址信息中查询,而预设地址信息中待访问数据的地址信息已被清除,因此,外部终端向节点1反馈的待访问数据的地址信息为空。此时,节点1从外部终端的数据库中获取并缓存待访问数据,生成待访问数据的访问地址信息(节点1),将该访问地址信息发送至外部终端,外部终端根据该访问地址信息更新预设地址信息。这样在节点发生故障时,无需双机热备,通过对外部终端存储的地址信息以及数据库的操作,重建待访问数据的访问地址信息,通过数据节点集群中的非故障节点响应数据访问请求,极大地节省了机器资源。
在一个实施例中,根据目标数据节点标识,查询目标数据节点的状态包括:发送节点状态查询请求至目标数据节点对应的路由设备,节点状态查询请求携带目标数据节点标识;接收路由设备响应节点状态查询请求,通过心跳包检测反馈的目标数据节点的状态。
以目标数据节点为节点2为例,节点1发送节点状态查询请求至路由设备,节点状态查询请求携带节点2标识,请求获取节点2的状态。路由设备响应该节点状态查询请求,在节点状态表中查询,向节点1反馈查询结果。其中,节点状态表由路由设备周期性的发送心跳检测包至数据节点集群中的节点,根据在预设时间内是否接收到节点反馈的心跳响应包得到。比如,路由设备在预设时间内接收到某节点反馈的心跳响应包,则该节点状态为正常状态;在预设时间内未接收到某节点反馈的心跳响应包,则该节点状态为故障状态。这样可以实现对数据节点集群中各个节点的状态的实时跟踪,一旦出现故障节点,切换至相应的策略响应数据访问请求。
本申请还提供一种应用场景,该应用场景应用上述的数据处理方法。具体地,该数据处理方法在该应用场景的应用如下:当用户通过客户端发起对数据A的访问请求时,路由设备在接收到该访问请求时,先通过一致性哈希算法定位数据节点集群中的节点X。路由设备将该访问请求发送至节点X,由节点X处理该访问请求,如果节点X的缓存中不存在数据A,那么节点X从外部终端的数据库中获取数据A,并更新节点X的本地缓存,生成数据A的缓存地址信息(数据A所在节点为节点X),之后,节点X将数据A的缓存地址信息同步至外部终端的在线表,该场景中数据上线的时序图如图5所示。后续在路由设备接收到客户端发起的数据A的访问请求时,分为两种情况,当数据节点集群中的节点数量没有发生变动时,路由设备通过一致性哈希算法定位得到节点1,路由设备将该访问请求发送至节点1,由节点1处理该访问请求,而节点1的缓存中存在数据A,因此,可以正常响应用户的数据访问请求,也即用户可以正常访问数据A。当数据节点集群中的节点数量发生变动时,通过一致性哈希算法将无法定位到数据A所在节点1,此时可以通过在线表上记录的数据A的缓存地址信息,实现数据A所在节点1的自动定位。
本申请还另外提供一种应用场景,该应用场景应用上述的数据处理方法。具体地,该数据处理方法在该应用场景的应用如下:当数据节点集群中的节点数量发生变化时,数据访问请求所请求访问的数据所在真实地址,与路由设备通过一致性哈希算法计算得出的地址不一致,此时,触发数据自动迁移流程。数据迁移的时序图如图7所示,数据访问请求所请求访问的数据A所在节点为节点X,而路由设备基于节点数量变化后的数据节点集群通过一致性哈希算法,得出的缓存地址是节点Y,此时,触发数据A的迁移过程,将数据A从节点X中下线,迁移至节点Y中,在数据A迁移完成后,将在线表中数据A的缓存地址信息改为节点Y。在数据A进行迁移之前,路由设备无法通过一致性哈希算法定位数据A的缓存地址节点X,此时,可以通过在线表的缓存地址信息定位数据A的缓存地址节点X;而在数据A完成迁移后,路由设备可以继续通过一致性哈希算法定位数据A的缓存地址节点Y。
本申请还另外提供一种应用场景,该应用场景应用上述的数据处理方法。具体地,该数据处理方法在该应用场景的应用如下:当数据节点集群中的节点X发生故障时,由于数据节点集群中的节点数量变化了,路由设备无法通过一致性哈希算法定位数据A所在节点X,而通过在线表定位得到数据A所在节点为节点X,但是节点X已经故障,无法访问,对数据A的访问进入了卡死状态。此时,可以通过清除数据A在在线表上的缓存地址信息(数据A所在节点为节点X),以使在节点X以外的其他节点恢复数据A的访问。节点故障时恢复数据访问的时序图如图8所示,当用户通过客户端发起对数据A的访问请求时,路由设备在接收到该访问请求时,由于数据节点集群中的节点X发生故障,数据节点集群中的节点数量变化了,路由设备无法通过一致性哈希算法定位数据A所在节点X,而节点Y通过在线表定位得到数据A所在节点为节点X,但是节点X已经故障,无法访问,访问数据A超时。此时,清除数据A在在线表上的缓存地址信息,在清除数据A的缓存地址信息之后,通过节点Y从外部终端的数据库中获取数据A,将获取到的数据A存储至节点Y的本地缓存,生成数据A的缓存地址信息(数据A所在节点为节点Y),将数据A的缓存地址信息同步至在线表,这样可以通过节点Y恢复数据A的访问。
以游戏场景为例,上述数据处理方法,可以有效的支持在游戏玩家无感知的情况下,操作服务集群的在线扩容、在线缩容;还可以有效的支持在游戏玩家无感知且无人工干预的情况下,数据自动进行迁移操作,保证扩容、缩容后数据分布的均衡性;此外,在容灾处理上,无需进行双机热备,即能自动恢复故障数据的访问,大大节省机器部署数量。
应该理解的是,虽然图3-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种数据处理装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:请求接收模块、地址查询模块、地址接收模块和请求响应模块,其中:
请求接收模块,用于接收数据访问请求,数据访问请求携带待访问数据标识;
地址查询模块,用于当检测到已缓存数据中不存在与待访问数据标识对应的待访问数据时,发送地址查询请求至外部终端,地址查询请求携带所述待访问数据标识;
地址接收模块,用于接收外部终端反馈的目标数据节点标识,目标数据节点标识由外部终端根据待访问数据标识在预设地址信息中查询得到;
请求响应模块,用于根据目标数据节点标识,查询目标数据节点的状态,根据目标数据节点的状态响应所述数据访问请求。
在一个实施例中,请求响应模块还用于当目标数据节点的状态为正常状态时,发送第一数据迁移消息至目标数据节点,第一数据迁移消息用于指示目标数据节点将待访问数据发送至外部终端;在接收到第二数据迁移消息时,执行数据迁移操作,第二数据迁移消息由目标数据节点在发送待访问数据至外部终端之后发出,数据迁移操作用于将待访问数据迁移至缓存中。
在一个实施例中,请求响应模块还用于从外部终端获取并缓存待访问数据,生成待访问数据的迁移地址信息;将迁移地址信息发送至外部终端,由外部终端根据迁移地址信息更新预设地址信息。
在一个实施例中,数据处理装置中,第一数据迁移消息携带数据删除消息和目标地址清除消息,数据删除消息用于指示目标数据节点在将待访问数据发送至外部终端之后,删除待访问数据;目标地址清除消息用于指示外部终端清除预设地址信息中待访问数据的初始地址信息。
在一个实施例中,请求响应模块还用于当目标数据节点的状态为故障状态时,发送地址清除消息至外部终端,地址清除消息用于指示外部终端清除预设地址信息中待访问数据的地址信息;在接收到地址清除完成消息时,重建待访问数据的访问地址信息,地址清除完成消息由外部终端在清除预设地址信息中待访问数据的地址信息之后发出。
在一个实施例中,请求响应模块还用于发送携带待访问数据标识的地址查询请求至外部终端;当接收到外部终端反馈的待访问数据的地址信息为空时,从外部终端获取并缓存待访问数据,生成待访问数据的访问地址信息;将访问地址信息发送至外部终端,由外部终端根据访问地址信息更新预设地址信息。
在一个实施例中,请求响应模块还用于发送节点状态查询请求至目标数据节点对应的路由设备,节点状态查询请求携带目标数据节点标识;接收路由设备响应节点状态查询请求,通过心跳包检测反馈的目标数据节点的状态。
关于数据处理装置的具体限定可以参见上文中对于数据处理方法的限定,在此不再赘述。上述数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储业务请求、业务数据等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据处理方法,所述方法包括:
接收数据访问请求,所述数据访问请求携带待访问数据标识;
当检测到已缓存数据中不存在与所述待访问数据标识对应的待访问数据时,发送地址查询请求至外部终端,所述地址查询请求携带所述待访问数据标识;
接收所述外部终端反馈的目标数据节点标识,所述目标数据节点标识由所述外部终端根据所述待访问数据标识在预设地址信息中查询得到。
根据所述目标数据节点标识,查询目标数据节点的状态,根据所述目标数据节点的状态响应所述数据访问请求。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标数据节点的状态响应所述数据访问请求包括:
当所述目标数据节点的状态为正常状态时,发送第一数据迁移消息至目标数据节点,所述第一数据迁移消息用于指示所述目标数据节点将所述待访问数据发送至所述外部终端;
在接收到第二数据迁移消息时,执行数据迁移操作,所述第二数据迁移消息由所述目标数据节点在发送所述待访问数据之后发出,所述数据迁移操作用于将所述待访问数据迁移至缓存中。
3.根据权利要求2所述的方法,其特征在于,所述执行数据迁移操作包括:
从所述外部终端获取并缓存所述待访问数据,生成所述待访问数据的迁移地址信息;
将所述迁移地址信息发送至所述外部终端,由所述外部终端根据所述迁移地址信息更新所述预设地址信息。
4.根据权利要求2所述的方法,其特征在于,所述第一数据迁移消息携带数据删除消息和目标地址清除消息,所述数据删除消息用于指示所述目标数据节点在将所述待访问数据发送至所述外部终端之后,删除所述待访问数据;所述目标地址清除消息用于指示所述外部终端清除所述预设地址信息中所述待访问数据的初始地址信息。
5.根据权利要求1所述的方法,其特征在于,所述根据所述目标数据节点的状态响应所述数据访问请求包括:
当所述目标数据节点的状态为故障状态时,发送地址清除消息至所述外部终端,所述地址清除消息用于指示所述外部终端清除所述预设地址信息中所述待访问数据的地址信息;
在接收到地址清除完成消息时,重建所述待访问数据的访问地址信息,所述地址清除完成消息由所述外部终端在清除所述预设地址信息中所述待访问数据的地址信息之后发出。
6.根据权利要求5所述的方法,其特征在于,所述重建所述待访问数据的访问地址信息包括:
发送携带所述待访问数据标识的地址查询请求至所述外部终端;
当接收到所述外部终端反馈的待访问数据的地址信息为空时,从所述外部终端获取并缓存所述待访问数据,生成所述待访问数据的访问地址信息;
将所述访问地址信息发送至所述外部终端,由所述外部终端根据所述访问地址信息更新所述预设地址信息。
7.根据权利要求1所述的方法,其特征在于,所述根据所述目标数据节点标识,查询目标数据节点的状态包括:
发送节点状态查询请求至目标数据节点对应的路由设备,所述节点状态查询请求携带所述目标数据节点标识;
接收所述路由设备响应所述节点状态查询请求,通过心跳包检测反馈的目标数据节点的状态。
8.一种数据处理装置,其特征在于,所述装置包括:
请求接收模块,用于接收数据访问请求,所述数据访问请求携带待访问数据标识;
地址查询模块,用于当检测到已缓存数据中不存在与所述待访问数据标识对应的待访问数据时,发送地址查询请求至外部终端,所述地址查询请求携带所述待访问数据标识;
地址接收模块,用于接收所述外部终端反馈的目标数据节点标识,所述目标数据节点标识由所述外部终端根据所述待访问数据标识在预设地址信息中查询得到;
请求响应模块,用于根据所述目标节点标识,查询目标数据节点的状态,根据所述目标数据节点的状态响应所述数据访问请求。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010160864.5A CN111405019B (zh) | 2020-03-10 | 2020-03-10 | 数据处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010160864.5A CN111405019B (zh) | 2020-03-10 | 2020-03-10 | 数据处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111405019A true CN111405019A (zh) | 2020-07-10 |
CN111405019B CN111405019B (zh) | 2021-11-16 |
Family
ID=71433049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010160864.5A Active CN111405019B (zh) | 2020-03-10 | 2020-03-10 | 数据处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111405019B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112055077A (zh) * | 2020-09-02 | 2020-12-08 | 杭州复杂美科技有限公司 | 区块链接入方法、设备和存储介质 |
CN113010224A (zh) * | 2021-03-03 | 2021-06-22 | 南方电网数字电网研究院有限公司 | 前端微服务化方法、装置、计算机设备和存储介质 |
CN113157812A (zh) * | 2021-05-21 | 2021-07-23 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种分布式多集群状态类数据的同步方法及系统 |
CN113312339A (zh) * | 2021-07-28 | 2021-08-27 | 腾讯科技(深圳)有限公司 | 一种数据迁移的方法及装置、计算机设备和存储介质 |
CN113630457A (zh) * | 2021-08-02 | 2021-11-09 | 北京金山云网络技术有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
CN114024733A (zh) * | 2021-11-01 | 2022-02-08 | 新华三大数据技术有限公司 | 一种服务的访问控制方法、装置、存储介质及控制器 |
CN114385596A (zh) * | 2022-01-14 | 2022-04-22 | 上海幻电信息科技有限公司 | 数据处理方法及装置 |
WO2022095366A1 (zh) * | 2020-11-06 | 2022-05-12 | 平安科技(深圳)有限公司 | 基于Redis的数据读取方法、装置、设备及可读存储介质 |
CN114925102A (zh) * | 2022-06-29 | 2022-08-19 | 抖音视界(北京)有限公司 | 书籍内容的获取方法、装置、计算机设备和存储介质 |
CN115190044A (zh) * | 2022-06-28 | 2022-10-14 | 平安银行股份有限公司 | 设备连接状态检查方法、装置、设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102143199A (zh) * | 2010-10-19 | 2011-08-03 | 华为技术有限公司 | 获取内容的方法、节点及内容网络 |
CN105357281A (zh) * | 2015-10-19 | 2016-02-24 | 中国科学院信息工程研究所 | 一种移动接入网分布式内容缓存访问控制方法及系统 |
CN107231395A (zh) * | 2016-03-25 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 数据存储方法、装置和系统 |
CN107562385A (zh) * | 2017-09-13 | 2018-01-09 | 郑州云海信息技术有限公司 | 分布式存储客户端读取数据的方法、装置和设备 |
CN109918382A (zh) * | 2019-03-18 | 2019-06-21 | Oppo广东移动通信有限公司 | 数据处理方法、装置、终端及存储介质 |
US20190196742A1 (en) * | 2017-12-21 | 2019-06-27 | Advanced Micro Devices, Inc. | Extreme-bandwidth scalable performance-per-watt gpu architecture |
CN110851474A (zh) * | 2018-07-26 | 2020-02-28 | 深圳市优必选科技有限公司 | 数据查询方法、数据库中间件、数据查询设备及存储介质 |
-
2020
- 2020-03-10 CN CN202010160864.5A patent/CN111405019B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102143199A (zh) * | 2010-10-19 | 2011-08-03 | 华为技术有限公司 | 获取内容的方法、节点及内容网络 |
CN105357281A (zh) * | 2015-10-19 | 2016-02-24 | 中国科学院信息工程研究所 | 一种移动接入网分布式内容缓存访问控制方法及系统 |
CN107231395A (zh) * | 2016-03-25 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 数据存储方法、装置和系统 |
CN107562385A (zh) * | 2017-09-13 | 2018-01-09 | 郑州云海信息技术有限公司 | 分布式存储客户端读取数据的方法、装置和设备 |
US20190196742A1 (en) * | 2017-12-21 | 2019-06-27 | Advanced Micro Devices, Inc. | Extreme-bandwidth scalable performance-per-watt gpu architecture |
CN110851474A (zh) * | 2018-07-26 | 2020-02-28 | 深圳市优必选科技有限公司 | 数据查询方法、数据库中间件、数据查询设备及存储介质 |
CN109918382A (zh) * | 2019-03-18 | 2019-06-21 | Oppo广东移动通信有限公司 | 数据处理方法、装置、终端及存储介质 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112055077B (zh) * | 2020-09-02 | 2023-04-18 | 杭州复杂美科技有限公司 | 区块链接入方法、设备和存储介质 |
CN112055077A (zh) * | 2020-09-02 | 2020-12-08 | 杭州复杂美科技有限公司 | 区块链接入方法、设备和存储介质 |
WO2022095366A1 (zh) * | 2020-11-06 | 2022-05-12 | 平安科技(深圳)有限公司 | 基于Redis的数据读取方法、装置、设备及可读存储介质 |
CN113010224A (zh) * | 2021-03-03 | 2021-06-22 | 南方电网数字电网研究院有限公司 | 前端微服务化方法、装置、计算机设备和存储介质 |
CN113010224B (zh) * | 2021-03-03 | 2024-01-30 | 南方电网数字平台科技(广东)有限公司 | 前端微服务化方法、装置、计算机设备和存储介质 |
CN113157812A (zh) * | 2021-05-21 | 2021-07-23 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种分布式多集群状态类数据的同步方法及系统 |
CN113312339A (zh) * | 2021-07-28 | 2021-08-27 | 腾讯科技(深圳)有限公司 | 一种数据迁移的方法及装置、计算机设备和存储介质 |
CN113630457A (zh) * | 2021-08-02 | 2021-11-09 | 北京金山云网络技术有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
CN114024733A (zh) * | 2021-11-01 | 2022-02-08 | 新华三大数据技术有限公司 | 一种服务的访问控制方法、装置、存储介质及控制器 |
CN114024733B (zh) * | 2021-11-01 | 2024-01-26 | 新华三大数据技术有限公司 | 一种服务的访问控制方法、装置、存储介质及控制器 |
CN114385596A (zh) * | 2022-01-14 | 2022-04-22 | 上海幻电信息科技有限公司 | 数据处理方法及装置 |
CN115190044B (zh) * | 2022-06-28 | 2023-08-08 | 平安银行股份有限公司 | 设备连接状态检查方法、装置、设备和存储介质 |
CN115190044A (zh) * | 2022-06-28 | 2022-10-14 | 平安银行股份有限公司 | 设备连接状态检查方法、装置、设备和存储介质 |
CN114925102A (zh) * | 2022-06-29 | 2022-08-19 | 抖音视界(北京)有限公司 | 书籍内容的获取方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111405019B (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111405019B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112380149B (zh) | 基于节点内存的数据处理方法、装置、设备以及介质 | |
CN108470298B (zh) | 资源数值转移的方法、装置和系统 | |
CN108011929A (zh) | 数据请求处理方法、装置、计算机设备和存储介质 | |
CN111091429A (zh) | 电子票据标识分配方法及装置、电子票据生成系统 | |
CN111049902A (zh) | 基于区块链网络的数据存储方法、装置、存储介质和设备 | |
US11100094B2 (en) | Taking snapshots of blockchain data | |
CN104011701A (zh) | 内容传送网络 | |
CN104008152A (zh) | 支持海量数据访问的分布式文件系统的架构方法 | |
CN111400112A (zh) | 分布式集群的存储系统的写入方法、装置及可读存储介质 | |
CN110597922B (zh) | 数据处理方法、装置、终端及存储介质 | |
CN105868333A (zh) | 文件处理方法及装置 | |
CN110784498B (zh) | 一种个性化数据容灾方法及装置 | |
WO2022174735A1 (zh) | 基于分布式存储的数据处理方法、装置、设备以及介质 | |
US11194792B2 (en) | Taking snapshots of blockchain data | |
CN107370809A (zh) | 数据同步方法及数据搜索系统 | |
CN112866406A (zh) | 一种数据存储方法、系统、装置、设备及存储介质 | |
CN106776151A (zh) | Samba集群tdb数据库记录备份方法、装置及系统 | |
CN118368341A (zh) | 一种基于分层链网络的数据处理方法、装置、设备及介质 | |
JPH07114495A (ja) | 多重化ファイル管理方式 | |
CN113010600A (zh) | 一种基于区块链的数据管理系统、方法、相关设备及介质 | |
CN113010337A (zh) | 故障检测方法、总控节点、工作节点及分布式系统 | |
CN117057799B (zh) | 资产数据处理方法、装置、设备及存储介质 | |
US20230004955A1 (en) | Peer-to-peer selectable digital money system | |
CN118245162A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |