CN109286663A - 一种分布式系统业务分配方法、装置及设备 - Google Patents
一种分布式系统业务分配方法、装置及设备 Download PDFInfo
- Publication number
- CN109286663A CN109286663A CN201811075225.8A CN201811075225A CN109286663A CN 109286663 A CN109286663 A CN 109286663A CN 201811075225 A CN201811075225 A CN 201811075225A CN 109286663 A CN109286663 A CN 109286663A
- Authority
- CN
- China
- Prior art keywords
- client
- server
- distributed system
- address
- service end
- 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
Links
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
-
- 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/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Abstract
本发明公开了一种分布式系统业务分配方法,包括:接收客户端发送的业务请求;检测分布式系统内是否存在与客户端绑定的服务端,若存在,将业务请求发送至与其绑定的服务端内进行处理;若不存在,依据预设筛选规则,从分布式系统内选择一个支持业务请求的服务端作为目标服务端;将客户端与目标服务端进行会话session绑定,将客户端的业务请求发送至目标服务端进行处理。本发明将客户端与一个服务端进行session绑定,保证客户端上业务处理信息的高度一致性,且方便进行故障分析及数据追溯,分布式系统的可靠性高。本发明还公开了一种基于上述方法的装置、设备及计算机可读存储介质。
Description
技术领域
本发明涉及分布式系统技术领域,特别是涉及一种分布式系统业务分配方法、装置、设备及计算机可读存储介质。
背景技术
分布式存储系统在企业信息系统中得到了广泛应用和深入发展,用户的核心文件存储应用数量越来越多,其中,在分布式集群普遍使用负载均衡来解决分布式存储系统的透明故障切换和资源压力问题。
在分布式存储系统中,多台服务端可以同时提供一项服务,并统一由服务配置中心进行管理。客户端通过查询服务配置中心,获取到服务端的IP地址列表,然后选取其中一个服务IP建立会话session,即该客户端会将自身的业务请求发送至建立session的服务端内进行处理。
其中,客户端如何选取建立session的服务端,是取决于具体的负载均衡算法,目前对应于不同的场景,选择的负载均衡算法也不尽相同。负载均衡算法的种类有很多种,常见的负载均衡算法包括轮询法、随机法、加权轮询法、加权随机法等。其中,轮询法(RoundRobin)是将请求按顺序轮流分配到后台服务端上,均衡的对待每一台服务端。随机法是通过系统随机函数,根据后台服务端列表的大小值来随机选取其中一台进行访问。加权轮询法(Weight Round Robin)。加权随机法跟加权轮询法类似也与前述两种方法类似。
在目前的负载均衡算法中,客户端与哪个服务端建立session取决于各个服务端的配置、负载压力以及客户端发起请求的时间等,每个客户端在每次发起业务请求时,均可能与不同的服务端建立session,即处理同一客户端的业务的可能是不同的服务端,这样导致session存在不固定的问题,使得客户端的不同业务处理信息可能存在信息不一致的情况,并且当客户端或服务端出现故障时,由于与其建立session的对端不确定,因此,也很难依据与其建立session的对端来进行故障分析以及数据追溯,分布式系统的可靠性低。
因此,如何提供一种可靠性高的分布式系统业务分配方法、装置、设备及计算机可读存储介质是本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种分布式系统业务分配方法,将客户端与一个服务端进行session绑定,保证客户端上业务处理信息的高度一致性,且客户端或服务端能够依据与其建立session的对端来进行故障分析及数据追溯,分布式系统的可靠性高;本发明的另一目的是提供一种基于上述方法的装置、设备及计算机可读存储介质。
为解决上述技术问题,本发明提供了一种分布式系统业务分配方法,包括:
接收客户端发送的业务请求;
检测所述分布式系统内是否存在与所述客户端绑定的服务端,若存在,将所述业务请求发送至与其绑定的服务端内进行处理;若不存在,依据预设筛选规则,从所述分布式系统内选择一个支持所述业务请求的服务端作为目标服务端;
将所述客户端与所述目标服务端进行会话session绑定,将所述客户端的业务请求发送至所述目标服务端进行处理。
优选的,所述依据预设筛选规则,从所述分布式系统内选择一个支持所述业务请求的服务端作为目标服务端的过程具体包括:
依据预设的哈希算法计算所述客户端对应的哈希值;
确定所述分布式系统内支持所述业务请求的服务端个数n,并为所确定的n个服务端分别添加序号为0~n-1;
将所述哈希值与所述服务端个数n进行取余操作,得到目标服务端的序号;
依据所述目标服务端的序号确定所述目标服务端。
优选的,所述依据预设的哈希算法计算所述客户端对应的哈希值的过程具体为:
依据所述业务请求获得所述客户端的IP地址;
依据所述客户端的IP地址,获取指向所述客户端的IP地址的指针地址;
通过所述预设的哈希算法计算所述指针地址对应的哈希值。
优选的,所述获取指向所述客户端的IP地址的指针地址之后,通过所述预设的哈希算法计算所述指针地址对应的哈希值之前,还包括:
将所述指针地址保存至客户端请求业务表内;所述客户端请求业务表内依据各个所述客户端的指针地址的保存时间进行排序;
相应的,得到的各个所述客户端对应的哈希值以及服务端个数之后,还包括:
将各个所述客户端对应的哈希值以及服务端个数,对应的保存至所述客户端请求业务表内相应的指针地址之后;
依据接收时间从前到后的顺序,依次遍历所述客户端请求业务表内各个指针地址,并将当前遍历的指针地址对应的哈希值与服务端个数进行取余操作,得到当前遍历的指针地址对应的目标服务端的序号。
优选的,所述通过所述预设的哈希算法计算所述指针地址对应的哈希值的过程具体为:
依据接收时间从前到后的顺序,依次遍历所述客户端请求业务表内各个指针地址,并令当前遍历的指针地址与上一个遍历的指针地址的哈希值求和,即得到当前遍历的指针地址对应的哈希值;其中,遍历的第一个指针地址与预设初始值求和,求和结果作为所述第一个指针地址的哈希值。
优选的,若检测所述分布式系统内存在与所述客户端绑定的服务端,则将所述业务请求发送至与其绑定的服务端内进行处理之前,还包括:
检测与所述客户端绑定的服务端是否处于故障状态;
若是,断开所述客户端与该服务端之间的session绑定,并依据预设筛选规则,从所述分布式系统内选择一个支持所述业务请求的服务端作为目标服务端;
若不是,则将所述业务请求发送至与其绑定的服务端内进行处理。
优选的,所述将所述客户端与所述目标服务端进行会话session绑定的过程包括:
从所述业务请求内获得所述客户端的IP地址;
获取所述目标服务端的IP地址;
将所述客户端的IP地址与所述目标服务端的IP地址进行session绑定。
为解决上述技术问题,本发明还提供了一种分布式系统业务分配装置,包括:
接收模块,用于接收客户端发送的业务请求、;
绑定检测模块,用于检测所述分布式系统内是否存在与所述客户端绑定的服务端,若存在,将所述业务请求发送至与其绑定的服务端内进行处理;若不存在,触发目标筛选模块;
所述目标筛选模块,用于依据预设筛选规则,从所述分布式系统内选择一个支持所述业务请求的服务端作为目标服务端;
绑定模块,用于将所述客户端与所述目标服务端进行会话session绑定,将所述客户端的业务请求发送至所述目标服务端进行处理。
为解决上述技术问题,本发明还提供了一种分布式系统业务分配设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上任一项所述的分布式系统业务分配方法的步骤。
为解决上述技术问题,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上任一项所述的分布式系统业务分配方法的步骤。
本发明提供了一种分布式系统业务分配方法,在接收客户端发送的业务请求后,若分布式系统内不包含与客户端绑定的服务端,则依据预设筛选规则,从分布式系统内选择一个支持上述业务请求的服务端作为目标服务端,将该目标服务端与客户端进行session绑定,使得后续该客户端发送的业务请求均直接发送至该目标服务端进行处理。可见,本发明将客户端与一个能够支持自己业务的服务端进行了绑定,使得后续该客户端发送的业务均由该服务端进行处理,保证了该客户端上业务处理信息的高度一致性;并且当客户端或服务端出现故障时,由于与其建立session的对端是固定的,因此,能够依据与其建立session的对端来进行故障分析以及数据追溯,分布式系统的可靠性高。本发明还挺了一种基于上述方法的装置、设备及计算机可读存储介质,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种分布式系统业务分配方法的过程的流程图;
图2为本发明提供的另一种分布式系统业务分配方法的过程的流程图;
图3为本发明提供的一种分布式系统业务分配装置的结构示意图。
具体实施方式
本发明的核心是提供一种分布式系统业务分配方法,将客户端与一个服务端进行session绑定,保证客户端上业务处理信息的高度一致性,且客户端或服务端能够依据与其建立session的对端来进行故障分析及数据追溯,分布式系统的可靠性高;本发明的另一核心是提供一种基于上述方法的装置、设备及计算机可读存储介质。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种分布式系统业务分配方法,参见图1所示,图1为本发明提供的一种分布式系统业务分配方法的过程的流程图;该方法包括:
步骤s1:接收客户端发送的业务请求;
其中,本发明是应用于分布式系统中、管理负载均衡的服务配置中心内。
步骤s2:检测分布式系统内是否存在与客户端绑定的服务端,若存在,进入步骤s3;若不存在,进入步骤s4;
可以理解的是,本发明会将客户端与一个服务端进行唯一绑定,使得该客户端的业务请求均分配至该服务端进行处理,因此,当系统接收到客户端发送的业务请求后,需要首先检测一下该客户端是否已经与服务端进行绑定,若绑定了,则可直接将业务请求发送至绑定的服务端处理,若未绑定,则需要为该客户端选择一个服务端进行绑定后,再将业务请求发送至所绑定的服务端内处理。上述检测,能够避免重复绑定的情况,保证每个客户端仅与一个服务端进行绑定,从而保证了客户端内业务处理信息的一致性,以及方便后续的业务记录追溯以及故障分析查询等操作。
步骤s3:将业务请求发送至与其绑定的服务端内进行处理;
步骤s4:依据预设筛选规则,从分布式系统内选择一个支持业务请求的服务端作为目标服务端;
可以理解的是,由于不同服务端支持的业务类型可能不同,因此,需要首先从分布式系统中选择能够支持客户端发送的业务请求的服务端,之后再从这些服务端中选择一个与客户端绑定,这样才能保证绑定的服务端能够处理客户端的业务。
步骤s5:将客户端与目标服务端进行会话session绑定,将客户端的业务请求发送至目标服务端进行处理。
可见,本发明将客户端与一个能够支持自己业务的服务端进行了绑定,使得后续该客户端发送的业务均由该服务端进行处理,保证了该客户端上业务处理信息的高度一致性;并且当客户端或服务端出现故障时,由于与其建立session的对端是固定的,因此,能够依据与其建立session的对端来进行故障分析以及数据追溯,分布式系统的可靠性高。
在一种优选实施例中,参见图2所示,图2为本发明提供的另一种分布式系统业务分配方法的过程的流程图;步骤s4的过程具体包括:
步骤s41:依据预设的哈希算法计算客户端对应的哈希值;
可以理解的是,哈希(Hash)算法,即散列函数。它是一种单向密码体制,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输入经过变化以后得到固定长度的输出。哈希函数的这种单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。即当输入改变时,输出的哈希值也发生改变,因此采用哈希算法能够保证不同的客户端对应的哈希值不同,这样在后续依据哈希值计算目标服务端的序号时,能够使不同客户端最终得到的目标服务端的序号尽可能不同,即使不同的客户端尽可能分布在不同的服务端上,从而使整个分布式系统的负载更为均衡。
步骤s42:确定分布式系统内支持客户端的业务请求的服务端个数n,并为所确定的n个服务端分别添加序号为0~n-1;
可以理解的是,由于不同服务端支持的业务种类可能不同,因此对于不同的业务,分布式系统内能够提供支持的服务端的个数也是各不相同的。故需要首先确定分布式系统中有哪些服务端能够支持客户端发起的业务请求。假如确定能够提供客户端发起的业务请求的服务端的个数为n(例如10)个,此时需要给这10个服务端添加序号0~n-1(例如0~9)。
步骤s43:将哈希值与服务端个数n进行取余操作,得到目标服务端的序号;依据目标服务端的序号确定目标服务端。
本实施例采用的计算方式,是令客户端的哈希值,与能够提供客户端请求的业务服务的服务端个数进行取余操作,这里的取余操作是指哈希值与服务端个数作比后得到的余数,就是目标服务端的序号。可以理解的是,余数不会超出被除数,因此,最终得到的余数不会超出所确定的服务端个数n。本发明为了使最终得到的余数等于目标服务端的序号,且目标服务端的序号一定在之前确定的能够提供服务的服务端内,故需要在确定服务端个数为n个后,再对这n个服务端添加序号为0~n-1;从而保证不论余数为多少,最终得到的结果一定能够提供客户端所需的业务服务。
进一步可知,步骤s41的过程具体为:
依据业务请求获得客户端的IP地址;
依据客户端的IP地址,获取指向客户端的IP地址的指针地址;
通过预设的哈希算法计算指针地址对应的哈希值。
可以理解的是,由于IP地址是由三个“.”划分的四个数字段组成的,例如101.101.2.34,目前使用IP地址时,是分别对上述四个数字段进行操作,该方法称为点分法,即按照“.”的位置对IP地址进行分割,这种操作复杂,使用效率低。而本发明并未按照上述方式应用IP地址,而是查找到了IP地址的指针地址,也可理解为内存地址信息;这里的得到客户端IP地址的指针地址具体是指对客户端的IP地址进行序列化得到一组字符串地址,之后依据这组字符串进行数据处理,这种方式相比分别利用四段数据进行操作的方式,效率更高。且后续依据一个字符串来计算哈希值的话,相比依据四段字符串的方式,显然便利性更高,更容易进行计算。
在另一优选实施例中,获取指向客户端的IP地址的指针地址之后,通过预设的哈希算法计算指针地址对应的哈希值之前,还包括:
将指针地址保存至客户端请求业务表内;客户端请求业务表内依据各个客户端的指针地址的保存时间进行排序;
可以理解的是,分布式系统内通常会几乎同时接收到多个客户端发送的业务请求,即并发请求较多,因此分布式系统才会有负载均衡的需求。故这种情况下,虽然对于每个客户端均是按照前述方法进行处理,但是,若这些客户端均未绑定服务端的话,若并行对这些客户端进行目标服务端的查询,则需要较多的进程并行处理,分布式系统的服务配置中心压力过大,因此,优选采用将这些客户端的指针地址保存至一个列表内,然后依次对这些客户端进行处理。在实际应用中,即使这些客户端近乎同时发生业务请求,但通常也会存在细微的时间差,因此,在客户端请求业务表内对各个客户端进行排序时,可依据得到各个客户端的指针地址的时间进行排序,该排序也可认为是接收各个客户端发送的业务请求的时间顺序。
并且,由于会几乎同时接收到多个客户端的业务请求,为了方便将指针地址保存至客户端请求业务表内,可以将各个客户端的指针地址以字符串的形式赋予字符串数组中。例如:客户端业务IP地址为101.101.2.34,把所述IP赋值给char*src_ip,即src_ip[]=101.101.2.34。src_ip[x]为字符串数组,0<x<n-1,n为该字符串数组内指针地址的总个数。
相应的,得到的各个客户端对应的哈希值以及服务端个数之后,还包括:
将各个客户端对应的哈希值以及服务端个数,对应的保存至客户端请求业务表内相应的指针地址之后;
即在客户端请求业务表内,客户端的指针地址、哈希值和能够提供业务支持的服务端个数,三者之间是对应保存的。依据接收时间从前到后的顺序,依次遍历客户端请求业务表内各个指针地址,并将当前遍历的指针地址对应的哈希值与服务端个数进行取余操作,得到当前遍历的指针地址对应的目标服务端的序号。
例如,服务端个数为10,客户端请求业务表包含的指针地址的个数为20,则上述遍历的算法内容具体为:
for(x=0;x<20;x++){
hash_num=client_ip_hash(src_ip[x],strlen(src_ip[x]))%10;
}
hash_num为目标服务端的序号,client_ip_hash(src_ip[x],strlen(src_ip[x]))为第x-1个客户端对应的哈希值。
可以理解的是,由于本实施例采用的是依据对列表内待处理的客户端进行处理的方式,因此,需要对客户端请求业务表采用遍历的方式进行处理,从而避免客户端的遗漏,提高可靠性。并且,为了避免整个列表遍历完成后,二次遍历导致的重复绑定服务端的情况出现,遍历完成后的一组客户端的相关数据(指针地址、哈希值和能够提供业务支持的服务端个数)可以从客户端请求业务表删除;或者,也可在遍历完成后的客户端相关数据旁标注已处理的标识,下次遍历时,即跳过包含上述标识的数据。当然,还可采用其他方式避免重复遍历,本发明对此不作限定。
具体的,上述通过预设的哈希算法计算指针地址对应的哈希值的过程具体为:
依据接收时间从前到后的顺序,依次遍历客户端请求业务表内各个指针地址,并令当前遍历的指针地址与上一个遍历的指针地址的哈希值求和,即得到当前遍历的指针地址对应的哈希值;其中,遍历的第一个指针地址与预设初始值求和,求和结果作为第一个指针地址的哈希值。
可以理解的是,由于需要连续计算多个指针地址的哈希值,为了保证不同指针地址的哈希值不同,本实施例采用的方式是:首先确定共有n个序列化的指针地址,即字符串数组src_ip[]的长度为n;之后通过长度递减循环求出hash值,hash算法为:
hash+=*src_ip++;
hash算法描述:*src_ip表示字符串数组的指针地址,;*src_ip++表示向后偏移一位,指向字符串数组内下一个数组元素,即下一个指针地址;然后,当前所指的指针地址与上一个指针地址求和,得出一个新的hash结果,即为当前所指的指针地址对应的哈希值,然后重复上述操作,直至字符串数组内(或者说客户端请求业务表内)全部指针地址遍历完毕即可。
具体的上述操作的函数表示为:
当然,以上仅为一种具体的哈希值计算方式,哈希算法存在多种,本发明不限定具体采用哪种哈希算法进行计算。
在一种优选实施例中,步骤s2中,若检测分布式系统内存在与客户端绑定的服务端,则进入步骤s3之前,还包括:
检测与客户端绑定的服务端是否处于故障状态;
若是,断开客户端与该服务端之间的session绑定,并依据预设筛选规则,从分布式系统内选择一个支持业务请求的服务端作为目标服务端;
若不是,则将业务请求发送至与其绑定的服务端内进行处理。
可以理解的是,客户端与服务端的绑定通常情况是不会发生变动的,但是当服务端出现故障时,如果将客户端的业务发送至该服务端进行处理,会影响客户端的正常业务处理;因此,这种情况下,需要断开客户端与故障服务端的绑定,重新与其他正常的服务端建立绑定,保证客户端业务请求的正常处理,提高分布式系统的可靠性。
具体的,步骤s5中,将客户端与目标服务端进行会话session绑定的过程包括:
从业务请求内获得客户端的IP地址;
获取目标服务端的IP地址;
将客户端的IP地址与目标服务端的IP地址进行session绑定。
可以理解的是,由于IP地址属于一个客户端或者服务端的身份标识,与客户端或者服务端唯一对应,因此,采用IP地址进行绑定,不仅能够方便后续处理时对两者身份的快速识别,且能够保证两者绑定的唯一性。
本发明还提供了一种分布式系统业务分配装置,参见图3所示,图3为本发明提供的一种分布式系统业务分配装置的结构示意图。该装置包括:
接收模块1,用于接收客户端发送的业务请求、;
绑定检测模块2,用于检测分布式系统内是否存在与客户端绑定的服务端,若存在,将业务请求发送至与其绑定的服务端内进行处理;若不存在,触发目标筛选模块3;
目标筛选模块3,用于依据预设筛选规则,从分布式系统内选择一个支持业务请求的服务端作为目标服务端;
绑定模,4,用于将客户端与目标服务端进行会话session绑定,将客户端的业务请求发送至目标服务端进行处理。
本发明还提供了一种分布式系统业务分配设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如以上任一项的分布式系统业务分配方法的步骤。
本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如以上任一项的分布式系统业务分配方法的步骤。
以上的几种具体实施方式仅是本发明的优选实施方式,以上几种具体实施例可以任意组合,组合后得到的实施例也在本发明的保护范围之内。应当指出,对于本技术领域的普通技术人员来说,相关专业技术人员在不脱离本发明精神和构思前提下推演出的其他改进和变化,均应包含在本发明的保护范围之内。
还需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
Claims (10)
1.一种分布式系统业务分配方法,其特征在于,包括:
接收客户端发送的业务请求;
检测所述分布式系统内是否存在与所述客户端绑定的服务端,若存在,将所述业务请求发送至与其绑定的服务端内进行处理;若不存在,依据预设筛选规则,从所述分布式系统内选择一个支持所述业务请求的服务端作为目标服务端;
将所述客户端与所述目标服务端进行会话session绑定,将所述客户端的业务请求发送至所述目标服务端进行处理。
2.根据权利要求1所述的分布式系统业务分配方法,其特征在于,所述依据预设筛选规则,从所述分布式系统内选择一个支持所述业务请求的服务端作为目标服务端的过程具体包括:
依据预设的哈希算法计算所述客户端对应的哈希值;
确定所述分布式系统内支持所述业务请求的服务端个数n,并为所确定的n个服务端分别添加序号为0~n-1;
将所述哈希值与所述服务端个数n进行取余操作,得到目标服务端的序号;
依据所述目标服务端的序号确定所述目标服务端。
3.根据权利要求2所述的分布式系统业务分配方法,其特征在于,所述依据预设的哈希算法计算所述客户端对应的哈希值的过程具体为:
依据所述业务请求获得所述客户端的IP地址;
依据所述客户端的IP地址,获取指向所述客户端的IP地址的指针地址;
通过所述预设的哈希算法计算所述指针地址对应的哈希值。
4.根据权利要求3所述的分布式系统业务分配方法,其特征在于,所述获取指向所述客户端的IP地址的指针地址之后,通过所述预设的哈希算法计算所述指针地址对应的哈希值之前,还包括:
将所述指针地址保存至客户端请求业务表内;所述客户端请求业务表内依据各个所述客户端的指针地址的保存时间进行排序;
相应的,得到的各个所述客户端对应的哈希值以及服务端个数之后,还包括:
将各个所述客户端对应的哈希值以及服务端个数,对应的保存至所述客户端请求业务表内相应的指针地址之后;
依据接收时间从前到后的顺序,依次遍历所述客户端请求业务表内各个指针地址,并将当前遍历的指针地址对应的哈希值与服务端个数进行取余操作,得到当前遍历的指针地址对应的目标服务端的序号。
5.根据权利要求4所述的分布式系统业务分配方法,其特征在于,所述通过所述预设的哈希算法计算所述指针地址对应的哈希值的过程具体为:
依据接收时间从前到后的顺序,依次遍历所述客户端请求业务表内各个指针地址,并令当前遍历的指针地址与上一个遍历的指针地址的哈希值求和,即得到当前遍历的指针地址对应的哈希值;其中,遍历的第一个指针地址与预设初始值求和,求和结果作为所述第一个指针地址的哈希值。
6.根据权利要求1-5任一项所述的分布式系统业务分配方法,其特征在于,若检测所述分布式系统内存在与所述客户端绑定的服务端,则将所述业务请求发送至与其绑定的服务端内进行处理之前,还包括:
检测与所述客户端绑定的服务端是否处于故障状态;
若是,断开所述客户端与该服务端之间的session绑定,并依据预设筛选规则,从所述分布式系统内选择一个支持所述业务请求的服务端作为目标服务端;
若不是,则将所述业务请求发送至与其绑定的服务端内进行处理。
7.根据权利要求1所述的分布式系统业务分配方法,其特征在于,所述将所述客户端与所述目标服务端进行会话session绑定的过程包括:
从所述业务请求内获得所述客户端的IP地址;
获取所述目标服务端的IP地址;
将所述客户端的IP地址与所述目标服务端的IP地址进行session绑定。
8.一种分布式系统业务分配装置,其特征在于,包括:
接收模块,用于接收客户端发送的业务请求、;
绑定检测模块,用于检测所述分布式系统内是否存在与所述客户端绑定的服务端,若存在,将所述业务请求发送至与其绑定的服务端内进行处理;若不存在,触发目标筛选模块;
所述目标筛选模块,用于依据预设筛选规则,从所述分布式系统内选择一个支持所述业务请求的服务端作为目标服务端;
绑定模块,用于将所述客户端与所述目标服务端进行会话session绑定,将所述客户端的业务请求发送至所述目标服务端进行处理。
9.一种分布式系统业务分配设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的分布式系统业务分配方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的分布式系统业务分配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811075225.8A CN109286663A (zh) | 2018-09-14 | 2018-09-14 | 一种分布式系统业务分配方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811075225.8A CN109286663A (zh) | 2018-09-14 | 2018-09-14 | 一种分布式系统业务分配方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109286663A true CN109286663A (zh) | 2019-01-29 |
Family
ID=65181321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811075225.8A Pending CN109286663A (zh) | 2018-09-14 | 2018-09-14 | 一种分布式系统业务分配方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109286663A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365517A (zh) * | 2019-05-31 | 2019-10-22 | 浙江口碑网络技术有限公司 | 数据处理方法、装置、存储介质及计算机设备 |
CN110933181A (zh) * | 2019-12-11 | 2020-03-27 | 中国银联股份有限公司 | 一种路由方法、装置、系统以及电子设备 |
CN111274320A (zh) * | 2020-01-17 | 2020-06-12 | 深圳市大富网络技术有限公司 | 分布式存储系统的控制方法、装置及分布式存储系统 |
CN111614726A (zh) * | 2020-04-24 | 2020-09-01 | 深圳震有科技股份有限公司 | 一种数据转发方法、集群系统及存储介质 |
CN111736761A (zh) * | 2020-05-12 | 2020-10-02 | 深圳震有科技股份有限公司 | 数据分发方法、装置、存储系统及计算机可读存储介质 |
CN111970321A (zh) * | 2020-07-01 | 2020-11-20 | 北京明略软件系统有限公司 | 一种集群中连接管理方法、系统、存储介质和电子装置 |
CN112671897A (zh) * | 2020-12-22 | 2021-04-16 | 北京达佳互联信息技术有限公司 | 分布式系统的访问方法、装置、存储介质、设备和产品 |
CN112689011A (zh) * | 2020-12-24 | 2021-04-20 | 北京浪潮数据技术有限公司 | 一种基于nfs协议的业务传输方法、装置、设备及介质 |
CN113395368A (zh) * | 2020-03-13 | 2021-09-14 | 阿里巴巴集团控股有限公司 | 访问配置方法、访问方法及装置 |
CN113504881A (zh) * | 2021-09-13 | 2021-10-15 | 飞狐信息技术(天津)有限公司 | 热点数据的处理方法、客户端、目标计算设备及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101588390A (zh) * | 2009-06-24 | 2009-11-25 | 杭州华三通信技术有限公司 | 提高集中认证服务系统业务黏性的方法及负载均衡设备 |
CN103841090A (zh) * | 2012-11-26 | 2014-06-04 | 中兴通讯股份有限公司 | 实现会话发起协议多业务服务器分发的方法、装置及系统 |
EP3357218A1 (de) * | 2015-11-30 | 2018-08-08 | Siemens Aktiengesellschaft | Verfahren zur industriellen kommunikation über tsn |
-
2018
- 2018-09-14 CN CN201811075225.8A patent/CN109286663A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101588390A (zh) * | 2009-06-24 | 2009-11-25 | 杭州华三通信技术有限公司 | 提高集中认证服务系统业务黏性的方法及负载均衡设备 |
CN103841090A (zh) * | 2012-11-26 | 2014-06-04 | 中兴通讯股份有限公司 | 实现会话发起协议多业务服务器分发的方法、装置及系统 |
EP3357218A1 (de) * | 2015-11-30 | 2018-08-08 | Siemens Aktiengesellschaft | Verfahren zur industriellen kommunikation über tsn |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365517A (zh) * | 2019-05-31 | 2019-10-22 | 浙江口碑网络技术有限公司 | 数据处理方法、装置、存储介质及计算机设备 |
CN110365517B (zh) * | 2019-05-31 | 2022-06-24 | 浙江口碑网络技术有限公司 | 数据处理方法、装置、存储介质及计算机设备 |
CN110933181A (zh) * | 2019-12-11 | 2020-03-27 | 中国银联股份有限公司 | 一种路由方法、装置、系统以及电子设备 |
CN110933181B (zh) * | 2019-12-11 | 2024-03-15 | 中国银联股份有限公司 | 一种路由方法、装置、系统以及电子设备 |
CN111274320B (zh) * | 2020-01-17 | 2023-09-12 | 深圳市大富网络技术有限公司 | 分布式存储系统的控制方法、装置及分布式存储系统 |
CN111274320A (zh) * | 2020-01-17 | 2020-06-12 | 深圳市大富网络技术有限公司 | 分布式存储系统的控制方法、装置及分布式存储系统 |
CN113395368B (zh) * | 2020-03-13 | 2024-05-03 | 阿里巴巴集团控股有限公司 | 访问配置方法、访问方法及装置 |
CN113395368A (zh) * | 2020-03-13 | 2021-09-14 | 阿里巴巴集团控股有限公司 | 访问配置方法、访问方法及装置 |
CN111614726A (zh) * | 2020-04-24 | 2020-09-01 | 深圳震有科技股份有限公司 | 一种数据转发方法、集群系统及存储介质 |
CN111736761A (zh) * | 2020-05-12 | 2020-10-02 | 深圳震有科技股份有限公司 | 数据分发方法、装置、存储系统及计算机可读存储介质 |
CN111970321A (zh) * | 2020-07-01 | 2020-11-20 | 北京明略软件系统有限公司 | 一种集群中连接管理方法、系统、存储介质和电子装置 |
CN112671897A (zh) * | 2020-12-22 | 2021-04-16 | 北京达佳互联信息技术有限公司 | 分布式系统的访问方法、装置、存储介质、设备和产品 |
CN112671897B (zh) * | 2020-12-22 | 2023-03-21 | 北京达佳互联信息技术有限公司 | 分布式系统的访问方法、装置、存储介质、设备和产品 |
CN112689011A (zh) * | 2020-12-24 | 2021-04-20 | 北京浪潮数据技术有限公司 | 一种基于nfs协议的业务传输方法、装置、设备及介质 |
CN113504881A (zh) * | 2021-09-13 | 2021-10-15 | 飞狐信息技术(天津)有限公司 | 热点数据的处理方法、客户端、目标计算设备及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109286663A (zh) | 一种分布式系统业务分配方法、装置及设备 | |
CN109034809B (zh) | 区块链的生成方法、装置、区块链节点及存储介质 | |
US9607019B1 (en) | Splitting database partitions | |
CN104537076B (zh) | 一种文件读写方法及装置 | |
CN107798038B (zh) | 数据响应方法及数据响应设备 | |
CN104092555B (zh) | 一种更新参数值的方法、装置和系统 | |
US9934202B1 (en) | Managing paginated data | |
CN105701096A (zh) | 索引生成方法、数据查询方法、装置及系统 | |
EP2100239A1 (en) | Arrangement for comparing content identifiers of files | |
CN105814864B (zh) | 一种输入输出io请求处理方法及文件服务器 | |
CN110209891A (zh) | 一种拉链表生成方法、装置、设备及介质 | |
CN108347459A (zh) | 一种云端数据快速存储方法及装置 | |
JP2019121334A (ja) | データストレージとダイナミックマイグレーション方法及びデータストレージとダイナミックマイグレーション装置 | |
CN110232291A (zh) | 智能数据脱敏方法、装置、计算机设备和存储介质 | |
CN104239376B (zh) | 数据存储方法和装置 | |
CN106294627A (zh) | 数据管理方法及数据服务器 | |
CN111614760A (zh) | 一种将物联网设备均衡分配接入的方法及装置 | |
CN107395708A (zh) | 一种处理下载请求的方法和装置 | |
CN106598375A (zh) | 智能终端应用内容呈现的方法、装置及智能终端 | |
CN103560974B (zh) | 一种令牌维护的方法和装置 | |
CN107733709A (zh) | 数据存储方法、装置及电子设备 | |
CN108241639A (zh) | 一种数据去重方法 | |
CN105847364A (zh) | 基于统一域名的公有云对象存储方法及系统 | |
CN104852986A (zh) | 一种新增功能的提供方法和设备 | |
CN114416871A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190129 |
|
RJ01 | Rejection of invention patent application after publication |