CN103188164A - 基于升级客户节点分流对等节点负载的方法、装置及系统 - Google Patents
基于升级客户节点分流对等节点负载的方法、装置及系统 Download PDFInfo
- Publication number
- CN103188164A CN103188164A CN2011104616220A CN201110461622A CN103188164A CN 103188164 A CN103188164 A CN 103188164A CN 2011104616220 A CN2011104616220 A CN 2011104616220A CN 201110461622 A CN201110461622 A CN 201110461622A CN 103188164 A CN103188164 A CN 103188164A
- Authority
- CN
- China
- Prior art keywords
- client
- peer
- node
- peer node
- upgrading
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于升级Client分流Peer负载的方法、装置及系统。该方法包括:接收来自Peer发送的升级授权消息,确定所述升级授权消息中携带有期望Client升级后使用的Peer-ID范围信息;调用操作系统提供的应用编程接口,新启动一个进程作为Peer进程;向新启动的Peer进程发送通知消息,携带期望Client升级后使用的Peer-ID范围信息;新启动的Peer进程根据接收的期望Client升级后使用的Peer-ID范围信息,接P2P网络,分流发送升级授权消息的Peer的负载。应用本发明,可以缩短分流所需的时间、避免用户服务的中断。
Description
技术领域
本发明涉及互联网优化技术,特别涉及一种基于升级客户节点分流对等节点负载的方法、装置及系统。
背景技术
互联网协议国际标准化组织的互联网工程任务组(IETF,The InternetEngineering Task Force)正在制定点对点(P2P,Peer-to-Peer)资源定位与发现基础协议(RELOAD,Resource Location and Discovery Base Protocol),通过系统中各客户端,即节点(Node)之间的直接交互来实现系统资源和信息的共享,从而提供统一的P2P网络协议,为各类P2P应用实现抽象的存储和路由服务。
考虑到大量用户节点在计算能力、接入环境以及服务理念等方面的异构性,RELOAD将用户节点区分为两类接入节点,一类为对等节点(Peer),即能力较强、环境稳定并能够提供服务的用户节点,该类接入节点能够参与消息的路由转发与分布式数据存储等网络服务,信息资源分散存储在各Peer中,每个Peer兼有服务器和客户端两种身份,可以请求网络服务以及提供网络服务,内容传输直接在Peer间进行;另外一类为客户节点(Client),即由于主观或客观原因不适合参与网络服务提供的用户节点,该类Client只需要维护与某个或若干个Peer的连接关系,就可通过维护的Peer向P2P网络发起请求并接收响应消息来享受网络服务,而自身不能提供网络服务。也就是说,每一客户端可以具有Client功能和Peer功能中的一种功能或全部功能,下面分别对客户端中的Client与Peer加入P2P网络的流程作简要介绍。
当Client申请加入P2P网络时,Client首先与注册服务器(ES,EnrollmentServer)通讯,完成认证和授权处理、获得客户节点标识(Node-ID)以及候选的安全引导节点(BP,Bootstrap Peer)地址,然后向候选的BP发送附着(Attach)连接请求,候选的BP接收Attach连接请求,发送应答消息许可Client加入P2P网络。同时,Client可进一步通过连接上的BP转发Attach连接请求,获取负责自身Node-ID所属的许可节点(AP,Admitting Peer),并建立直接连接,即在P2P网络ID空间中,查找与自身Node-ID最接近的Peer-ID对应的Peer,并建立与该Peer的直接连接。
Peer采用与Client不同的方式加入P2P网络,按照给定的算法规则,如分布式哈希表(DHT,Distributed Hash Table)算法,将完整的ID空间划分成若干独立的ID子空间,每个Peer负责存储一个对应一段资源标识(Resource-ID)范围的ID子空间,Peer根据直接获知的邻居对等节点标识(Peer-ID)维护ID空间,以及通过邻居对等节点间接获知的其它对等节点标识维护ID空间,建立并维护自己的路由表,以此为基础,选择比自身的节点标识更接近目标节点/资源标识的节点作为消息转发的下一站Peer。这样,依据DHT算法互联形成邻居关系,通过算法组织路由寻址以降低Peer的路由开销,获取在Peer-ID空间的位置,根据使用分布式数据库算法保存在对应Peer上的资源,存储资源标识(Resource-ID)映射在自身Peer-ID空间的资源以提供服务,该Peer具有与该资源标识最接近的节点标识,资源标识与节点标识位于同一数值空间,并利用其他Peer负责的Peer-ID空间信息构建本地路由表,将构建的本地路由表通知其他Peer,使得其他Peer更新自身的本地路由表,并将需要由加入Peer维护的数据资源转移给该加入的Peer。
具体来说,当Peer申请加入P2P网络时,首先作为Client完成与ES、BP和AP的交互,获取在P2P网络中作为Client的Node-ID,该客户节点标识与该Peer在底层承载网络中的IP地址无关,与接入网络的位置也无关,随后,向AP发送加入(Join)升级请求消息,请求从Client升级为Peer,从而参与P2P网络服务的提供,AP收到加入升级请求消息后返回加入升级请求应答消息,许可该Client升级为Peer,返回自己的AP路由表给请求升级的Client,并根据请求升级的Client的Node-ID到自身的Peer-ID子空间范围划分,通过一系列数据存储操作,将Resource-ID落入该子空间的数据转移存储到请求升级的Client(升级节点)上。接下来,升级节点向接收的AP路由表中相关Peer发送更新(Update)消息,请求学习相关Peer的本地路由表信息,根据相关Peer负责的Peer-ID空间信息(本地路由表信息)构建本地路由表,在成功构建本地路由表之后,升级节点向相关Peer再次发送Update消息,确认已成功升级为网络中的Peer,并通知对方更新自身路由表。
当P2P网络中局部Peer发生过载时,一般不会直接导致整个P2P网络的瘫痪,但会影响用户的体验,并在某些极端情况下,可能引发连锁反应导致网络崩溃。因此,为了克服Peer过载的情况,现有技术一般采用新加入Peer,以分流的方式分流P2P网络局部区域的负载。
RELOAD协议中定义的Client虽然并不参与消息路由,但却拥有网络中唯一的Node-ID,因此,当P2P网络中局部的Peer发生过载时,可以考虑将Node-ID在过载Peer附近的Client升级成为Peer,以达到负载分流的目的。
图1为现有基于升级Client分流Peer负载的方法流程示意图。参见图1,该流程包括:
步骤101,Peer确定处于过载状态,向直连的Client发送能力信息查询请求消息;
本步骤中,过载Peer(Overload Peer)检测自身的负载状态,如果在预定时间内持续检测到高负载状态,为了防止过载情况的发生,触发采取将Client加入网络升级为Peer的方式分流负载,向直连的Client发送能力信息查询请求消息,请求查询各直连的Client的能力。
能力信息查询请求消息可以使用RELOAD中定义的探针(Probe)消息。
步骤102,直连的Client接收能力信息查询请求消息,向Peer返回携带能力信息的能力信息查询请求响应消息;
本步骤中,与Peer直连的Client接收能力信息查询请求消息,根据实际情况,向Peer返回自己的能力信息,包括CPU空闲率、闲置内存数量、网络抖动等信息。
步骤103,Peer根据接收的各Client能力信息,选择用于分流的Client,向选择的Client发送升级授权消息;
本步骤中,Peer根据接收的能力信息查询请求响应消息,获取各Client能力信息,进行综合能力评分,从中选择综合能力评分较高的一个或多个Client。
综合能力评分可以基于线性累加方式进行计算,例如,综合能力评分计算公式可以如下:
S=ξ1xC1+ξ2xC2-ξ3xC3
式中,
S为综合能力评分;
S=ξ1xC1+ξ2xC2-ξ3xC3
S=ξ1xC1+ξ2xC2-ξ3xC3
S=ξ1xC1+ξ2xC2-ξ3xC3
C1为CPU空闲率,ξ1为CPU空闲率系数;
C2为闲置内存数量,ξ2为闲置内存数量;
C3为网络抖动,ξ3为网络抖动系数。
较佳地,ξ1+ξ2+ξ3=1。
高负载的Peer根据计算得到的综合能力评分,选择综合能力评分较高的一个或多个Client,选择Client的数量可以根据升级后Client的Peer-ID或Node-ID到高负载的Peer的Peer-ID之间的距离确定,距离的大小决定了分流后高负载节点将承担的负载量。
判断选择的Client的Node-ID是否在自身负责的ID范围内,即判断选择的与自身直连的Client中,是否存在自身Peer-ID负责的Node-ID信息,如果有,根据需要分流的负载、自身Peer-ID以及Client的Node-ID确定执行分流的Client数量,并向选择的Client发送升级授权消息;如果没有,即选择的Client的Node-ID不在自身Peer-ID负责的ID范围内,根据需要分流的负载量以及自身Peer-ID,确定选择的Client的Peer-ID范围,向选择的Client发送升级授权消息,携带高负载的Peer所期望的Client升级后使用的Peer-ID范围信息。
判断选择的Client的Node-ID是否在自身Peer-ID负责的ID范围内,可以通过判断Client的Node-ID是否位于Peer的Peer-ID至自己前驱Peer的Node-ID的区间之内,如果该Client的Node-ID位于区间内,则确定该Client是自己所负责的Client。
步骤104,Client接收升级授权消息,进行处理后向Peer返回确认(ACK)信息;
本步骤中,收到升级授权消息的Client,如果升级授权消息中没有包含Peer-ID范围信息,表明该Client无需在后续与ES的交互中申请新的Peer-ID,否则需要向ES申请新的Peer-ID。同时,向高负载的Peer回复确认信息,表示已经准备开始升级。
步骤105,Client向ES上报升级消息;
本步骤中,准备升级的Client向ES上报升级消息,以获取P2P网络的授权证书。
如前所述,如果授权升级消息中包含有Peer-ID范围信息,则在升级消息中包含该信息。
步骤106,ES根据Client上报的升级消息为Client授权,向Client返回200OK消息;
本步骤中,ES根据Client上报的升级消息为Client授权,向准备升级的Client返回确认信息,包含新的证书信息等。
如前所述,如果升级消息中包含有期望Client升级后使用的Peer-ID范围信息,则ES从接收的期望升级后使用的Peer-ID范围信息中,为该client分配Peer-ID。
步骤107,Client接收200OK消息,发起RELOAD中的Peer入网请求流程,并从高负载的Peer分流需承载的资源;
本步骤中,准备升级的Client发起RELOAD中的Peer入网流程,即向AP发送Join升级请求至通知AP更新自身路由表之间的流程。并请求从高负载的Peer或其备份节点处下载所负责的资源信息。
如前所述,如果ES为该Client分配了新的Peer-ID,则该Client通过退出当前网络,然后启动并以新的Peer-ID接入网络成为Peer。
步骤108,高负载的Peer向Client返回入网请求响应。
本步骤中,Client通过执行升级流程,升级成功后原有的Client被新入网的Peer所取代,成为P2P网络中的一个Peer,为高负载的Peer分流负载,从而实现网络的负载平衡。原有的Client通过Node-ID接入P2P网络,升级的Peer通过Peer-ID为Client提供相关服务。
由上述可见,现有基于升级Client分流Peer负载的方法,在局部空间的Peer负载过重时,通过在与其直连的Client中选择一个或多个Client来升级为Peer,从而分流其路由消息转发的负载。但对于Node-ID不在自身Peer-ID负责范围内的Client,Client需要先退出当前网络以更换其对等节点标识Peer-ID,然后启动并以新的Peer-ID接入P2P网络成为Peer,即重新以Peer的属性发起入网请求,使得在分流负载的流程中,不仅分流所需的时间较长,还造成使用该Client的用户服务的中断,影响用户的业务连续性体验。
发明内容
有鉴于此,本发明的主要目的在于提出一种基于升级Client分流Peer负载的方法,缩短分流所需的时间、避免用户服务的中断。
本发明的另一目的在于提出一种基于升级Client分流Peer负载的装置,缩短分流所需的时间、避免用户服务的中断。
本发明的再一目的在于提出一种基于升级Client分流Peer负载的系统,缩短分流所需的时间、避免用户服务的中断。
为达到上述目的,本发明提供了一种基于升级Client分流Peer负载的方法,该方法包括:
接收来自对等节点发送的升级授权消息,确定所述升级授权消息中携带有期望客户节点升级后使用的对等节点标识范围信息;
调用操作系统提供的应用编程接口,新启动一个进程作为对等节点进程;
向新启动的对等节点进程发送通知消息,携带期望客户节点升级后使用的对等节点标识范围信息;
新启动的对等节点进程根据接收的期望客户节点升级后使用的对等节点标识范围信息,接入点对点网络,分流发送升级授权消息的对等节点的负载。
进一步包括:
客户节点内的客户节点进程与对等节点进程建立连接,进行信息的交互。
所述客户节点进程与对等节点进程建立连接包括:
所述客户节点进程通过外部直连的对等节点的中转,建立与对等节点进程的连接;或,
所述客户节点进程通过操作系统提供的进程间通信方式,建立与对等节点进程的连接。
所述进程间通信包括:管道通信、共享存储通信、消息队列通信、信号量通信以及套接字通信中的一种或其任意组合。
所述接收来自对等节点发送的升级授权消息包括:
对等节点确定处于过载状态,向直连的客户节点发送能力信息查询请求消息;
直连的客户节点接收能力信息查询请求消息,向对等节点返回客户节点能力信息;
对等节点根据接收的各客户节点能力信息,排序客户节点;
根据排序的客户节点以及需要分流的负载量,确定用于分流的客户节点,向分流的客户节点发送升级授权消息;
客户节点接收升级授权消息。
所述向能力信息包括:CPU空闲率、闲置内存数量以及网络抖动。
所述对等节点根据接收的各客户节点能力信息,排序客户节点包括:
计算CPU空闲率与预先设置的CPU空闲率系数的乘积,得到第一综合能力评分;
计算闲置内存数量与预先设置的闲置内存数量系数的乘积,得到第二综合能力评分;
计算网络抖动与预先设置的网络抖动系数的乘积,得到第三综合能力评分;
将第一综合能力评分与第二综合能力评分相加,减去第三综合能力评分,得到客户节点的综合能力评分,并根据综合能力评分进行排序。
所述根据排序的客户节点以及需要分流的负载量,确定用于分流的客户节点包括:
对等节点根据需要分流的负载量确定距离该对等节点的距离;
根据确定的距离以及对等节点的对等节点标识,从依序排列的客户节点中确定需要选取的客户节点数量。
所述从依序排列的客户节点中确定需要选取的客户节点数量包括:
A1,依次判断排序的客户节点的客户节点标识是否在该对等节点负责的标识范围内,如果客户节点的客户节点标识在该对等节点负责的标识范围内,执行步骤A2,如果客户节点的客户节点标识不在对等节点负责的标识范围内,执行步骤A3;
A2,计算该客户节点与该对等节点的距离,判断计算得到的距离是否满足确定的距离,如果是,选取该客户节点,否则,执行步骤A1;
A3,根据确定的距离设置期望客户节点升级后使用的对等节点标识范围信息,携带在升级授权消息中,向客户节点发送。
所述接入点对点网络,分流发送升级授权消息的对等节点的负载包括:
对等节点进程向注册服务器发送携带期望客户节点升级后使用的对等节点标识范围信息的升级消息;
ES为对等节点进程授权,根据期望客户节点升级后使用的对等节点标识范围信息,为对等节点进程分配对等节点标识,并向对等节点进程发送200OK消息;
对等节点进程接收200OK消息,发起资源定位与发现基础协议中的对等节点入网流程,并从对等节点分流需承载的负载。
一种基于升级客户节点分流对等节点负载的装置,该装置包括:客户节点模块以及对等节点模块,其中,
客户节点模块,接收来自对等节点发送的升级授权消息,确定所述升级授权消息中携带有期望客户节点升级后使用的对等节点标识范围信息;调用操作系统提供的应用编程接口,触发对等节点模块启动一个进程作为对等节点进程;向对等节点模块发送通知消息,携带期望客户节点升级后使用的对等节点标识范围信息;
对等节点模块,用于根据客户节点模块的触发启动一个进程作为对等节点进程,根据接收的通知消息中携带的期望客户节点升级后使用的对等节点标识范围信息,接入点对点网络,分流发送升级授权消息的对等节点的负载。
所述客户节点模块进一步用于采用操作系统提供的进程间通信方式,建立与对等节点模块之间的连接。
一种基于升级客户节点分流对等节点负载的系统,该系统包括:过载对等节点、客户端以及注册服务器,其中,
过载对等节点,用于在确定过载时,向直连的客户端发送能力信息查询请求消息;根据接收的各客户端能力信息,排序客户端;根据排序的客户端以及需要分流的负载量,确定用于分流的客户端,向分流的客户端发送升级授权消息;
客户端,接收来自过载对等节点发送的升级授权消息,确定所述升级授权消息中携带有期望客户端升级后使用的对等节点标识范围信息;调用操作系统提供的应用编程接口,新启动一个进程作为对等节点进程;向新启动的对等节点进程发送通知消息,携带期望客户端升级后使用的对等节点标识范围信息;新启动的对等节点进程根据接收的期望客户端升级后使用的对等节点标识范围信息,向注册服务器上报升级消息;根据注册服务器返回的升级响应消息,通过与过载对等节点,接入点对点网络,分流过载对等节点的负载;
注册服务器,接收升级消息,根据期望客户端升级后使用的对等节点标识范围信息,为客户端中的对等节点进程分配节点标识,并向对等节点进程返回升级响应消息。
所述客户端包括:客户节点模块以及对等节点模块,其中,
客户节点模块,接收来自对等节点发送的升级授权消息,确定所述升级授权消息中携带有期望客户节点升级后使用的对等节点标识范围信息;调用操作系统提供的应用编程接口,触发对等节点模块启动一个进程作为对等节点进程;向对等节点模块发送通知消息,携带期望客户节点升级后使用的对等节点标识范围信息;
对等节点模块,用于根据客户节点模块的触发启动一个进程作为对等节点进程,根据接收的通知消息中携带的期望客户节点升级后使用的对等节点标识范围信息,接入点对点网络,分流发送升级授权消息的对等节点的负载。
所述客户节点模块进一步用于采用操作系统提供的进程间通信方式,建立与对等节点模块之间的连接。
由上述的技术方案可见,本发明提供的一种基于升级Client分流Peer负载的方法、装置及系统,接收来自Peer发送的升级授权消息,确定所述升级授权消息中携带有期望Client升级后使用的Peer-ID范围信息;调用操作系统提供的应用编程接口,新启动一个进程作为Peer进程;向新启动的Peer进程发送通知消息,携带期望Client升级后使用的Peer-ID范围信息;新启动的Peer进程根据接收的期望Client升级后使用的Peer-ID范围信息,接入P2P网络,分流发送升级授权消息的Peer的负载。这样,在Peer过载时,对于Node-ID不在自身Peer-ID负责范围内的Client,利用操作系统提供的应用编程接口新启进程作为Peer进程分流Peer的负载,Client无需退出当前P2P网络,从而避免了用户服务的中断,确保了用户的业务连续性体验,也降低了分流所需的时间。
附图说明
图1为现有基于升级Client分流Peer负载的方法流程示意图。
图2为本发明实施例基于升级Client分流Peer负载的方法流程示意图。
图3为本发明实施例基于升级Client分流Peer负载的方法具体流程示意图。
图4为现有基于升级Client分流Peer负载的装置结构示意图。
图5为现有基于升级Client分流Peer负载的系统结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
现有基于升级Client分流Peer负载的方法,在高负载的Peer选择的Client的Node-ID不在自身Peer-ID负责的ID范围内时,Client在获得配置的Peer-ID后,先退出当前网络,然后启动并以新配置的Peer-ID接入网络成为Peer,使得分流所需的时间较长,还造成使用该Client的用户服务的中断,影响用户的业务连续性体验。为此,本发明实施例中,通过在被高负载的Peer选中的Client平台上新增一个实体(例如,进程)作为新的Peer加入网络,为高负载的Peer分流负载,这样,原有的Client实体(例如,进程)无需退网,可以有效缩短分流所需的时间,并确保用户的业务连续性体验。
图2为本发明实施例基于升级Client分流Peer负载的方法流程示意图。参见图2,该流程包括:
步骤201,接收来自Peer发送的升级授权消息,确定所述升级授权消息中携带有期望Client升级后使用的Peer-ID范围信息;
本步骤中,接收来自Peer发送的升级授权消息包括:
A1,Peer确定处于过载状态,向直连的Client发送能力信息查询请求消息;
本步骤中,Peer判断在预定时间内自身的负载是否持续超过预先设定的负载阈值,如果是,则确定自身处于过载状态,需要分流负载,当然,实际应用中,也可以是检测到当自身的负载超过预先设定的负载阈值时,则确定自身处于过载状态。负载阈值可根据实际需要确定。
A2,直连的Client接收能力信息查询请求消息,向Peer返回Client能力信息;
本步骤中,与Peer直连的Client接收能力信息查询请求消息,根据实际情况,向Peer返回自己的能力信息,包括CPU空闲率、闲置内存数量、网络抖动等信息。
A3,Peer根据接收的各Client能力信息,排序Client;
本步骤中,Peer根据预先设置的选择策略,对各Client的能力信息进行综合能力评分,根据综合能力评分对各Client进行排序。
本发明实施例中,综合能力评分计算公式可以如下:
S=ξ1xC1+ξ2xC2-ξ3xC3
式中,
S为综合能力评分;
S=ξ1xC1+ξ2xC2-ξ3xC3
S=ξ1xC1+ξ2xC2-ξ3xC3
S=ξ1xC1+ξ2xC2-ξ3xC3
C1为CPU空闲率,ξ1为CPU空闲率系数;
C2为闲置内存数量,ξ2为闲置内存数量系数;
C3为网络抖动,ξ3为网络抖动系数。
较佳地,ξ1+ξ2+ξ3=1。
A4,根据排序的Client以及需要分流的负载量,确定用于分流的Client,向分流的Client发送升级授权消息;
根据排序的Client以及需要分流的负载量,确定用于分流的Client具体包括:
A41,Peer根据需要分流的负载量确定距离该Peer的距离;
本步骤中,分流的负载量大小与Peer至目标Client的距离相关,本发明实施例中,将需要待升级的各Client等效为一个目标Client,根据需要分流的负载量首先确定Peer至目标Client的距离。
A42,根据确定的距离以及Peer-ID,从依序排列的Client中确定需要选取的Client数量。
本步骤中,Peer至目标Client的距离等于Peer-ID与目标Client的Node-ID的距离。
从依序排列的Client中确定需要选取的Client数量包括:
A421,依次判断排序的Client的Node-ID是否在该Peer负责的ID范围内,如果Client的Node-ID在该Peer负责的ID范围内,执行步骤A422,如果Client的Node-ID不在Peer负责的ID范围内,执行步骤A423;
A422,计算该Client与该Peer的距离,判断计算得到的距离是否满足确定的距离,如果是,选取该Client,以在后续流程中向选取的Client发送升级授权消息,否则,执行步骤A421;
A423,根据确定的距离设置期望Client升级后使用的Peer-ID范围信息,携带在升级授权消息中,向Client发送。
本发明实施例中,Peer判断用于分流的Client的Node-ID在自身负责的ID范围内,则按照现有流程进行处理,在此不再赘述。
A5,Client接收升级授权消息。
步骤202,调用操作系统提供的应用编程接口(API,Application ProgramInterface),新启动一个进程作为Peer进程;
本步骤中,如前所述,如果Client接收的升级授权消息中未包含期望Client升级后使用的Peer-ID范围信息,则按照现有技术进行处理。
Client接收升级授权消息后,在原有Client进程的基础上,调用操作系统提供的API,新启动一个进程作为Peer进程以处理分流负载,Client进程与Peer进程同处于Client中,即属于同一物理机。
API可以是Linux操作系统下的fork函数,也可以是Windows操作系统下的CreateProcess函数。
调用API启动进程的流程,具体可参见相关技术文献,在此不再赘述。
进一步地,Client向发送升级授权消息的Peer回复确认信息,表示已经准备开始升级。
步骤203,向新启动的Peer进程发送通知消息,携带期望Client升级后使用的Peer-ID范围信息;
本步骤中,Client利用共物理机进程间通信机制发送通知消息。
步骤204,新启动的Peer进程根据接收的期望Client升级后使用的Peer-ID范围信息,接入P2P网络,分流发送升级授权消息的Peer的负载。
本步骤中,接入P2P网络,分流发送升级授权消息的Peer的负载包括:
B1,Peer进程向ES发送携带期望Client升级后使用的Peer-ID范围信息的升级消息;
本步骤中,升级消息可以以超文本传输协议(HTTP,Hyper Text TransferProtocol)消息的格式发送。
B2,ES为Peer进程授权,根据期望Client升级后使用的Peer-ID范围信息,为Peer进程分配对等节点标识,并向Peer进程发送200OK消息;
本步骤中,200OK消息中包含授权证书、Peer-ID以及BP列表等信息。
B3,Peer进程接收200OK消息,发起RELOAD中的Peer入网流程,并从Peer分流需承载的负载。
本步骤中,Peer进程根据接收的授权证书、Peer-ID以及BP列表等信息,发起RELOAD中的Peer入网流程,即向AP发送Join升级请求至通知AP更新自身路由表之间的流程,并请求从Peer处下载所负责的资源信息,从而分流Peer的负载。
还可以进一步包括:新启动的Peer进程利用共物理机(平台)进程间通信机制向Client回复ACK,确认启动新Peer入网流程。
进一步地,该方法还可以包括:
步骤205,Client内的Client进程与Peer进程建立连接,进行信息的交互。
本发明实施例中,Peer-ID与Node-ID属于同一ID范围,升级成功后的原有Client进程与新入网的Peer进程在同一物理机上共存,即同一客户端中包含Client和Peer,Client可能与新入网的Peer在逻辑上相隔离,也就是说,Peer以进程的形式提供服务,Client直连在网络中的其它Peer上,通过其他Peer的中转,可以获取Peer以进程的形式提供的服务。这样,使得同一物理机上的Client,如果需要与该物理机上的新入网的Peer进行通信,还需要通过与其直连的其它Peer组成的P2P网络的中转,使得通信效率较低,并导致了网络资源浪费。
为此,本发明实施例中,还可进一步对提供的基于升级Client分流Peer负载的方法进行改进:在Client与新入网的Peer处于同一物理机时,Client与新入网的Peer之间,采用该Client操作系统提供的进程间通信方式进行消息的交互。
进程间通信(IPC,Inter Process Communication)是指在同一物理机上不同进程之间传播或交换信息,用于进行数据息的传输和共享,通过传输的数据信息完成进程之间的控制。不同操作系统有不同的实现方式,只要操作系统支持多进程,就具有提供进程间通信机制的能力,例如,Linux操作系统、Windows操作系统等都支持多进程。
进程间通信主要包括管道通信、共享存储通信、消息队列通信、信号量通信和套接字(Socket)通信等的一种或其任意组合。
这样,通过进程间通信,Client与共物理机的Peer之间,可以建立连接并实现快速的信息交互,从而无需进行中转,提高了通信效率,减少了网络资源浪费,在解决局部负载均衡的同时,也进一步提升了用户的通信体验。
由图1的流程可见,本发明实施例的核心思想可以简要描述如下:
第一,新升级Peer的Node-ID由高负载的Peer结合Client自身能力信息和网络环境进行指派,在升级过程中,Client并不退出,Client的Node-ID也不会改变,继续正常工作,在接收到升级授权消息后,Client通过新启动一个进程作为Peer;
第二,如果Client检测到共物理机的Peer升级成功,则Client强制与共物理机的Peer建立直连,Client通过新入网Peer,继续为用户提供服务;
第三,Client与共物理机的Peer建立连接后,Client与直连的共物理机的Peer间需要进行交互时,通过操作系统提供的进程间通信方式进行交互,不需要经过P2P网络,以提高通信效率和用户体验。
图3为本发明实施例基于升级Client分流Peer负载的方法具体流程示意图。参见图3,该流程包括:
步骤301,Peer确定处于过载状态,向直连的Client发送能力信息查询请求消息;
本步骤中,Peer在一段时间内持续检测到高负载状态,为了防止过载情况的发生,准备采取新Client加入的方式分流负载。向直连的Client发送能力信息查询请求消息,查询各直连Client的能力。
步骤302,直连的Client接收能力信息查询请求消息,向Peer返回携带能力信息的能力信息查询请求响应消息;
步骤303,Peer根据接收的各Client能力信息,选择用于分流的Client,向选择的Client发送升级授权消息;
步骤304,Client接收升级授权消息,进行处理后向Peer返回确认(ACK)信息;
步骤305,Client通过调用操作系统提供的API新启动一个Peer进程,并利用共平台进程间通信机制通知该新启动的Peer进程启动入网流程;
步骤306,新启动的Peer进程利用共平台进程间通信机制回复ACK确认启动新节点入网流程;
步骤307,新启动的Peer进程向ES发送HTTP消息,请求获得Peer-ID及授权证书以入网;
步骤308,ES返回200OK消息,携带授权证书、Peer-ID以及BP列表等信息;
步骤309,新启动的Peer进程与Peer执行入网请求与应答流程;
步骤310,新启动的Peer进程与Peer交互,执行数据资源存储流程;
步骤309~步骤310为新启动的Peer进程加入P2P Overlay的流程,具体可参见RELOAD标准流程。
步骤311,共平台的Peer进程通过进程间通信机制通知Client入网成功;
步骤312,Client利用进程间通信机制与Peer进程建立直连,进行信息的交互。
由上述可见,本发明实施例的基于升级Client分流Peer负载的方法,Client在确定接收到的升级授权消息中携带有期望Client升级后使用的Peer-ID范围信息后,调用操作系统提供的API,新启动一个进程作为Peer进程,由新启动的Peer进程根据期望Client升级后使用的Peer-ID范围信息,接入P2P网络,分流发送升级授权消息的Peer的负载。这样,对于Node-ID不在自身Peer-ID负责范围内的Client,利用操作系统提供的进程间通信机制实现Client升级流程,Client无需退出当前P2P网络就能实现分流Peer的负载,从而避免了用户服务的中断,确保了用户的业务连续性体验,也降低了分流所需的时间;进一步地,在实现负载均衡分流的同时,通过进程间通信,使得具有升级权限的Client直接连接在共平台的Peer上,而无需通过P2P网络的中转就能进行信息的交互,提高了通信效率、资源利用率和用户体验。
图4为现有基于升级Client分流Peer负载的装置结构示意图。参见图4,该装置包括:客户节点模块以及对等节点模块,其中,
客户节点模块,接收来自Peer发送的升级授权消息,确定所述升级授权消息中携带有期望Client升级后使用的Peer-ID范围信息;调用操作系统提供的应用编程接口,触发对等节点模块启动一个进程作为Peer进程;向对等节点模块发送通知消息,携带期望Client升级后使用的Peer-ID范围信息;
对等节点模块,用于根据客户节点模块的触发启动一个进程作为Peer进程,根据接收的通知消息中携带的期望Client升级后使用的Peer-ID范围信息,接入P2P网络,分流发送升级授权消息的Peer的负载。
较佳地,客户节点模块进一步用于采用操作系统提供的进程间通信方式,建立与对等节点模块之间的连接,以进行信息的交互。
图5为现有基于升级Client分流Peer负载的系统结构示意图。参见图5,该系统包括:过载Peer、客户端以及ES,其中,
过载Peer,用于在确定过载时,向直连的客户端发送能力信息查询请求消息;根据接收的各客户端能力信息,排序客户端;根据排序的客户端以及需要分流的负载量,确定用于分流的客户端,向分流的客户端发送升级授权消息;
客户端,接收来自过载Peer发送的升级授权消息,确定所述升级授权消息中携带有期望客户端升级后使用的Peer-ID范围信息;调用操作系统提供的应用编程接口,新启动一个进程作为Peer进程;向新启动的Peer进程发送通知消息,携带期望客户端升级后使用的Peer-ID范围信息;新启动的Peer进程根据接收的期望客户端升级后使用的Peer-ID范围信息,向ES上报升级消息;根据ES返回的升级响应消息,通过与过载Peer,接入P2P网络,分流过载Peer的负载;
ES,接收升级消息,根据期望客户端升级后使用的Peer-ID范围信息,为客户端中的Peer进程分配节点标识,并向Peer进程返回升级响应消息。
本发明实施例中,升级响应消息包含授权证书、Peer-ID以及BP列表等信息。
其中,客户端包括:客户节点模块以及对等节点模块(图中未示出),其中,
客户节点模块,接收来自Peer发送的升级授权消息,确定所述升级授权消息中携带有期望Client升级后使用的Peer-ID范围信息;调用操作系统提供的应用编程接口,触发对等节点模块启动一个进程作为Peer进程;向对等节点模块发送通知消息,携带期望Client升级后使用的Peer-ID范围信息;
对等节点模块,用于根据客户节点模块的触发启动一个进程作为Peer进程,根据接收的通知消息中携带的期望Client升级后使用的Peer-ID范围信息,接入P2P网络,分流发送升级授权消息的Peer的负载。
较佳地,客户节点模块进一步用于采用操作系统提供的进程间通信方式,建立与对等节点模块之间的连接,以进行信息的交互。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种基于升级客户节点分流对等节点负载的方法,其特征在于,该方法包括:
接收来自对等节点发送的升级授权消息,确定所述升级授权消息中携带有期望客户节点升级后使用的对等节点标识范围信息;
调用操作系统提供的应用编程接口,新启动一个进程作为对等节点进程;
向新启动的对等节点进程发送通知消息,携带期望客户节点升级后使用的对等节点标识范围信息;
新启动的对等节点进程根据接收的期望客户节点升级后使用的对等节点标识范围信息,接入点对点网络,分流发送升级授权消息的对等节点的负载。
2.如权利要求1所述的方法,其特征在于,进一步包括:
客户节点内的客户节点进程与对等节点进程建立连接,进行信息的交互。
3.如权利要求2所述的方法,其特征在于,所述客户节点进程与对等节点进程建立连接包括:
所述客户节点进程通过外部直连的对等节点的中转,建立与对等节点进程的连接;或,
所述客户节点进程通过操作系统提供的进程间通信方式,建立与对等节点进程的连接。
4.如权利要求3所述的方法,其特征在于,所述进程间通信包括:管道通信、共享存储通信、消息队列通信、信号量通信以及套接字通信中的一种或其任意组合。
5.如权利要求1至4任一项所述的方法,其特征在于,所述接收来自对等节点发送的升级授权消息包括:
对等节点确定处于过载状态,向直连的客户节点发送能力信息查询请求消息;
直连的客户节点接收能力信息查询请求消息,向对等节点返回客户节点能力信息;
对等节点根据接收的各客户节点能力信息,排序客户节点;
根据排序的客户节点以及需要分流的负载量,确定用于分流的客户节点,向分流的客户节点发送升级授权消息;
客户节点接收升级授权消息。
6.如权利要求5所述的方法,其特征在于,所述向能力信息包括:CPU空闲率、闲置内存数量以及网络抖动。
7.如权利要求6所述的方法,其特征在于,所述对等节点根据接收的各客户节点能力信息,排序客户节点包括:
计算CPU空闲率与预先设置的CPU空闲率系数的乘积,得到第一综合能力评分;
计算闲置内存数量与预先设置的闲置内存数量系数的乘积,得到第二综合能力评分;
计算网络抖动与预先设置的网络抖动系数的乘积,得到第三综合能力评分;
将第一综合能力评分与第二综合能力评分相加,减去第三综合能力评分,得到客户节点的综合能力评分,并根据综合能力评分进行排序。
8.如权利要求5所述的方法,其特征在于,所述根据排序的客户节点以及需要分流的负载量,确定用于分流的客户节点包括:
对等节点根据需要分流的负载量确定距离该对等节点的距离;
根据确定的距离以及对等节点的对等节点标识,从依序排列的客户节点中确定需要选取的客户节点数量。
9.如权利要求8所述的方法,其特征在于,所述从依序排列的客户节点中确定需要选取的客户节点数量包括:
A1,依次判断排序的客户节点的客户节点标识是否在该对等节点负责的标识范围内,如果客户节点的客户节点标识在该对等节点负责的标识范围内,执行步骤A2,如果客户节点的客户节点标识不在对等节点负责的标识范围内,执行步骤A3;
A2,计算该客户节点与该对等节点的距离,判断计算得到的距离是否满足确定的距离,如果是,选取该客户节点,否则,执行步骤A1;
A3,根据确定的距离设置期望客户节点升级后使用的对等节点标识范围信息,携带在升级授权消息中,向客户节点发送。
10.如权利要求5所述的方法,其特征在于,所述接入点对点网络,分流发送升级授权消息的对等节点的负载包括:
对等节点进程向注册服务器发送携带期望客户节点升级后使用的对等节点标识范围信息的升级消息;
ES为对等节点进程授权,根据期望客户节点升级后使用的对等节点标识范围信息,为对等节点进程分配对等节点标识,并向对等节点进程发送200OK消息;
对等节点进程接收200OK消息,发起资源定位与发现基础协议中的对等节点入网流程,并从对等节点分流需承载的负载。
11.一种基于升级客户节点分流对等节点负载的装置,其特征在于,该装置包括:客户节点模块以及对等节点模块,其中,
客户节点模块,接收来自对等节点发送的升级授权消息,确定所述升级授权消息中携带有期望客户节点升级后使用的对等节点标识范围信息;调用操作系统提供的应用编程接口,触发对等节点模块启动一个进程作为对等节点进程;向对等节点模块发送通知消息,携带期望客户节点升级后使用的对等节点标识范围信息;
对等节点模块,用于根据客户节点模块的触发启动一个进程作为对等节点进程,根据接收的通知消息中携带的期望客户节点升级后使用的对等节点标识范围信息,接入点对点网络,分流发送升级授权消息的对等节点的负载。
12.如权利要求10所述的装置,其特征在于,所述客户节点模块进一步用于采用操作系统提供的进程间通信方式,建立与对等节点模块之间的连接。
13.一种基于升级客户节点分流对等节点负载的系统,其特征在于,该系统包括:过载对等节点、客户端以及注册服务器,其中,
过载对等节点,用于在确定过载时,向直连的客户端发送能力信息查询请求消息;根据接收的各客户端能力信息,排序客户端;根据排序的客户端以及需要分流的负载量,确定用于分流的客户端,向分流的客户端发送升级授权消息;
客户端,接收来自过载对等节点发送的升级授权消息,确定所述升级授权消息中携带有期望客户端升级后使用的对等节点标识范围信息;调用操作系统提供的应用编程接口,新启动一个进程作为对等节点进程;向新启动的对等节点进程发送通知消息,携带期望客户端升级后使用的对等节点标识范围信息;新启动的对等节点进程根据接收的期望客户端升级后使用的对等节点标识范围信息,向注册服务器上报升级消息;根据注册服务器返回的升级响应消息,通过与过载对等节点,接入点对点网络,分流过载对等节点的负载;
注册服务器,接收升级消息,根据期望客户端升级后使用的对等节点标识范围信息,为客户端中的对等节点进程分配节点标识,并向对等节点进程返回升级响应消息。
14.如权利要求13所述的系统,其特征在于,所述客户端包括:客户节点模块以及对等节点模块,其中,
客户节点模块,接收来自对等节点发送的升级授权消息,确定所述升级授权消息中携带有期望客户节点升级后使用的对等节点标识范围信息;调用操作系统提供的应用编程接口,触发对等节点模块启动一个进程作为对等节点进程;向对等节点模块发送通知消息,携带期望客户节点升级后使用的对等节点标识范围信息;
对等节点模块,用于根据客户节点模块的触发启动一个进程作为对等节点进程,根据接收的通知消息中携带的期望客户节点升级后使用的对等节点标识范围信息,接入点对点网络,分流发送升级授权消息的对等节点的负载。
15.如权利要求14所述的系统,其特征在于,所述客户节点模块进一步用于采用操作系统提供的进程间通信方式,建立与对等节点模块之间的连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110461622.0A CN103188164B (zh) | 2011-12-31 | 2011-12-31 | 基于升级客户节点分流对等节点负载的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110461622.0A CN103188164B (zh) | 2011-12-31 | 2011-12-31 | 基于升级客户节点分流对等节点负载的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103188164A true CN103188164A (zh) | 2013-07-03 |
CN103188164B CN103188164B (zh) | 2016-01-27 |
Family
ID=48679135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110461622.0A Active CN103188164B (zh) | 2011-12-31 | 2011-12-31 | 基于升级客户节点分流对等节点负载的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103188164B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753984A (zh) * | 2013-12-26 | 2015-07-01 | 乐视网信息技术(北京)股份有限公司 | 一种数据传送方法及装置 |
CN112751699A (zh) * | 2019-10-31 | 2021-05-04 | 阿里巴巴集团控股有限公司 | Ota升级与升级管理方法、设备、网络及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1882166A (zh) * | 2005-06-15 | 2006-12-20 | 华为技术有限公司 | 一种根据负载状况选择服务节点的方法 |
CN1937557A (zh) * | 2006-09-05 | 2007-03-28 | 华为技术有限公司 | 结构化对等网络系统及其负载查询、转移及资源查找方法 |
CN101202746A (zh) * | 2006-12-15 | 2008-06-18 | 华为技术有限公司 | 节点标识符生成方法及负载均衡方法及装置 |
US20090282168A1 (en) * | 2007-01-18 | 2009-11-12 | Huawei Technologies Co., Ltd. | Server, p2p network system, and method for routing and transferring resource key assignment thereof |
-
2011
- 2011-12-31 CN CN201110461622.0A patent/CN103188164B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1882166A (zh) * | 2005-06-15 | 2006-12-20 | 华为技术有限公司 | 一种根据负载状况选择服务节点的方法 |
CN1937557A (zh) * | 2006-09-05 | 2007-03-28 | 华为技术有限公司 | 结构化对等网络系统及其负载查询、转移及资源查找方法 |
CN101202746A (zh) * | 2006-12-15 | 2008-06-18 | 华为技术有限公司 | 节点标识符生成方法及负载均衡方法及装置 |
US20090282168A1 (en) * | 2007-01-18 | 2009-11-12 | Huawei Technologies Co., Ltd. | Server, p2p network system, and method for routing and transferring resource key assignment thereof |
Non-Patent Citations (1)
Title |
---|
张宇翔: "《一种层次结构化P2P网络中的负载均衡方法》", 《计算机学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753984A (zh) * | 2013-12-26 | 2015-07-01 | 乐视网信息技术(北京)股份有限公司 | 一种数据传送方法及装置 |
CN112751699A (zh) * | 2019-10-31 | 2021-05-04 | 阿里巴巴集团控股有限公司 | Ota升级与升级管理方法、设备、网络及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103188164B (zh) | 2016-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112000448B (zh) | 基于微服务架构的应用管理方法 | |
CN101014045B (zh) | 服务承载网中服务管理的分布式方法 | |
CN101714996B (zh) | 基于对等计算网络的认证系统及方法 | |
EP2612487B1 (en) | Method and arrangement in a peer-to-peer network | |
CN102037704B (zh) | 维护覆盖网络中的分布式哈希表 | |
JP2017525042A (ja) | M2m−iotサービスのパブリケーションおよび発見 | |
KR102158654B1 (ko) | 자원 구독 방법, 자원 구독 장치, 및 자원 구독 시스템 | |
CN101370035A (zh) | 用于动态客户端/服务器网络管理的方法以及系统 | |
JPWO2010107105A1 (ja) | ネットワークシステム | |
CN102047226A (zh) | 分布式服务框架 | |
CN111352716B (zh) | 一种基于大数据的任务请求方法、装置、系统及存储介质 | |
JP4954328B2 (ja) | 通信ネットワークにおけるデータ管理のための方法およびシステム | |
Rawadi et al. | Providing local cloud services to mobile devices with inter-cloudlet communication | |
US20110153826A1 (en) | Fault tolerant and scalable load distribution of resources | |
CN103188164A (zh) | 基于升级客户节点分流对等节点负载的方法、装置及系统 | |
KR101219536B1 (ko) | 일반 피어 장치, pan 게이트웨이 장치, 수퍼 피어 장치, p2p 네트워크 기반의 상호 연동 방법 | |
JP5526780B2 (ja) | 負荷分散システム、サービス処理サーバ、負荷分散方法及び負荷分散プログラム | |
KR101995871B1 (ko) | M2m 로밍을 위한 m2m 교환 플랫폼 | |
CN103166860A (zh) | 一种p2p叠加网络数据迁移的方法和装置 | |
CN103139076A (zh) | 分布式哈希表互通网络系统、域间节点及实现方法 | |
CN109905645B (zh) | 视频监控设备目录交换方法和联网平台 | |
Maenpaa et al. | Analysis of delays in a peer-to-peer session initiation protocol overlay network | |
JP6577907B2 (ja) | 通信監視装置および通信監視方法 | |
CN102497437B (zh) | 一种实现负载均衡的方法、设备及系统 | |
CN103179160B (zh) | 一种负载转移方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |