基于Dubbo框架的分布式视频网站架构设计

2018-10-29 11:09宋万洋
软件导刊 2018年8期
关键词:视频网站系统架构

宋万洋

摘要:网站系统架构对网站可靠性、服务质量等起着至关重要的作用,为了提供更可靠、更安全、更稳定的服务,分布式服务架构已成为当前中大型网站常用的架构方式。在分析对比分布式服务架构与服务器集群架构、Web Service架构时,详细介绍了作为分布式服务架构中代表Dubbo框架的技术原理及工作过程。通过分析视频网站业务需求,设计并使用Dubbo框架对其进行架构,用视频网站案例对Dubbo框架架构实施过程进行了实验。实验结果证明,使用Dubbo框架架构分布式网站具有更优的性能与扩展性。

关键词:Dubbo;视频网站;分布式框架;系统架构

DOIDOI:10.11907/rjdk.181098

中图分类号:TP319

文献标识码:A 文章编号:1672-7800(2018)008-0137-04

英文摘要Abstract:The architecture of website plays a crucial role in website service reliability and service quality.In order to provide more reliable,safer and stabler services,the distributed service architecture has become a common way for large-scale web sites.Based on the analysis and comparison of the advantages of distributed service architecture,server cluster architecture and Web Service architecture,the technology principle and working process of Dubbo framework as a representative of distributed service architecture are introduced in detail.Analyzing the business needs of video websites,we design and construct the Dubbo framework to build the website,and illustrate the implementation process of Dubbo framework with video cases.The results of the actual architecture deployment prove that distributed websites with the Dubbo framework have better performance and more flexible scalability.

英文关键词Key Words:Dubbo; video website; distributed framework; system architecture

0 引言

随着信息技术与互联网技术的飞速发展,近年来,互联网资源量与互联网用户量呈爆炸式增长。随着用户量增加,网站承受能力成为网站发展期的瓶颈。因此当前中大型网站架构优化成为重点研究方向[1]。

服务器集群架构模式是早期网络系统架构中常用方式之一[2],服务器负责资源服务提供,客户通过请求服务器而获取服务,这种模式是一种比较简单且实用的分布式架构方案,但是在这种模式中,某种服务只能由集中式进程提供服务,服务稳定性受服务器负载能力与网络带宽影响,具有一定局限性。以Web Service服务为代表的垂直应用框架,其将应用的前后端分离,服务提供方以HTTP方式提供服务[3],调用时不受语音限制。但是其采用SOAP(Simple Object Access Protocol)作为数据传输协议,导致对调用量大、结构复杂的调用对象支持较差。研究与应用比较广泛的分布式服务框架解决了以上架构方式问题[4],其可以将应用提炼分离,形成独立的应用服务,且将服务汇集成服务中心,以服务中心的形式为前端业务调用提供服务,提高系统的可靠性与灵活性。

1 Dubbo框架架构技术

分布式架构是为了解决单一节点资源不足或服务不完善而开发的,其将一个集中式系统分割成多个互相独立的功能服务模块,利用网络服务调用技术实现系统功能。与传统集中式架构方式相比,分布式架构具有高并发性、服务异构性[5]、服务可扩展性、数据安全性[6]等优点。

Dubbo框架是由阿里巴巴集团开发的一款分布式系统服务框架,它将系统分割成垂直服务层[4],各层独立提供服务,并通过远程调用协议实现系统服务的输入与输出,从而帮助系统服务提供高性能与透明化的远程服务调用。

1.1 Dubbo框架核心技术

Dubbo框架通过远程方法调用与网络通信封装,利用服务中心注册方法,进行本地调用与远程调用,从而实现系统设计与开发[7]。其核心技术可以概括为以下3个方面:

(1)远程通讯:封装远程方法,使远程方法調用透明化,调用时只需简单配置调用环境,减少开发过程中调用,提高系统安全性。

(2)集群容错:通过分散程序模块实现方法,冗余备份关键模块,基于接口方法调用等技术,帮助系统在系统部署过程中实现基于软件负载均衡、系统失败容错等功能[8]。

(3)自动发现:使用服务中心注册机制,中心记录服务提供方信息,并将信息提供给服务调用方,其仅需这些信息即可调用,方便系统功能调整及使用。

1.2 Dubbo框架工作过程

Dubbo框架工作过程如图1所示。

系统运行时,服务提供方与服务调用方分离运行,当服务运行容器中服务提供方开始提供服务时,向注册中心注册使用者的服务、地址、调用方式等基本信息。服务调用方在需要调用服务时,向注册中心申请调用服务,注册中心将服务提供者信息返回给调用者,通过这些信息调用服务运行容器中的服务。服务运行过程中,监控机构监控双方情况,定期统计服务调用次数与服务调用时间等信息,以保证服务持续运行。如果服务提供者对服务有增减或变更,会及时通知注册中心,由注册中心与服务运行容器协作提供集群容错、软负载均衡等功能。

1.3 Dubbo框架特点

(1)可靠性:服务中心提供服务注册功能,并与服务提供方保持长连接状态,保证注册服务的准确性与可靠性;服务提供方为服务调用方提供服务时,双方采用Socket通信长连接方式保持服务,且定期向监控中心报告状态,从而保证服务的及时性与可靠性[9]。

(2)灵活性:服务提供方根据系统需要及开发进度灵活地向注册中心注册新服务或部署新机器;只要符合注册中心规定并通过认证的服务调用方都可以灵活地从注册中心申请调用服务。

(3)易用性:使用Dubbo框架部署分布式网站时,只需在Spring框架中进行简单的服务配置,可以将服务调用透明化,降低系统开发的难度[10]。

2 分布式网站架构设计

視频因其具有形式新颖、传播速度快、简单易懂、良好交互等特点成为当前主要的娱乐方式。近几年,在线视频网站已成为当前互联网技术研究热点[11]。用户可以将个人视频上传至视频网站,并可以搜索、观看、点评网站中视频。由于视频占用存储空间较大、视频量与用户量众多、视频网站接入设备多样等因素,采用分布式架构方式设计并实现该视频网站[12]。

2.1 系统需求分析

视频网站业务功能需求分为以下几个模块:①视频浏览模块。用户可以在本模块浏览播放视频,且可以浏览视频列表或使用搜索栏查找喜欢的视频[13];②编辑视频模块。用户可以在本模块执行上传视频、下载视频、点评视频等操作,有管理员权限的用户可以删除视频,对视频添加描述、分类等;③修改用户信息模块。用户登录可以修改用户基本信息,管理员在本模块可以查询用户、添加用户、删除用户,标记用户信息修改用户权限;④注册模块。未注册用户需要在模块中填写用户信息,进行注册操作,根据视频网站业务功能描述,可以将用户划分为管理员、注册会员、游客3种。视频网站业务功能如图2所示。

视频网站界面清晰,功能简单易学。其具有可靠性,网站保证在一段持续较长时间内为用户提供持续稳定的服务[14];其具有一定性,可以保证同一时间为500用户提供视频播放能力;其具有较大存储空间,以保证用户上传视频保存;其具有可扩展性,方便网站后续功能扩充[15]。如果数据量增速过快,可以增加服务器节点降低网站单个服务器的负载压力。

2.2 系统架构设计

根据以上对视频网站需求描述,视频网站采用基于Dubbo框架分布式架构设计,视频网站系统架构设计如图3所示。

整体网站系统业务分为耦合度较低的用户交互部分与业务服务部分。业务服务部分可以按照具体业务内容分为多个模块,方便网站业务调整与扩充。注册中心由广泛应用的zookeeper模块负责,监控中心使用Dubbo框架自带的monitor center模块。在保证网站系统稳定运行同时,提高系统的可靠性与可扩展性。

2.3 系统关键技术实现

(1)下载zookeeper组件、Dubbo框架并安装。

(4)启动Dubbo框架。

经过以上配置,Dubbo框架已经基本搭建完成,使用时启动顺序为先启动zookeeper注册中心,再启动Tomcat服务器。在浏览器中输入Tomcat的访问路径(默认为http://localhost:8088),如果可以在网站中打开图4页面,即说明Dubbo框架可以使用。如图4所示可以看到当前有几个服务注册到中心,有几个调用者在申请服务。通过简单配置,在不干扰网站系统业务的前提下,即可将网站架构部署成为分布式架构。当网站需要增加新服务支持时,只需在zookeeper服务中心注册即可。

(5)网站服务过程。

使用Dubbo框架架构部署视频网站系统启动之后,各项功能服务独立运行并向注册中心注册以备使用,调用服务时使用长连接方式提供服务。例如:会员小明在网站搜索视频顺序如图5所示。

由图5可知,在服务过程中,视频搜索服务通过消息调用方式为前台模块提供服务,双方向监控中心汇报服务运行情况。使得网站数据互相分离,保证数据安全。当视频网站有服务扩充或新业务增加时,可以在网站系统不停机的情况下,直接向注册中心注册扩充,以保证视频网站系统的可靠性与可扩展性。

3 结语

分布式系统架构是当前中大型网站常用的架构方式,通过分布式架构可以使网站具有并发性、可靠性、安全性与可扩展性等优势。本文通过架构设计视频网站案例介绍了Dubbo框架特点与使用方法,并在实际架构部署中加以验证,与原始集中式部署方式相比,使用Dubbo框架架构的视频网站具有更高的查询播放速度,且能够更加便捷的修改添加网站功能。

参考文献:

[1] 崔星灿,禹晓辉,刘洋,等.分布式流处理技术综述[J].计算机研究与发展,2015,52(02):318-332.

[2] 韩曾帆.行业应用网关集群架构的设计与实现[D].沈阳:东北大学,2008.

[3] 龚瑞琴,毕利.基于Web Service的Android技术应用研究[J].电子技术应用,2014,40(01):134-136.

[4] 陶明.一种分布式服务框架的设计与实现[D].北京:北京邮电大学,2013.

[5] 唐婧,蒋毅.以.net为基础的三层架构分布式系统设计[J].电脑开发与应用,2012,25(07):37-39+45.

[6] 何腾蛟.分布式系统测试模型与框架的研究与应用[D].成都:电子科技大学,2009.

[7] 李磊,李娟.Dubbo服务框架技术在学习系统开发中的应用与实践[J].计算机系统应用,2017,26(06):244-248.

[8] 刘先纺.基于Dubbo的网上订餐系统[D].广州:华南理工大学,2016.

[9] 陈晓栋.基于Dubbo分布式框架的信用卡无卡大额分期系统设计[J].信息与电脑:理论版,2017(07):132-135.

[10] 李磊,李娟.Dubbo服务框架技术在学习系统开发中的应用与实践[J].计算机系统应用,2017,26(06):244-248.

[11] 朱锋.基于SSH的在线视频网站设计与实现[D].大连:大连理工大学,2015.

[12] 翟金亭,吴钦卿.基于Dubbo框架的视频分享系统分析[J].中国新通信,2016,18(11):22-23.

[13] 张庆庆.基于Web的视频点播系统的设计与实现[D].北京:北京邮电大学,2011.

[14] 徐悦轩.基于Spring技术的大型视频网站后台上传系统的设计与实现[D].南京:南京大学,2014.

[15] 张莉.图书馆流媒体视频点播系统构架详解[J].现代情报,2005(05):128-131.

(责任编辑:刘亭亭)

猜你喜欢
视频网站系统架构
我国当前视频网站自制脱口秀节目的现状与发展对策研究
我国视频网站自制节目的发展浅析