Affinity dynamic load balancing method based on consistent hash algorithm. It includes the construction of hash space ring, computing virtual node number according to the actual weight of each server node in the cluster system, the virtual node corresponding to the mapping of virtual nodes and the actual server nodes, the virtual nodes mapped to the hash ring ring; when a new user requests to the cluster system, analysis the user request, and extract information from the identification, mapping the user request to the hash ring ring, and then mapped to the nearest actual server node for processing; when the cluster scale dynamic adjustment, will map the user request according to the cluster system dynamic adjustment strategy adjustment steps. The present invention through hash mapping, the continuous user service to send the same user requests to the same actual server nodes, most users can ensure service compatibility, guarantee the stability and scalability of cluster system.
【技术实现步骤摘要】
一种基于一致性哈希算法的亲和性动态负载均衡方法
本专利技术属于集群系统中服务请求亲和性负载分配
,特别是涉及一种基于一致性哈希算法的亲和性动态负载均衡方法。
技术介绍
目前我国民航业发展迅速,据统计,2016年,民航业完成旅客运输量48796万人次,比上年增长11.9%。逐年增长的航空旅客运输量产生大量的订票需求,给民航旅客服务系统带来了极大挑战。新一代旅客服务系统(即PSS,PassengerServiceSystem)等大规模分布式集群系统能够共同分担海量用户请求,其上部署的负载均衡算法可以提供一种廉价并且有效透明的方法来扩展网络设备和服务器的带宽、增加吞吐量、提高数据处理能力等,因此,负载均衡成为大规模分布式集群系统的重点研究内容。民航业一直在积极建设新一代PSS,由于系统结构和业务需求原因,部分服务的上下文环境被存储在处理该服务请求的服务器上,不能被其他服务器共享,而在处理同一个用户后续请求过程中需要用到这些环境,所以需要分配相同服务器处理。同一个用户的请求会出现互相关联现象,即处理后续请求时,需要用到前面请求的处理结果,所以这部分请求需按时间顺序进行处理。因此,来自同一个用户的请求,应分配到相同的服务器去处理。这称之为服务的亲和性。即服务的亲和性是指:同一用户的连续请求必须由同一服务器进行处理。若服务的亲和性无法满足,会导致用户请求分配不合理性等问题。因此设计同时保证服务的亲和性和负载均衡的算法是必要的。在负载均衡算法的研究方面,目前已经有很多研究成果,从民航业务的亲和性的角度,按照用户请求分配方式,对这些算法进行了如下总结和分析。一类是以 ...
【技术保护点】
一种基于一致性哈希算法的亲和性动态负载均衡方法,其特征在于:所述的基于一致性哈希算法的亲和性动态负载均衡方法包括按按顺序进行的下列步骤:步骤一、构建由多个实际服务器节点构成的哈希空间环,并根据集群系统中各实际服务器节点的权重计算虚拟节点数量,生成相应的虚拟节点,然后建立虚拟节点和该实际服务器节点之间的映射关系,由此将虚拟节点映射到哈希环空间环上;步骤二、每当有一新的用户请求发送到集群系统中时,解析该用户请求,并从中提取出有用的标识信息,然后将用户请求映射到上述哈希环空间环上,再映射到距离其最近的实际服务器节点上进行处理;步骤三、当集群系统规模发生动态调整时,针对扩展和缩减两类实际情况,将用户请求的映射根据集群系统动态调整策略进行调整。
【技术特征摘要】
1.一种基于一致性哈希算法的亲和性动态负载均衡方法,其特征在于:所述的基于一致性哈希算法的亲和性动态负载均衡方法包括按按顺序进行的下列步骤:步骤一、构建由多个实际服务器节点构成的哈希空间环,并根据集群系统中各实际服务器节点的权重计算虚拟节点数量,生成相应的虚拟节点,然后建立虚拟节点和该实际服务器节点之间的映射关系,由此将虚拟节点映射到哈希环空间环上;步骤二、每当有一新的用户请求发送到集群系统中时,解析该用户请求,并从中提取出有用的标识信息,然后将用户请求映射到上述哈希环空间环上,再映射到距离其最近的实际服务器节点上进行处理;步骤三、当集群系统规模发生动态调整时,针对扩展和缩减两类实际情况,将用户请求的映射根据集群系统动态调整策略进行调整。2.根据权利要求1所述的基于一致性哈希算法的亲和性动态负载均衡方法,其特征在于:在步骤一中,所述的构建由多个实际服务器节点构成的哈希空间环,并根据集群系统中各实际服务器节点的权重计算虚拟节点数量,生成相应的虚拟节点,然后建立虚拟节点和该实际服务器节点之间的映射关系,由此将虚拟节点映射到哈希环空间环上的具体步骤如下:根据键值的比特数N构建一个由多个实际服务器节点构成的0~232-1的哈希空间环,比特数N=32;定义虚拟节点数量并将虚拟节点数量记为VNN,计算公式如下:其中,N为当前集群系统中实际服务器节点总数,k为常数,W为整个集群系统的权重之和,wi为第i个实际服务器节点的权重;根据上面公式计算出虚拟节点数量VNN后生成相应的虚拟节点,然后对每个虚拟节点进行编号,编号Virtual_Nodeit表示第i个实际服务器节点对应的第t个虚拟节点,其中1≤i≤N,1≤t≤VNN;由此建立起虚拟节点和实际服务器节点之间的映射关系,即一个实际服务器节点对应VNN个虚拟节点;之后计算实际服务器节点的哈希值,在JCF中间件平台的服务库中,每个实际服务器节点注册一个元数据表,根据表中实际服务器节点配置的服务器名称,通过MurmurHash3算法计算得到每个实际服务器节点的哈希值Node_hashi,其中1≤i≤N;之后计算虚拟节点的哈希值,对于某个虚拟节点,将实际服务器节点的哈希值Node_hashi加上虚拟节点的编号Virtual_Nodeit的值...
【专利技术属性】
技术研发人员:曹卫东,孙晓君,丁建立,王静,王家亮,
申请(专利权)人:中国民航大学,
类型:发明
国别省市:天津,12
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。