论文研究-基于负载均衡的Web实时通信系统 .pdf

所需积分/C币:9 2019-08-17 21:54:28 486KB .PDF
16
收藏 收藏
举报

基于负载均衡的Web实时通信系统,江旭楷,双锴,在互联网高速发展的今天,信息化占有着战略性的地位,实时通信以期快速高效的特点在信息通信领域扮演着越来越重要的角色。随着实
山国武获论文在丝 http:/www.paper.edu.cn 因的字符串,不同代码代表网络中或者协议中的不同故障。在连接中, Websocket协议使 用可变位数來编码帧长度;用8位UCS转换格式(UIF-8)编码,避免大量普通文本格式 85及不同编码对互操作性的影响;同时可以通过对帧头的修改决定该帧是否进行屏蔽以提髙安 全性及兼容性 因此, WebSocket协议相当于将IITP请求变成打开 WebSocket连接的单一请求, 重用客户端和服务器之间的同一连接。 WebSocket连接一旦建立,服务器在消息可用时就 可以直接推送到客户端,因而减少了多次请求造成的延迟。同时浏览器支持的 Web Socket 90APⅠ可以用来控制 WebSocket协议,例如打开和关闭连接、发送和接收消息、监听及响应 服务器触发的事件。 13负载均衡与一致性哈希 通过合理分配资源,让多台计算机负载被合理均衡,可以改善系统的性能。负载均衡的 目标是尽可能小的请求响应时间、使服务器系统能够动态应对负载的变化、提高服务器系统 95的可靠性。负载均衡算法是实现负载均衡的一个关键因素。常用的负载均衡算法有静态和动 态之分,静态负载均衡算法主要有轮询、加权轮询、目标地址散列、源地址散列四种;动态 负载均衡算法主要有最小连接、加权最小连接、基于局部性的最少链接、带复制的基于局 部性最少链接这四种。通常情况卞动态负载均衡算法会考虑系统在实际运行中的负载变化, 对—些机器仼务映射策略在执行资源调度期间根据实际情况进行确定,因而在灵活动态的网 l00络结构中较静态负载均衠有较大性能提高。 针对 WebRto系统的特点,连接数在不同的时间段会有较大的差异,需要通过调整服 务器数量来节省资源,达到一个弹性容量的效果。为了保证通信建立的实时性和效率,应采 用尽可能低复杂度的负载均衡算法;而一致性哈希算法采用源地址散列方式,能快速并尽可 能准确地将系统中所有请求分散到冬服务器,在:服务器动态増减以及服务器负载发生一定的 105变化的情况下,可以调整服务器的映射值,从而让之后到达的请求也能合理地分配到各个服 务器上,因此是 WebRto系统中最合适的负蔹均衡算法。在调度中,先根据服务器的数量 情况构造一个虚拟环路,将请求的源地址通过Hash函数讣算出散列键( HashKey),从环 路中找到对应的服务节点;若服务器节点超载或是岀错,则从环路中删去,新増服务器则増 加节点,每次增胭操作会触发ˉ次构造函数,形成个新的环路,通过维护它来使得请求达 到尽可能均匀的分布 2系统设计 21总体设计 系统架构如图2所示,由屮央服务器、 WebRTc服务器和Web客户端组成。 山国武获论文在丝 http:/www.paper.edu.cn 基于负载均衡的Web实时通信系统 中央服务器 Web客户端 连接请求 返回 Webrtc1 服务器地址 分配节点 WebRT服务器 Websocket 连接请求 t连接 钅接 全双工通信 115 图1基于负载均衡的Wcb实时通信系统总体框图 Fig. I Framework of load balance based WebRTC system 中央服务器主要负责负载均衡的控制,维护可用的 Webrto服务器列表、暴露接口给 Wcb客户端发起连接请求并给客户端分配相应的服务器节点;分配服务器之后客户端上动 120向 Carto服务器发起 WcbSockct连接请求,握手流程完成后浏览器与服务器建立全双 工通信; Werts服务器之闫使用TCP的 Socket连接,确保被分配到不同服务器上的 不同用户之间可以找到对方从而能够正常通信。 web实时通信系统实现负载均衡的流程图如图3所小 Web客户端 中央服务器 WebRTc服务器 连接 Request ChTtp Get) Response( WebRTC负载均衡策略 服务器地址 发送 Hand Shake 收到 Hand Shake 建立 Websocket连接 125 佟2Web实时通信系统实现负载均衡流程图 Fig 2 Flow chart of load balance of WebrTC system 具体交互过程如下: I)web客户端登录,尝试连接到web服务器,给屮心服务器发送Ⅱ TTP GET请求; 2)中心服务器收到Wcb客户端的请求,对用户信息进行鉴权,通过之后再根据一致 130性哈希算法确定分配给该用户的 WebRto服务器; 4 山国武获论文在丝 http:/www.paper.edu.cn 3)将用户鉴权结果和 WebRTC服务器信息通过 Response回复给客户端 4)客户端收到 Webrtc服务器的地址之后,主动向服务器发起 Websocket连线请 求,在GET请求中加入“ Upgrade: Websocket”等字段表示要升级成相应的协议米完成后 续的通信,这个过程也称为握手( Hand shake) 135 5)web服务器收到 HandShake之后给10响应,通知客户端可以切换协议进行通 信; 6)握于完成,web客户端和服务器之间建立 Web socket连接。 22详细设计 140221 Webrto服务器 Webrto系统中的 Webrto服务器主要作用是维护与浏览器客户端之问的 WebSocket 连接、维护与集群卬其他 Webrto服务器的连接、统计和管理用户信息和会话信息。服务 器主要划分为四个模块: WebSocket模块、服务器通信模块、会话状态模块、 Http Server 模块。其中, WcbSockαt模块:使用标准wε b Socket的AP,负责初始化并管理所有 WcbSockct 145连接;服务器通信模块:负责对目标用户非本地的消息进行转发,并监听本地端口以接收其 他服务器转发过来的消息;会话状态模块:维护 Webrto用户之间的实时通信状态,起到 一定的监管作用: Http Server模块:将本身作为一个 Http Server,接收中央服务器的保 活请求,回复Respυonse携带木身负载情况,让中央服务器根据策来调整负载均衠的方案。 222中央服务器 150 中央服务器主要的功能是探测web服务器是否存活、实现负载均衡的策略。中央服务 器主要划分为三个模块: Http Client模块、用户连接模块、负载均衡模块。其中, Http Client 模块:对应 Webrto服务器屮的 Http Server模块,定时向 Werth服务器发送ITTP 请求,以探测 WcoTc服务器是否正常运行,并可以获取 Carto服务器的负载情况; 用户连接模块:用户客户端要与 WebRtc服务器建立连接,首先向中央服务器请求,由中 155央服务器的负载均衡模块来决定为该用户服务的 Webrtc服务器,并把该服务器的地址返 回给客户端,由客户端主动向 WebRto服务器发起 WebSocket迕接请求;负载均衡模块: 主要完成两个功能,一个功能是用户请求连接时,根据用户信息玦射到环上,并找到负责该 用户的服务器,另一个功能是在可用的 WebRtc服务器列表出现变化的时候对 WebRtc服 务器进行散列 160 中央服务器和各个 Webrto服务器之间没有建立持久化的连接,而是通过中央服务器 定时向运行中的 Webrto服务器发送HIIP请求,是否能在规定时间内收到 Response 来判断该服务器是否正常运行,如果可以收到,则保持现状;如果不能收到或者收到该服务 器以及超载的消息,则将该 Carto服务器从侯选列表中刑除,并重新调整负载。 山国武获论文在丝 http:/www.paper.edu.cn 中央服务器 WebRTC服务器 Http Get Response Http R 负载调整 Http Get Resigns Http Get Response 负载调整 165 图3中央服务器与 Webrtc服务器通信流稈 Fig. 3 Communication flow of central server and WebRTC server 图4描述了中央服务器与 WebRto服务器通信的过程:中央服务器维护一个需要探测 的 WebRto服务器列表与一个可用的 Webrto服务器列表,中央服务器不管 Werts服 务器是否可用,只要其仍在需要探测的列表中,就会直定时发送 Http Get请求,直到 170其在需要探测列表中被除去。发送 Http Get请求之后如果没有在规定时间内收到 Response,则判断该服务器不可用,如果在可用列表中就将其移除,反之,如果服务器可用 却不在可用列表中,则将该服务器添加到可用列表:任何修改可用列表的行为都会触发负载 调整,中央服务器根据 Acrtc服务器数量和负载情况,重新将服务器映射到虚拟的环上 尽量保证服务器节点分到与其负载能力匹配的连接数。 1753算法实现 Webrto系统中的一致性哈希算法实现过程如下: WebRTC服务器 Web客户端 图4服务器虚拟节点和客户端源地址玦射图 Fig 4 Representation of server virtual nods and client source addresss 1)求出可用的 Webrtc服务器(节点)的哈希值,并将其映射到0~2^32的环 山国武获论文在丝 http:/www.paper.edu.cn 2)采用同样的方法求出用户的哈希值,并映射到同一个环上。 3)从用户映射到的位置开始顺时针査找,将用户分配给找到的第一个服务器。如果超 185过2^32仍然找不到服务器,就会从0的位置重新开始查找服务器。 在致性哈希算法中,每个节点都有随机分配的ID。在将内容映射到节点吋,使用内 容的关键字和节点的进行一致性哈希运算并获得键值。一致性哈希要求键值和节点I 处于同一值或。最简单的键值和ID可以是一维的,比如从0000到FFFF的整数集合。根据 190键值査找服务器时,用户将飯分配到具有与其键值最接近的节点上。例如键值为1234的用 ,系统中有I为1200、1250、1300的节点,该用户将被分配到1250节点。 为了构建查询所需的路由,一致性哈希要求有储每个节点的上行节点和下行节点的亻 息,即与该节点相邻旳两个节点。当用户需要知道自己应该与哪个节点建立连接或者节点需 要查找其他节点上的用户时,就可以根据用户的键值决定向某节点的上行或下行方向开始查 195洵。查询到的节点如果发现是目标节点,即其键值与目标键值最为接近,则可以直接返回确 认或者与用户建立连接;否则,将请求转发到同方向的下一个节点 在节点加入/退出系统时,为了维护上述路由信息,也为了使得负载能够更加合理的非 配,必须重新调整节点的分布。当节点加入/退出系统时,中央服务器能够及时地感知到, 如果只是简单地加上/删除该节点,由于之前的均衡分布操作以及用户情况、网络环境的变 200化,会导致负载的不平衡,所以应该根据节点的负载情况,重新调整节点分布。选择在节点 加入/退出系统时动态调整负载,还可以避免频繁调整而带来的不稳定因素,比如用户请求 不到为其服务的节点等。 负载均衡的伪代码实现如下: l) hash Circle=hash( Servers);/中央服务器构造可用服务器节点映射的 205 2) hash Circle. get(hash( Client));/中央服务器为客户查询为其服务的节点 3) Server load. change(intx);/ Webrto服务器自身的负载变化 4)httpclient:heartbeat(Servers);/中央服务器查询Webrtc服务器的可用状态 5)httpserver.Response;/响应心跳,回复负载情况 6) hash Circle=hash( Servers, LoadStatus);/央服务器在 Servers变化时重构可用服务 210 器节点映射的环,并使用实时负载情况作为参数,更合理地分配节点 综上,我们用一致性哈希算法解决了 Webrto系统中分配服务器以這应动态网络拓扑 的问题,只需要仝局维护相邻节点的信息,并且在服务器节点加入或退出 WebRtC系统时, 能够动态地根据服务器的负载情况反馈来调整负载。 4总结 215 在互联网和信息技术高速发展,Web实时通信应用迅速增加的大背景下,面对用户及 数据量不断增人的情况,web实时通信服务器面临效率滞后及过载问题。使用 Werth技 术来实现web实时通信,浏览器之间直接通信而不需要通过服务器传输所有的数据,可以 大大提高传输效率:利用HIML5的 WebSocket协议,连接建立后服务器在消息可用时就 可直接推送到客户端,减少了多次请求造成的延迟;冉结合负载均衡技术,可以调整服务器 220数量来节省资源以达到弹性容量、资源合理配置的效果。因此基」负载均衡的Web实时通 信系统无疑是顺应当今Web实吋通信应用发展种优良的解决方案,具有重要意义 山国武获论文在丝 http:/www.paper.edu.cn 参考文献( References) [1 Adam Bergkvist, Daniel C. Burnett, Cullen Jennings, Anant Narayanan, W3C Editor's Draft-2013. WebRTO 1.0: Real-time Communication Between Browsers[S]. USA: W3C, 2013 225[2]孙清国,朱玮,刘华军.Web应用中的服务器推送技术研究综述门计算机系统应用,208,17(11): 116-120 3 I Fette, A Melnikov. RFC 6455-2011. The Web Socket ProtocolS]. USA: IETF, 2011 4]胡利车.Web集群服务器的负载均衡和性能优化[D].北京:北京邮电大学,2010. 5 David Karger, Alex Sherman, Andy Berkheimer. Web caching with consistent hashing ] Coputer Networks, 230199,31(11:1203-1213 [6]堇振江,李从兵,王蔚,吕达.移动互联网 Webrtc及相关技术J.中兴通讯技术,2013,06:28-32 [7]屈振华,李慧云,张海涛,龙显军. Webrtc技术初探[.电信科学,2012,10:106-110.

...展开详情
试读 8P 论文研究-基于负载均衡的Web实时通信系统 .pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • 至尊王者

关注 私信
上传资源赚钱or赚积分
最新推荐
论文研究-基于负载均衡的Web实时通信系统 .pdf 9积分/C币 立即下载
1/8
论文研究-基于负载均衡的Web实时通信系统 .pdf第1页
论文研究-基于负载均衡的Web实时通信系统 .pdf第2页

试读结束, 可继续读1页

9积分/C币 立即下载