CN111309397A - 数据分配方法、装置、服务器及存储介质 - Google Patents

数据分配方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN111309397A
CN111309397A CN202010096219.1A CN202010096219A CN111309397A CN 111309397 A CN111309397 A CN 111309397A CN 202010096219 A CN202010096219 A CN 202010096219A CN 111309397 A CN111309397 A CN 111309397A
Authority
CN
China
Prior art keywords
token
data
instance
instances
tokens
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
Application number
CN202010096219.1A
Other languages
English (en)
Other versions
CN111309397B (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.)
Reach Best Technology Co Ltd
Original Assignee
Reach Best 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 Reach Best Technology Co Ltd filed Critical Reach Best Technology Co Ltd
Priority to CN202010096219.1A priority Critical patent/CN111309397B/zh
Publication of CN111309397A publication Critical patent/CN111309397A/zh
Application granted granted Critical
Publication of CN111309397B publication Critical patent/CN111309397B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开关于一种数据分配方法、装置、服务器及存储介质。所述方法包括:获取待分配数据,待分配数据表示用于提供目标服务所需处理的数据;根据预设数量配置相应数量的令牌,预设数量表示用于共同处理所述待分配数据以提供所述目标服务的实例的数量;建立待分配数据与令牌的映射关系;响应于预设数量的实例发送的令牌获取请求,分别向各实例发送令牌;当各实例获得令牌时,响应于各实例发送的携带有令牌的数据获取请求,根据携带的令牌以及映射关系,向各实例分配对应的数据。采用本方法可以避免为每个实例单独配置映射到相应数据的参数所需的繁琐操作。

Description

数据分配方法、装置、服务器及存储介质
技术领域
本公开涉及数据处理技术领域,尤其涉及数据分配方法、装置、服务器及存储介质。
背景技术
分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统,可以应用于互联网行业的多个服务,例如视频推荐、数据分析等。分布式系统通常包含多个用于处理数据的节点服务器(简称实例),相关技术中为各实例分配数据的方案如下:给每一个实例配置一个启动参数,每个启动参数映射至待处理数据中的一部分数据,根据各实例的启动参数以及启动参数与数据的映射关系,为各实例分配相应的数据,由各实例分别对相应的数据进行处理。
然而,相关技术中由于需要为每个实例单独配置启动参数,导致维护难度大,比如当服务规模较大需要增加添加实例时,需要为所有实例重新配置启动参数,工作量大,难以维护。
发明内容
本公开提供一种数据分配方法、装置、服务器和存储介质,以至少解决相关技术中由于需要为每一个实例单独配置启动参数导致维护难度大的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种数据分配方法,包括:
获取待分配数据,所述待分配数据表示用于提供目标服务所需处理的数据;
根据预设数量配置相应数量的令牌,所述预设数量表示用于共同处理所述待分配数据以提供所述目标服务的实例的数量;
建立所述待分配数据与所述令牌的映射关系;
响应于所述预设数量的实例发送的令牌获取请求,分别向各所述实例发送令牌;
当各所述实例获得令牌时,响应于各所述实例发送的携带有令牌的数据获取请求,根据携带的所述令牌以及所述映射关系,向各所述实例分配对应的数据。
可选的,所述建立所述待分配数据与所述令牌的映射关系,包括:
对所述待分配数据进行分片,获得预设数量的分片数据;
根据所述令牌的数量,对所述预设数量的分片数据进行分组,将同一组数据中的各分片数据映射至同一令牌。
可选的,所述根据所述令牌的数量,对所述预设数量的分片数据进行分组,将同一组数据中的各分片数据映射至同一令牌,包括:
对各所述分片数据进行连续编号,获得各所述分片数据的序号;
将各所述分片数据的序号对所述令牌的数量求余,将相同余数对应的分片数据作为同一组数据并映射至同一令牌。
可选的,所述响应于所述预设数量的实例发送的令牌获取请求,分别向各所述实例发送令牌,包括:
实时监测各所述实例发送的令牌获取请求,各所述令牌获取请求携带有所述实例的身份标识;
当接收到所述令牌获取请求时,根据所述身份标识查找关联的令牌;
当根据所述身份标识未查找到关联的令牌时,查找未被分配的可用令牌;
当查找到未被分配的可用令牌时,从所述可用令牌中为所述实例分配令牌,并将分配的所述令牌与所述实例的身份标识关联,向所述实例发送分配的所述令牌。
可选的,当根据所述身份标识查找到关联的令牌时,向所述实例发送所述关联的令牌。
可选的,在所述向所述实例发送令牌之后,还包括:
在所述令牌的有效期内,实时监测与所述令牌关联的所述实例发送的令牌获取请求;
若在所述令牌的有效期内,未接收到与所述令牌关联的所述实例发送的令牌获取请求,则解除所述令牌与所述实例的关联,将解除关联后的所述令牌作为待重新分配的可用令牌。
可选的,在所述将解除关联后的所述令牌作为待重新分配的可用令牌之后,还包括:
当接收到未与任何令牌关联的实例发送的令牌获取请求时,向所述实例发送所述待重新分配的可用令牌。
根据本公开实施例的第二方面,提供一种数据分配装置,包括:
获取模块,被配置为获取待分配数据,所述待分配数据表示用于提供目标服务所需处理的数据;
令牌配置模块,被配置为根据预设数量配置相应数量的令牌,所述预设数量表示用于共同处理所述待分配数据以提供所述目标服务的实例的数量;
映射模块,被配置为建立所述待分配数据与所述令牌的映射关系;
令牌管理模块,被配置为响应于所述预设数量的实例发送的令牌获取请求,分别向各所述实例发送令牌;
分配模块,被配置为当各所述实例获得令牌时,响应于各所述实例发送的携带有令牌的数据获取请求,根据携带的所述令牌以及所述映射关系,向各所述实例分配对应的数据。
可选的,所述映射模块包括:
分片单元,被配置为对所述待分配数据进行分片,获得预设数量的分片数据;
映射单元,被配置为根据所述令牌的数量,对所述预设数量的分片数据进行分组,将同一组数据中的各分片数据映射至同一令牌。
可选的,所述映射子模块包括:
编号子单元,被配置为对各所述分片数据进行连续编号,获得各所述分片数据的序号;
映射子单元,被配置为将各所述分片数据的序号对所述令牌的数量求余,将相同余数对应的分片数据作为同一组数据并映射至同一令牌。
可选的,所述令牌管理模块包括:
第一监测单元,被配置为实时监测各所述实例发送的令牌获取请求,各所述令牌获取请求携带有所述实例的身份标识;
查找单元,被配置为当接收到所述令牌获取请求时,根据所述身份标识查找关联的令牌;
第一响应单元,被配置为当根据所述身份标识未查找到关联的令牌时,查找未被分配的可用令牌,当查找到未被分配的可用令牌时,从所述可用令牌中为所述实例分配令牌,并将分配的所述令牌与所述实例的身份标识关联,向所述实例发送分配的所述令牌。
可选的,所述令牌管理模块还包括:
第二响应单元,被配置为当根据所述身份标识查找到关联的令牌时,向所述实例发送所述关联的令牌。
可选的,所述令牌管理模块还包括:
第二监测单元,被配置为在所述向所述实例发送令牌之后,在所述令牌的有效期内,实时监测与所述令牌关联的所述实例发送的所述令牌获取请求;
第三响应单元,被配置为若在所述令牌的有效期内,未接收到与所述令牌关联的所述实例发送的令牌获取请求,则解除所述令牌与所述实例的关联,将解除关联后的所述令牌作为待重新分配的可用令牌。
可选的,所述令牌管理模块还包括:
第四响应单元,被配置为在所述将解除关联后的所述令牌作为待重新分配的可用令牌之后,当接收到未与任何令牌关联的实例发送的令牌获取请求时,向所述实例发送所述待重新分配的可用令牌。
根据本公开实施例的第三方面,提供一种服务器,包括处理器和用于存储所述处理器可执行指令的存储器,其中,所述处理器被配置为执行所述指令,以实现第一方面中任一所述方法的步骤。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行第一方面中任一所述方法的步骤。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,设备的至少一个处理器从所述可读存储介质读取并执行所述计算机程序,使得设备执行第一方面中任一所述方法的步骤。
本公开的实施例提供的技术方案至少带来以下有益效果:通过配置用于访问待分配数据的令牌,建立待分配数据与令牌的映射关系,并根据用于共同处理待分配数据的各实例获得的令牌以及该映射关系,为各实例分配对应的数据。从而,各实例可以通过统一配置的令牌获取到各自需要处理的数据,避免对每个实例单独配置映射到相应数据的参数所需的繁琐操作,当服务规模较大需要增加添加实例时,只需重新统一配置令牌数以及数据与令牌的映射关系即可,而无需对所有实例进行重新配置,降低维护难度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种数据分配方法的应用环境图。
图2是根据一示例性实施例示出的一种数据分配方法的流程图。
图3是根据一示例性实施例示出的建立所述待分配数据与所述令牌的映射关系步骤的流程图。
图4是根据一示例性实施例示出的根据所述令牌的数量,对所述预设数量的分片数据进行分组,将同一组数据中的各分片数据映射至同一令牌步骤的流程图。
图5是根据一示例性实施例示出的响应于所述实例发送的令牌获取请求,向所述实例发送令牌步骤的流程图。
图6是根据一示例性实施例示出的响应于所述实例发送的令牌获取请求,向所述实例发送令牌步骤的流程图。
图7是根据一示例性实施例示出的响应于所述实例发送的令牌获取请求,向所述实例发送令牌步骤的流程图。
图8是根据一示例性实施例示出的响应于所述实例发送的令牌获取请求,向所述实例发送令牌步骤的流程图。
图9是根据一示例性实施例示出的一种数据分配装置的框图。
图10是根据一示例性实施例示出的一种用于数据分配的设备的内部结构图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所提供的数据分配方法,可以应用于如图1所示的应用环境中。该应用环境涉及数据分配服务器110和多个实例120(即用于处理数据的节点服务器),每个实例120通过网络与数据分配服务器110进行通信。数据分配服务器110获取到待分配数据后,配置一定数量的令牌,并建立待分配数据与令牌的映射关系;实例120向数据分配服务器110请求获取令牌,并在获得令牌后向数据分配服务器110请求获取数据;数据分配服务器110根据映射关系向实例120分配与令牌相应的数据;实例120获得相应的数据后,对相应的数据进行处理。其中,数据分配服务器110可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
图2是根据一示例性实施例示出的一种数据分配方法的流程图,如图2所示,该方法用于图1中的数据分配服务器110中,包括以下步骤S210至步骤S250。
在步骤S210中,获取待分配数据,所述待分配数据表示用于提供目标服务所需处理的数据。
以目标服务为视频推荐服务为例,对用户观看视频时产生的用户数据进行收集,将收集的所有用户数据作为待分配数据,分配给多个实例进行处理,为用户提供视频推荐服务。
在步骤S220中,根据预设数量配置相应数量的令牌,所述预设数量表示用于共同处理所述待分配数据以提供所述目标服务的实例的数量。
在实施中,预设数量的实例在共同处理待分配数据时,可以是各实例分别获得待分配数据中的部分数据后,对各自获得的部分数据分别进行处理,当所有实例处理完各自的数据后,完成对待分配数据的共同处理。其中,用于共同处理所述待分配数据的实例数量可以结合实际需求进行设定。以视频推荐服务为例,假设有100万用户,每个实例每分钟可以为1000用户提供服务,若需要在10分钟为所有用户提供服务,则需要至少配置100个实例,相应的配置100个令牌。在一个可行的实施方式中,可以配置100+N个实例,其中,100表示最大服务实例数,即允许同时提供服务的实例的最大数量,N表示替补的实例数量,当正在处理数据的实例出错导致停止服务时,替补的实例可以顶替该出错的实例,继续提供服务。其中,N可以结合实际情况进行设定,比如N可以设为2。
在步骤S230中,建立所述待分配数据与所述令牌的映射关系。
在实施中,可以将待分配数据映射至令牌,使得每个令牌对应一部分数据,且每个令牌对应的数据是互斥的,即待分配数据中的每个数据都是唯一地映射到一个令牌。
在步骤S240中,响应于所述预设数量的实例发送的令牌获取请求,分别向各所述实例发送令牌。
在实施中,实例需要获得令牌才能访问数据,因此各实例在获取数据之前,先向数据分配服务器发送令牌获取请求,数据分配服务器响应于各实例发送的令牌获取请求,向各实例发送令牌。在一个可行的实施方式中,可以对被发送出去的令牌进行标记,以表示该令牌已被一实例占用,当接收到其他实例的令牌获取请求时,不会向其他实例发送该已标记的令牌。
在步骤S250中,当各所述实例获得令牌时,响应于各所述实例发送的携带有令牌的数据获取请求,根据携带的所述令牌以及所述映射关系,向各所述实例分配相应的数据。
在实施中,各实例在获得令牌之后,向数据分配服务器发送携带有各自令牌的数据获取请求,数据分配服务器响应于各实例发送的数据获取请求,根据各数据获取请求中携带的令牌以及待分配数据与令牌的映射关系,获得与各数据获取请求中携带的令牌对应的数据,并将各对应的数据分配给相应的实例。
上述数据分配方法中,通过配置用于访问待分配数据的令牌,建立待分配数据与令牌的映射关系,并根据用于共同处理待分配数据的各实例获得的令牌以及该映射关系,为各实例分配对应的数据。从而,各实例可以通过统一配置的令牌获取到各自需要处理的数据,避免对每个实例单独配置映射到相应数据的参数所需的繁琐操作,当服务规模较大需要增加添加实例时,只需重新统一配置令牌数以及数据与令牌的映射关系即可,而无需对所有实例进行重新配置,降低维护难度。
在一示例性实施例中,如图3所示,在步骤S230中,建立所述待分配数据与所述令牌的映射关系,具体可以包括以下步骤S231至步骤S232。
在步骤S231中,对所述待分配数据进行分片,获得预设数量的分片数据。
在步骤S232中,根据所述令牌的数量,对所述预设数量的分片数据进行分组,将同一组数据中的各分片数据映射至同一令牌。
在实施中,待分配数据的数据量通常很大,可以先对其进行分片处理,获得预设数量的分片数据(shard)。其中,预设数量可以根据实际情况进行设定,例如分片数据的数量可以数倍于最大服务实例数,也即数倍于令牌数量。然后根据令牌数量对分片数据进行分组,分组数量与令牌数量相同,将每一组数据映射至一个令牌。举例来说,令牌数量为100,分片数据的数量为10000,可以将10000个分片数据平均分成100组,每一组数据中包含100个分片数据,每一组数据中包含的100个分片数据映射至同一个令牌。
该实施例中,通过对待分配数据进行分片和分组,将同一组中的各分片数据映射至同一令牌,使得各实例可以通过各自获得的令牌访问相应的分片数据,避免为各实例分别配置用于映射到数据的参数所需要的繁琐操作,且随着服务规模变化,令牌数量可以灵活调整,重新建立数据与令牌的映射关系即可适应变化需求,从而减小维护难度。
在一示例性实施例中,如图4所示,在步骤S232中,根据所述令牌的数量,对所述预设数量的分片数据进行分组,将同一组数据中的各分片数据映射至同一令牌,具体可以包括以下步骤S2321至步骤S2322。
在步骤S2321中,对各所述分片数据进行连续编号,获得各所述分片数据的序号。
在步骤S2322中,将各所述分片数据的序号对所述令牌的数量求余,将相同余数对应的分片数据作为同一组数据并映射至同一令牌。
在实施中,举例来说,令牌数量为100,分片数据的数量为10000,可以将10000个分片数据从0开始进行连续编号,即各分片数据的序号分别为0到9999,将各分片数据的序号分别除以100,得到的余数包括100个,分别为0到99,将相同余数对应的所有分片数据作为同一组数据并映射至同一令牌,同时可以将各余数作为令牌的编号。例如,余数为0对应的所有分片数据的序号为100n,将序号为100n的分片数据都映射至同一令牌(用T0表示);余数为1对应的所有分片数据的序号为100n+1,将序号为100n+1的分片数据都映射至同一令牌(用T1表示);余数为2对应的所有分片数据的序号为100n+2,将序号为100n+2的分片数据都映射至同一令牌(用T2表示);以此类推,余数为99对应的所有分片数据的序号为100n+99,将序号为100n+99的分片数据都映射至同一令牌(用T99表示)。其中,n为0到99的整数。
该实施例中,通过对各分片数据进行连续编号,将各分片数据的序号对令牌数量求余,将相同余数对应的分片数据映射至同一令牌,从而可以将所有分片数据均匀、互斥的映射到令牌上,保证各令牌对应的数据在数量上是均匀的,避免各实例在并行处理数据时由于分配到的数据不均匀导致整体耗时延长的问题,且不同令牌不会对应有重复的数据,避免数据被重复处理造成的资源浪费。
在一示例性实施例中,如图5所示,在步骤S240中,响应于所述预设数量的实例发送的令牌获取请求,分别向各所述实例发送令牌,具体可以包括以下步骤S241至步骤S244。
在步骤S241中,实时监测各所述实例发送的令牌获取请求,各所述令牌获取请求携带有所述实例的身份标识。
在实施中,用于处理待分配数据的各实例可以每隔一段时间向数据分配服务器发送一次令牌获取请求,令牌获取请求中携带的身份标识用于表示发送该令牌获取请求的实例的身份,每个实例具有唯一的身份标识,不同的实例具有不同的身份标识。
在步骤S242中,当接收到所述令牌获取请求时,根据所述身份标识查找关联的令牌。
在实施中,数据分配服务器接收到令牌获取请求时,根据令牌获取请求中携带的实例的身份标识查找关联的令牌。可以理解,如果一实例是第一次发送令牌获取请求,则数据分配服务器管理的令牌中不会存在与该实例的身份标识关联的令牌;如果一实例发送过令牌获取请求并成功获取到令牌,则数据分配服务器会将该令牌与该实例的身份标识进行关联。
在步骤S243中,当根据所述身份标识未查找到关联的令牌时,查找未被分配的可用令牌。
在实施中,对于发送令牌获取请求的实例,当根据该实例的身份标识查找不到关联的令牌时,说明该实例此时没有正在使用的令牌,即没有在处理数据,处于空闲状态,此时若有未被分配的可用令牌,则可以将其分配给该实例,若没有未被分配的可用令牌,则该实例仍处于空闲状态。其中,未被分配的可用令牌表示未与任何实例关联的令牌,即未被任何实例正在使用的令牌,其可以分配给空闲状态的实例使用。
在步骤S244中,当查找到未被分配的可用令牌时,从所述可用令牌中为所述实例分配令牌,并将分配的所述令牌与所述实例的身份标识关联,向所述实例发送分配的所述令牌。
在实施中,数据分配服务器可以从查找到的未被分配的可用令牌中,任选一个令牌分配给实例,数据分配服务器在将令牌分配给实例时,可以对分配出去的该令牌进行标记,具体可以是在该令牌标识后面添加该实例的身份标识,从而将该令牌与该实例的身份标识进行关联,用以表示该令牌已被该实例占用,而无法分配给其他实例使用。
该实施例中,在为实例分配令牌时,将令牌与实例的身份标识进行关联,关联了实例的令牌只能被该实例使用,关联了令牌的实例无法同时使用其他令牌,即一个令牌在同一时刻只能被一个实例使用,一个实例在同一时刻也只能使用一个令牌,从而保证数据的安全性以及数据在处理过程中的一致性、完整性和互斥性。
在一示例性实施例中,如图6所示,在步骤S241和步骤S242之后,还可以包括以下步骤S245。
在步骤S245中,当根据所述身份标识查找到关联的令牌时,向所述实例发送所述关联的令牌。
该实施例中,在为实例分配令牌时,若该实例已具有关联的令牌,则继续将该关联的令牌分配给该实例使用,从而保证数据处理的连贯性。
在一示例性实施例中,如图7所示,在向所述实例发送令牌之后,还可以包括以下步骤S246至步骤S247。
在步骤S246中,在所述令牌的有效期内,实时监测与所述令牌关联的所述实例发送的令牌获取请求。
在实施中,对于已获得令牌的实例,每隔一段时间向数据分配服务器发送一次令牌获取请求,用以反馈工作状态。例如,令牌的有效期假设为30s,则已获得该令牌的实例可以每隔10s向数据分配服务器发送一次令牌获取请求,若数据分配服务器在自发送该令牌起的30s内接收到已获得该令牌的实例发送的令牌获取请求,则可以认为该实例处于正常工作状态。若数据分配服务器在自发送该令牌起的30s内未接收到已获得该令牌的实例发送的令牌获取请求,则可以认为该实例工作出错导致服务停止。
在步骤S247中,若在所述令牌的有效期内,未接收到与所述令牌关联的所述实例发送的令牌获取请求,则解除所述令牌与所述实例的关联,将解除关联后的所述令牌作为待重新分配的可用令牌。
在实施中,若数据分配服务器在已发送令牌的有效期内未接收到已获得该令牌的实例发送的令牌获取请求,即可以认为该实例工作出错导致服务停止,则解除该实例已获得的令牌与该实例的关联,将解除关联后的令牌作为待重新分配的可用令牌,即可以分配给其他空闲状态的实例使用。
该实施例中,令牌具有保活能力,发送给实例的令牌具有有效期,对于已获得令牌的实例,通过监测在该令牌的有效期内是否接收到该令牌的令牌获取请求,来判断该实例的工作状态,当判断该实例停止服务时,则解除该令牌与该实例的关联,解除了关联的令牌将被释放,可以继续分配给其他空闲状态的实例使用,从而减小实例停止服务带来的影响,提升容灾能力。
在一示例性实施例中,如图8所示,在将解除关联后的所述令牌作为待重新分配的可用令牌之后,还可以包括以下步骤S248。
在步骤S248中,当接收到未与任何令牌关联的实例发送的令牌获取请求时,向所述实例发送所述待重新分配的可用令牌。
该实施例中,未与任何令牌关联的实例即处于空闲状态的实例,将停止服务的实例释放的待重新分配的可用令牌,分配给空闲状态的实例使用,从而空闲状态的实例可以顶替停止服务的实例,对该令牌对应的数据进行处理,避免实例停止服务导致数据丢失,提升容灾能力。
应该理解的是,虽然图2-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-8中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
图9是根据一示例性实施例示出的一种数据分配装置框图。参照图9,该数据分配装置900包括获取模块910,令牌配置模块920、映射模块930、令牌管理模块940和分配模块950。
获取模块910,被配置为获取待分配数据,所述待分配数据表示用于提供目标服务所需处理的数据。
令牌配置模块920,被配置为根据预设数量配置相应数量的令牌,所述预设数量表示用于共同处理所述待分配数据以提供所述目标服务的实例的数量。
映射模块930,被配置为建立所述待分配数据与所述令牌的映射关系。
令牌管理模块940,被配置为响应于所述预设数量的实例发送的令牌获取请求,分别向各所述实例发送令牌
分配模块950,被配置为当各所述实例获得令牌时,响应于各所述实例发送的携带有令牌的数据获取请求,根据携带的所述令牌以及所述映射关系,向各所述实例分配对应的数据。
在一示例性实施例中,所述映射模块930包括:分片单元和映射单元。
分片单元,被配置为对所述待分配数据进行分片,获得预设数量的分片数据。
映射单元,被配置为根据所述令牌的数量,对所述预设数量的分片数据进行分组,将同一组数据中的各分片数据映射至同一令牌。
在一示例性实施例中,所述映射单元包括:编号子单元和映射子单元。
编号子单元,被配置为对各所述分片数据进行连续编号,获得各所述分片数据的序号。
映射子单元,被配置为将各所述分片数据的序号对所述令牌的数量求余,将相同余数对应的分片数据作为同一组数据并映射至同一令牌。
在一示例性实施例中,所述令牌管理模块940包括:第一监测单元、查找单元和第一响应单元。
第一监测单元,被配置为实时监测各所述实例发送的令牌获取请求,各所述令牌获取请求携带有所述实例的身份标识。
查找单元,被配置为当接收到所述令牌获取请求时,根据所述身份标识查找关联的令牌。
第一响应单元,被配置为当根据所述身份标识未查找到关联的令牌时,查找未被分配的可用令牌,当查找到未被分配的可用令牌时,从所述可用令牌中为所述实例分配令牌,并将分配的所述令牌与所述实例的身份标识关联,向所述实例发送分配的所述令牌。
在一示例性实施例中,所述令牌管理模块940还包括:第二响应单元。
第二响应单元,被配置为当根据所述身份标识查找到关联的令牌时,向所述实例发送所述关联的令牌。
在一示例性实施例中,所述令牌管理模块940还包括:第二监测单元和第三响应单元。
第二监测单元,被配置为在所述向所述实例发送令牌之后,在所述令牌的有效期内,实时监测与所述令牌关联的所述实例发送的所述令牌获取请求。
第三响应单元,被配置为若在所述令牌的有效期内,未接收到与所述令牌关联的所述实例发送的令牌获取请求,则解除所述令牌与所述实例的关联,将解除关联后的所述令牌作为待重新分配的可用令牌。
在一示例性实施例中,所述令牌管理模块940还包括:第四响应单元。
第四响应单元,被配置为在所述将解除关联后的所述令牌作为待重新分配的可用令牌之后,当接收到未与任何令牌关联的实例发送的令牌获取请求时,向所述实例发送所述待重新分配的可用令牌。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图10是根据一示例性实施例示出的一种用于数据分配的设备1000的框图。例如,设备1000可以为一服务器。参照图10,设备1000包括处理组件1020,其进一步包括一个或多个处理器,以及由存储器1022所代表的存储器资源,用于存储可由处理组件1020的执行的指令,例如应用程序。存储器1022中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1020被配置为执行指令,以执行上述数据分配的方法。
设备1000还可以包括一个电源组件1024被配置为执行设备1000的电源管理,一个有线或无线网络接口1026被配置为将设备1000连接到网络,和一个输入输出(I/O)接口1028。设备1000可以操作基于存储在存储器1022的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在一示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器1022,上述指令可由设备1000的处理器执行以完成上述方法。存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在一示例性实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一数据分配方法的步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种数据分配方法,其特征在于,包括:
获取待分配数据,所述待分配数据表示用于提供目标服务所需处理的数据;
根据预设数量配置相应数量的令牌,所述预设数量表示用于共同处理所述待分配数据以提供所述目标服务的实例的数量;
建立所述待分配数据与所述令牌的映射关系;
响应于所述预设数量的实例发送的令牌获取请求,分别向各所述实例发送令牌;
当各所述实例获得令牌时,响应于各所述实例发送的携带有令牌的数据获取请求,根据携带的所述令牌以及所述映射关系,向各所述实例分配对应的数据。
2.根据权利要求1所述的方法,其特征在于,所述建立所述待分配数据与所述令牌的映射关系,包括:
对所述待分配数据进行分片,获得预设数量的分片数据;
根据所述令牌的数量,对所述预设数量的分片数据进行分组,将同一组数据中的各分片数据映射至同一令牌。
3.根据权利要求2所述的方法,其特征在于,所述根据所述令牌的数量,对所述预设数量的分片数据进行分组,将同一组数据中的各分片数据映射至同一令牌,包括:
对各所述分片数据进行连续编号,获得各所述分片数据的序号;
将各所述分片数据的序号对所述令牌的数量求余,将相同余数对应的分片数据作为同一组数据并映射至同一令牌。
4.根据权利要求1所述的方法,其特征在于,所述响应于所述预设数量的实例发送的令牌获取请求,分别向各所述实例发送令牌,包括:
实时监测各所述实例发送的令牌获取请求,各所述令牌获取请求携带有所述实例的身份标识;
当接收到所述令牌获取请求时,根据所述身份标识查找关联的令牌;
当根据所述身份标识未查找到关联的令牌时,查找未被分配的可用令牌;
当查找到未被分配的可用令牌时,从所述可用令牌中为所述实例分配令牌,并将分配的所述令牌与所述实例的身份标识关联,向所述实例发送分配的所述令牌。
5.根据权利要求4所述的方法,其特征在于,当根据所述身份标识查找到关联的令牌时,向所述实例发送所述关联的令牌。
6.根据权利要求4或5所述的方法,其特征在于,在所述向所述实例发送令牌之后,还包括:
在所述令牌的有效期内,实时监测与所述令牌关联的所述实例发送的令牌获取请求;
若在所述令牌的有效期内,未接收到与所述令牌关联的所述实例发送的令牌获取请求,则解除所述令牌与所述实例的关联,将解除关联后的所述令牌作为待重新分配的可用令牌。
7.根据权利要求6所述的方法,其特征在于,在所述将解除关联后的所述令牌作为待重新分配的可用令牌之后,还包括:
当接收到未与任何令牌关联的实例发送的令牌获取请求时,向所述实例发送所述待重新分配的可用令牌。
8.一种数据分配装置,其特征在于,包括:
获取模块,被配置为获取待分配数据,所述待分配数据表示用于提供目标服务所需处理的数据;
令牌配置模块,被配置为根据预设数量配置相应数量的令牌,所述预设数量表示用于共同处理所述待分配数据以提供所述目标服务的实例的数量;
映射模块,被配置为建立所述待分配数据与所述令牌的映射关系;
令牌管理模块,被配置为响应于所述预设数量的实例发送的令牌获取请求,分别向各所述实例发送令牌;
分配模块,被配置为当各所述实例获得令牌时,响应于各所述实例发送的携带有令牌的数据获取请求,根据携带的所述令牌以及所述映射关系,向各所述实例分配对应的数据。
9.一种服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的数据分配方法的步骤。
10.一种存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行如权利要求1至7中任一项所述的数据分配方法的步骤。
CN202010096219.1A 2020-02-17 2020-02-17 数据分配方法、装置、服务器及存储介质 Active CN111309397B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010096219.1A CN111309397B (zh) 2020-02-17 2020-02-17 数据分配方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010096219.1A CN111309397B (zh) 2020-02-17 2020-02-17 数据分配方法、装置、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN111309397A true CN111309397A (zh) 2020-06-19
CN111309397B CN111309397B (zh) 2024-01-09

Family

ID=71145049

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010096219.1A Active CN111309397B (zh) 2020-02-17 2020-02-17 数据分配方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN111309397B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590043A (zh) * 2021-07-29 2021-11-02 北京沃东天骏信息技术有限公司 一种数据存储方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982780A (en) * 1995-12-28 1999-11-09 Dynarc Ab Resource management scheme and arrangement
CN102999571A (zh) * 2012-11-09 2013-03-27 深圳市宜搜科技发展有限公司 一种集群中单机多节点的实现方法
CN110059080A (zh) * 2019-04-29 2019-07-26 珠海天燕科技有限公司 一种数据处理的方法和装置
CN110768913A (zh) * 2018-07-27 2020-02-07 华为技术有限公司 流量控制方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982780A (en) * 1995-12-28 1999-11-09 Dynarc Ab Resource management scheme and arrangement
CN102999571A (zh) * 2012-11-09 2013-03-27 深圳市宜搜科技发展有限公司 一种集群中单机多节点的实现方法
CN110768913A (zh) * 2018-07-27 2020-02-07 华为技术有限公司 流量控制方法及装置
CN110059080A (zh) * 2019-04-29 2019-07-26 珠海天燕科技有限公司 一种数据处理的方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590043A (zh) * 2021-07-29 2021-11-02 北京沃东天骏信息技术有限公司 一种数据存储方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111309397B (zh) 2024-01-09

Similar Documents

Publication Publication Date Title
CN106789362B (zh) 一种设备管理方法及网管系统
US10728135B2 (en) Location based test agent deployment in virtual processing environments
CN108924244B (zh) 分布式系统以及用于该系统的流量分配方法和装置
CN111614748B (zh) 用于可扩展的对等匹配的设备及方法
CN111708627B (zh) 基于分布式调度框架的任务调度方法以及装置
CN111459641B (zh) 一种跨机房的任务调度和任务处理的方法及装置
CN105939389A (zh) 负载均衡方法及装置
CN111930515B (zh) 数据获取及分配方法、装置、服务器、存储介质
CN107423942B (zh) 一种业务流转的方法及装置
CN103810045A (zh) 资源分配方法、资源管理器、资源服务器及系统
CN107402800A (zh) 一种更新容器守护进程的方法和设备
CN116225655A (zh) 一种任务调度方法、装置及存储介质
JP2013125548A (ja) 仮想マシン割り当てシステム及びその使用方法
CN111338778B (zh) 任务调度方法、装置、存储介质及计算机设备
CN111309397B (zh) 数据分配方法、装置、服务器及存储介质
CN112948077A (zh) 批处理方法、装置、设备及存储介质
CN110196721B (zh) 一种互联网数据中心管理方法、系统及介质
CN111756800A (zh) 一种处理突发流量的方法和系统
CN111683164B (zh) 一种ip地址的配置方法及vpn服务系统
CN114020408A (zh) 一种任务分片配置方法及装置、设备、存储介质
CN110046319B (zh) 社交媒体信息采集方法、装置、系统、设备及存储介质
CN109698764B (zh) 一种域名解析系统配置更新方法和装置
CN111491039A (zh) 一种分布式文件系统ip分配方法、系统、终端及存储介质
CN110209475A (zh) 数据采集方法及装置
CN116112306B (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