一种一致性负载均衡方法及装置制造方法及图纸

技术编号:21146219 阅读:27 留言:0更新日期:2019-05-18 06:43
本发明专利技术公开了一种一致性负载均衡方法及装置,该方法包括:计算N个节点的哈希值,并依据所述哈希值将N个所述节点配置到对应的服务节点环,N为正整数;接收客户端的请求数据,并依据所述请求数据提取键值;将所述键值对N取模以得到第一模值;依据所述第一模值获取所述服务节点环中符合预设条件的节点,并将所述节点的属性信息返回至所述客户端。本发明专利技术的有益效果是,从客户信息处直接取模,避免了每次请求都需要计算哈希值,解决哈希一致性负载均衡中多次使用哈希算法对CPU造成高消耗的问题。

A Consistent Load Balancing Method and Device

【技术实现步骤摘要】
一种一致性负载均衡方法及装置
本专利技术涉及一致性负载均衡
,尤其涉及一种一致性负载均衡方法及装置。
技术介绍
目前IT服务架构大都采用微服务化之后,系统分布式部署。通过微服务化实现服务的专业化和精细分工,分布式部署提升服务的可靠性和可用性。分布式部署后采用负载均衡解决并发流量和流量重定向的问题。负载均衡是分布式架构的重点,负载均衡机制将决定着整个服务集群的性能与稳定。其中,微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。分布式是指一个系统拆成n个子工程,每一个子工程配置服务器,独立运作。但是需要相互协作才能运转整个系统流程。每一个节点都可以配置集群。涉及负载均衡的现有技术主要包括TCP网络通信、多线程数据异步处理、LinuxepollI/O多路复用技术等技术。当前大部分负载均衡采用组件实现,主要与集群中的各个服务器进行通讯。负载均衡组件主要提供以下基础功能:维护服务器的IP、DNS名称等信息;根据特定的负载均衡策略在服务器列表中循环。负载均衡的效果取决于负载均衡策略的设计和实现,负载均衡策略是一个逻辑组件,这些逻辑将会决定,从服务器列表中返回哪个服务器实例。请求数据分发按如下的方式在系统中进行:1)客户端需要向服务端发起TCP的数据请求,调用负载均衡组件的API获取服务端信息;2)负载均衡组件根据请求类型选定均衡策略;3)均衡策略根据规则从服务列表中选定在线的终端服务的服务信息并返回;4)服务端检测服务的信息,如果有TCP连接,直接发送请求数据;否则使用服务信息和终端服务建立TCP连接后发送请求数据。采用负载均衡后,对于包含会话的业务,需要会话保持。即是指在负载均衡器上有一种机制,在作负载均衡的同时,还保证同一用户相关连的访问请求会被分配到同一台服务器上。现有的一致性负载均衡策略主要是一致性哈希的负载均衡策略;它是根据哈希一致性的原理,相同用户参数的请求总是发到同一提供者。当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。其中,一致性哈希算法在1997年由麻省理工学院提出,设计目标是为了解决因特网中的热点(Hotspot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。假设有8个节点,组成A-H的8个虚拟节点,A-H哈希值分别是递增的,当有一个请求进来,通过计算参数的哈希值,比如该值刚好是1的位置,那么选中比1的值大的最小的那个实例,则结果该请求选中C虚拟节点;假如请求的参数的哈希值是在2的位置,那么找不到比2的值大的最小的实例,则选中所有实例中最小的一个,也就是A。但是,由于一致性哈希是要对用户参数做一致性哈希算法计算哈希值,每次调用一次,会比较占CPU资源。
技术实现思路
本专利技术的目的在于提供一种一致性负载均衡方法及装置,解决现有技术中一致性哈希是要对用户参数做一致性哈希算法计算哈希值,每次调用一次,会比较占CPU资源的问题。本专利技术的技术方案实现如下:一方面,本专利技术提供一种一致性负载均衡方法,包括:计算N个节点的哈希值,并依据所述哈希值将N个所述节点配置到对应的服务节点环,N为正整数;接收客户端的请求数据,并依据所述请求数据提取键值;将所述键值对N取模以得到第一模值;依据所述第一模值获取所述服务节点环中符合预设条件的节点,并将所述节点的属性信息返回至所述客户端。在本专利技术所述的一致性负载均衡方法中,所述计算N个节点的哈希值,并依据所述哈希值将N个所述节点配置到对应的服务节点环,N为正整数中:N=2x,0≤x<32。在本专利技术所述的一致性负载均衡方法中,所述接收客户端的请求数据,并依据所述请求数据提取键值,包括:接收客户端的第一请求数据以向节点填入服务信息,并依据所述第一请求数据提取键值;接收客户端的第二请求数据以查找节点的可用服务,并依据所述第二请求数据提取用户参数。在本专利技术所述的一致性负载均衡方法中,所述将所述键值对N取模以得到第一模值,包括:将所述键值对N取模以得到第一模值;依据所述用户参数提取内存中的多位字符,将所述多位字符转换为十进制数值,将所述十进制数值对N取模以得到第二模值。在本专利技术所述的一致性负载均衡方法中,所述依据所述第一模值获取所述服务节点环中符合预设条件的节点,并将所述节点的属性信息返回至所述客户端,包括:依据所述第一模值获取所述服务节点环中的第R个节点,判断所述第R个节点是否为空,若是,则将所述第R个节点的属性信息返回至所述客户端,并于所述第R个节点中填入服务信息;若否,则从所述第R个节点往后查找节点,当查找到空的节点时,将所述空的节点的属性信息返回至所述客户端,并于所述空的节点中填入服务信息;其中,R为第一模值;依据所述第二模值获取所述服务节点环中的第T个节点,判断所述第T个节点是否有可用服务,若是,则将所述第T个节点的属性信息返回至所述客户端,并从所述第T个节点中获取所述可用服务;若否,则从所述第T个节点往后查找节点,当查找到具有可用服务的节点时,将所述具有可用服务的节点的属性信息返回至所述客户端,并于所述具有可用服务的节点中获取所述可用服务;其中,T为第二模值。另一方面,提供一种一致性负载均衡装置,其中存储有多条指令,所述指令适于由处理器加载并执行,包括:计算N个节点的哈希值,并依据所述哈希值将N个所述节点配置到对应的服务节点环,N为正整数;接收客户端的请求数据,并依据所述请求数据提取键值;将所述键值对N取模以得到第一模值;依据所述第一模值获取所述服务节点环中符合预设条件的节点,并将所述节点的属性信息返回至所述客户端。在本专利技术所述的一致性负载均衡装置中,所述计算N个节点的哈希值,并依据所述哈希值将N个所述节点配置到对应的服务节点环,N为正整数中:N=2x,0≤x<32。在本专利技术所述的一致性负载均衡装置中,所述接收客户端的请求数据,并依据所述请求数据提取键值,包括:接收客户端的第一请求数据以向节点填入服务信息,并依据所述第一请求数据提取键值;接收客户端的第二请求数据以查找节点的可用服务,并依据所述第二请求数据提取用户参数。在本专利技术所述的一致性负载均衡装置中,所述将所述键值对N取模以得到第一模值,包括:将所述键值对N取模以得到第一模值;依据所述用户参数提取内存中的多位字符,将所述多位字符转换为十进制数值,将所述十进制数值对N取模以得到第二模值。在本专利技术所述的一致性负载均衡装置中,所述依据所述第一模值获取所述服务节点环中符合预设条件的节点,并将所述节点的属性信息返回至所述客户端,包括:依据所述第一模值获取所述服务节点环中的第R个节点,判断所述第R个节点是否为空,若是,则将所述第R个节点的属性信息返回至所述客户端,并于所述第R个节点中填入服务信息;若否,则从所述第R个节点往后查找节点,当查找到空的节点时,将所述空的节点的属性信息返回至所述客户端,并于所述空的节点中填入服务信息;其中,R为第一模值;依据所述第二模值获取所述服务节点环中的第T个节点,判断所述第T个节点是否有可用服务,若是,则将所述第T个节点的属本文档来自技高网
...

【技术保护点】
1.一种一致性负载均衡方法,其特征在于,包括:计算N个节点的哈希值,并依据所述哈希值将N个所述节点配置到对应的服务节点环,N为正整数;接收客户端的请求数据,并依据所述请求数据提取键值;将所述键值对N取模以得到第一模值;依据所述第一模值获取所述服务节点环中符合预设条件的节点,并将所述节点的属性信息返回至所述客户端。

【技术特征摘要】
1.一种一致性负载均衡方法,其特征在于,包括:计算N个节点的哈希值,并依据所述哈希值将N个所述节点配置到对应的服务节点环,N为正整数;接收客户端的请求数据,并依据所述请求数据提取键值;将所述键值对N取模以得到第一模值;依据所述第一模值获取所述服务节点环中符合预设条件的节点,并将所述节点的属性信息返回至所述客户端。2.根据权利要求1所述的一致性负载均衡方法,其特征在于,所述计算N个节点的哈希值,并依据所述哈希值将N个所述节点配置到对应的服务节点环,N为正整数中:N=2x,0≤x<32。3.根据权利要求1所述的一致性负载均衡方法,其特征在于,所述接收客户端的请求数据,并依据所述请求数据提取键值,包括:接收客户端的第一请求数据以向节点填入服务信息,并依据所述第一请求数据提取键值;接收客户端的第二请求数据以查找节点的可用服务,并依据所述第二请求数据提取用户参数。4.根据权利要求3所述的一致性负载均衡方法,其特征在于,所述将所述键值对N取模以得到第一模值,包括:将所述键值对N取模以得到第一模值;依据所述用户参数提取内存中的多位字符,将所述多位字符转换为十进制数值,将所述十进制数值对N取模以得到第二模值。5.根据权利要求4所述的一致性负载均衡方法,其特征在于,所述依据所述第一模值获取所述服务节点环中符合预设条件的节点,并将所述节点的属性信息返回至所述客户端,包括:依据所述第一模值获取所述服务节点环中的第R个节点,判断所述第R个节点是否为空,若是,则将所述第R个节点的属性信息返回至所述客户端,并于所述第R个节点中填入服务信息;若否,则从所述第R个节点往后查找节点,当查找到空的节点时,将所述空的节点的属性信息返回至所述客户端,并于所述空的节点中填入服务信息;其中,R为第一模值;依据所述第二模值获取所述服务节点环中的第T个节点,判断所述第T个节点是否有可用服务,若是,则将所述第T个节点的属性信息返回至所述客户端,并从所述第T个节点中获取所述可用服务;若否,则从所述第T个节点往后查找节点,当查找到具有可用服务的节点时,将所述具有可用服务的节点的属性信息返回至所述客户端,并于所述具有可用服务的节点中获取所述可用服务;其中,T为第二模值。6.一种一致性负载均衡装置...

【专利技术属性】
技术研发人员:吴勇
申请(专利权)人:深圳联友科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1