一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种拜占庭环境下的P2P系统负载感知方法

2022-12-13 23:34:28 来源:中国专利 TAG:

技术特征:
1.一种拜占庭环境下的p2p系统负载感知方法,其特征在于,所述方法使用一致性哈希进行负载均衡分配和负载估计,包括以下步骤:步骤1、构建p2p集群网络,配置节点身份信息,并启动集群机器;步骤2、服务器节点向管理者节点监听的公共端口发送注册请求信息,管理者节点根据集群节点信息生成一致性哈希分配表,并通过拜占庭容错共识广播至所有节点上;步骤3、客户端发送请求给服务器节点,对服务器节点id进行判断后,由对应的服务器节点进行处理并记录负载情况;步骤4、管理者节点并行启动负载收集和统计任务,向所有服务器节点发起负载手机请求,服务器节点收到负载收集请求后,进行负载信息统计并封装,将封装后的负载信息发送给管理者节点;步骤5、管理者节点收到2f 1个服务器节点的回复后进行负载统计,对每个服务器节点进行负载排序,将排序后的负载中位数诚意系统总服务器节点数,获得系统整体负载估计值;步骤6、管理者节点将系统整体负载估计值和用于估计的2f 1个负载收集请求的回复分发至所有服务器节点,整个集群对估计值达成共识,负载统计结束。2.如权利要求1所述的负载感知方法,其特征在于,步骤1中,所述集群是网络中承担相同职责的服务器节点的集合;所述节点身份信息包括节点角色、节点ip、节点id和公私钥;所述节点角色包括服务器节点、管理者节点,所述节点id用于唯一识别服务器节点,所述公私钥用于加密消息和身份验证。3.如权利要求1所述的负载感知方法,其特征在于,步骤1中,所述集群中包括若干个服务器节点,其中一个服务器节点作为管理者节点;当管理者节点宕机时,集群网络会在剩余的服务器节点中选举出一个管理员节点。4.如权利要求2所述的负载感知方法,其特征在于,所述服务器节点负责处理来自客户端的请求,统计本节点处理的负载,并汇报给管理者节点,所述服务器节点包括哈希查询模块、请求处理模块、负载统计模块;所述管理者节点负责监控和管理整个系统,定期通过心跳来保持与服务器节点的连接,负责一致性哈希负载均衡算法的初始化和更新保证集群中所有节点对请求划分归属的一致性,负责集群节点的扩容和缩容,提供节点发现服务,所述管理者节点包括发现服务模块、负载估计模块、负载均衡模块。5.如权利要求1所述的负载感知方法,其特征在于,步骤2中,所述注册请求信息包括节点角色、节点ip、节点id和公私钥;所述节点角色包括服务器节点、管理者节点,所述节点id用于唯一识别服务器节点,所述公私钥用于加密消息和身份验证;管理者节点收集所有服务器节点注册请求信息后设置一致性哈希,分配虚拟节点,同时绑定到p2p网络集群中的实际节点上,实际节点和虚拟节点的关系为一对一和/或一对多映射,即一个实际节点能够映射到一个和/或多个虚拟节点上;客户端的请求首先会查找其归属的虚拟节点,然后进一步定位到实际节点上。6.如权利要求1所述的负载感知方法,其特征在于,步骤2中,一致性哈希分配虚拟节点的步骤包括:步骤2-1:从注册请求信息中获取所有服务器节点列表的地址信息和内存、cpu、磁盘资源情况,将内存、cpu、磁盘资源情况作为服务器节点分配虚拟节点数的权重;
步骤2-2:每个服务器节点按权重计算需要多少个虚拟节点,基准配置是每个服务器节点设置160个虚拟节点,每个服务器节点生成10.0.1.1:11211-1、10.0.1.1:11211-2至10.0.1.1:11211-40共40个字符串,并根据md5哈希摘要算法计算出40个16字节的哈希值,每个哈希切分为4个4字节的哈希值,总共160个哈希值,即160个虚拟节点;步骤2-3:将所有哈希值及对应的节点地址存入一致性哈希分配表中,4字节哈希对应的哈希值的范围是[0,2
32-1],后续查找时使用红黑树的二分查找算法,复杂度是o(log(vn)),其中n是实际节点数,v是每个实际节点对应的虚拟节点数;步骤2-4:管理者节点将一致性哈希分配表进行数字签名后发送给所有的服务器节点,服务器节点收到后检查签名确认无误后接受该哈希分配方案,整个集群的初始化阶段结束,开始接受客户端请求并进行服务。7.如权利要求1所述的负载感知方法,其特征在于,步骤3中,客户端将请求随机发送给邻近的服务器节点,客户端如果本地没有服务器节点信息,先会向管理者节点获取集群的服务器节点配置信息,客户端在测试各服务器节点的连接情况后,选择往返延迟最小的服务器节点发送请求;服务器节点接收到请求后,对请求进行md5哈希获得16字节的哈希值,后4字节作为请求的一致性哈希值,记为k,然后在一致性哈希分配表中使用二分查找定位k后首个虚拟节点的哈希值s,然后确定哈希值为s的虚拟节点对应的实际节点id,如果该实际节点为当前服务器节点id,则由当前服务器节点进行处理,否则转发该客户端请求到该请求正确归属的服务器节点,重新进行查询和处理流程;当正确的服务器节点处理该请求时,会调用负载统计模块记录处理当前请求的负载情况。8.如权利要求7所述的负载感知方法,其特征在于,查询一致性哈希分配表获取对应服务器的id的具体步骤为:步骤3-1:集群节点通过向管理者注册并互相发现对方,构建成p2p网络,并配置一致性哈希分配表,每个服务器节点都在本地维持一个一致性哈希表分配表副本,初始化完成后,集群对外提供服务;步骤3-2:某个服务器节点接收到客户端请求,对该请求进行二进制序列化并进行md5哈希摘要获得哈希值k,然后在哈希表中查找第一个大于等于k的值s,并从一致性哈希分配表中获得索引为s的绑定的服务器节点id;步骤3-3:若该id为本服务器节点id,将由本节点处理请求并递增本节点负载,否则转发给对应的服务器节点id,确保请求被唯一的服务器节点处理。9.如权利要求1所述的负载感知方法,其特征在于,步骤4中,管理者节点每隔一个epoch就进行负载统计任务,并通过设置定时器来确定启动负载收集的时间,在每个epoch的开始阶段向所有服务器节点发起负载收集请求;包括管理者节点在内的服务器节点收到负载收集请求后,开始对自上次统计到当前时间的负载信息进行统计,负载信息包括负载、处理请求消耗的cpu执行时间、io吞吐量和各类延迟;服务器节点统计好后将负载信息封装为消息体格式,进行数字签名发送给管理者节点。10.如权利要求1所述的负载感知方法,其特征在于,步骤5中,管理者节点收到包括自己在内的2f 1个服务器节点的回复后开始进行负载统计,集群总节点数为3f 1个,f个为拜占庭节点;首先针对每个服务器节点的负载排序,取排序后的回复中负载的中位数(作为整个系统的平均负载,并乘以系统总服务器节点数,从而得到系统整体负载的估计值。

技术总结
本发明公开了一种拜占庭环境下的P2P系统负载感知方法,使用一致性哈希进行负载均衡分配和负载估计,解决在P2P网络中节点之间互不信任和部分节点存在作恶可能性的拜占庭环境下,如何感知系统负载的问题。本方法利用一致性哈希实现请求的唯一分配,避免多个节点重复报告负载,同时利用一致性哈希实现请求的均衡分配,通过一致性哈希中哈希算法的映射,将服务器节点均衡地锚定于哈希环上某个端点,保证每个节点报告的负载尽量接近,降低拜占庭节点恶意报告或不报告负载对主估计值的影响。恶意报告或不报告负载对主估计值的影响。恶意报告或不报告负载对主估计值的影响。


技术研发人员:范维 佟兴 张召 金澈清 周傲英 杨艳琴
受保护的技术使用者:华东师范大学
技术研发日:2022.09.01
技术公布日:2022/12/12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献