基于Dubbo框架的视频分享系统分析

来源 :中国新通信 | 被引量 : 0次 | 上传用户:zongduzhicai
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】 当今,互联网超高速发展,互联网站点暴增,网站的访问量成指数性激增。适应高并发的网络站点急需建立,目前大型网站的解决高并发访问方式是采用SOA架构体系[1]。本系统选择Dubbo服务框架,实现资源搜索服務,资源分析服务,数据库实现读写分离,redis读写分离。本系统主要介绍基于Dubbo技术开发的分布式视频分享系统。
  【关键字】 Dubbo 分布式架构 负载均衡
  互联网时代的到来催生大量的互联网站点,随着访问量的增加,如何应对高并发带来的压力已成为任何一个大中型网站都必须考虑的问题。视频分享系统就是一个分布式系统[3],它是基于Dubbo服务框架开发的,同时使用了数据库读写分离、redis读写分等离负载均衡技术。
  一、Dubbo架构介绍
  Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成[2]。Dubbo架构共包含五种节点,代表了五种角色,它们是Provider(生产者)、Consumer(消费者)、Registry(注册中心)、Monitor(注册中心)和Container(服务容器)。Provider是暴露服务的服务提供方;Consumer:是调用远程服务的服务消费方;Registry是服务注册与发现的注册中心;Monitor是统计服务的调用次调和调用时间的监控中心;Container: 是服务运行容器。
  二、系统总体设计
  视频分享系统是基于Dubbo服务框架开发的,架构设计的关键是合理地设计消费者和生产者。系统中只有一个消费者:主站。即用户可直接访问的项目,用户所有的服务都直接由主站提供。本系统提供了两个服务:资源搜索服务、资源分析服务。资源搜索服务提供对站内数据的检索功能,资源分析服务是对站内资源进行统计分析的项目。两种服务都为主站提供服务,并且都不直接对用户提供任何功能。系统的数据库使用Mysql集群,缓存使用Redis集群,这样使得系统具有了良好的性能。
  1、资源搜索服务。资源搜索服务向外暴露的接口满足三点:1)可以根据关键字对索引内的资源进行检索;2)支持搜索结果的分页获取;3)给出关键词使用分词器分词后的结果。在具体实现上,接口的内部定义两个枚举型,SORT_FIELD和SOURCE_TYPE,分别表示排序字段和资源类型。资源搜索接口声明一个方法, String类型参数的关键字;type枚举型搜索资源的类型,有MKV(超清)、AVI(普通)、MP4(高清)等取值;sortField也是枚举型参数,表示排序字段,有UPDATE_TIME(更新时间)、CREATE_TIME(上传时间)、NAME(名称);返回值Page类型,SourceDo和PageVo可以被所有可以被所有项目引用,是控制层和service层的主要实体类。
  2、资源分析服务。资源分析在本系统中所占的比重比较小,主要提供的一个功能为分析视频资源受欢迎度。资源分析接口声明一个方法,此方法的参数只有两个,pageNo和pageSize,用于分页获取数据。返回值是Page类型,DownLoadCountSourceDo以聚合的方式对SourceDo进行扩展,而且该实体与SourceDo一样可以被所有项目引用,在服务消费端使用非常方便。
  3、主站设计。主站controller层依赖的接口中与核心业务相关的接口共有7个。其中VideoSearchService是资源搜索服务对外暴露的接口,SourceAnalyzer是资源分析服务对外暴露的接口,SourceService接口声明了与资源管理相关的方法,SourceFileService声明了与视频文件管理相关的方法,SourceReportService声明了与资源举报相关的方法,FileUploadService声明了与资源上传相关的方法,SourceCollectionService声明了与资源收藏相关的方法。
  三、系统功能
  视频资源搜索功能:视频资源搜索过程中,发起一个资源搜索请求,请求将自动分发到sourceController控制器实体,sourceController直接调用本地VideoSearchService的search方法,这里VideoSearchService实体是一个远程服务代理,代理与服务提供端进行通信,服务端运行本地方法得到返回值,再返回到服务消费端,这就是服务调用的整个过程。视频人气排行功能:人气排行榜用例的实现逻辑是,首先Http请求被分发到sourceController控制器实体,sourceController直接调用sourceAnalyzer的getPopularSources方法获取最受欢迎的资源。系统会自动在页面上显示人气排行榜前10名,人气排行榜的推荐就是利用定时任务不断调用sourceAnalyzer的getPopularSources方法,更新servletContext中最受欢迎资源的列表,这样就可以在velocity模板引擎渲染velocity模板的时候直接从内存中快速获取数据了。最新资源功能:最新资源查询的实现是调用最新资源查询调用的接口SourceService在本地实现,不需要远程调用,逻辑与人气排行榜的逻辑是一样的。最新资源也会在系统页面上自动显示前10名,利用定时任务不断从数据库里读取最新数据,刷新内存中的最新资源列表,当客户端请求页面的时候直接将数据渲染到页面上去。资源上传功能:资源上传的实现过程,资源上传分为两步,首先是上传资源,第二步是添加资源信息,每上传一次资源,就需要发起两次http请求,第一次是上传文件,第二次是添加文件信息。
  四、结论
  Dubbo作为一种分布式网站开发的架构,可以与Spring框架无缝集成。具有连通性、健壮性、伸缩性的优点。本网站采用Dubbo框架使得系统能承受更大的并发访问量,具有非常强的应用价值。视频分享系统的开发解决了四个关键问题:1)搭建稳定的Dubbo服务框架运行的环境;2)合理地设计项目间依赖关系,实现模块化开发;3)使用Lucene创建索引,做到索引即时更新;4)使用数据库负载均衡、缓存等技术提升系统的性能。该系统可以动态增加或减少服务来应对不同的访问量,使用了缓存、数据库读写分离等技术加快页面的响应速度,提升用户体验。
  参 考 文 献
  [1](美) Mark D. Hansen :使用Java Web服务构建SOA,电子工业出版社, 2009.03
  [2]何炎祥:分布式操作系统,高等教育出版社,2005
  [3]Nicolai M. Josuttis :SOA in Practice: The Art of Distributed System Design,O’Reilly, 2007.08
其他文献
一、无锡国企的历史沿革和发展现状2005年1月31日,无锡市人民政府国有资产监督管理委员会挂牌组建,作为市政府特设机构履行国有资产出资人职责。成立初期,全市国企主要集中在
成本.是商品价值的重要组成部分.随着商品经济的发展.人们对成本的认识不断深化。在同等条件下.市场竞争取胜的关键在于产品成本.随着现代企业制度的建立和完善.加强财务管理已经成
随着当今社会网络技术和计算机技术的高速发展,嵌入式技术逐渐受社会多个领域所关注,在交通管理、POS网络商务、工业控制、以及家庭智能管理等多个领悟中应用,具有宽阔的应用空间。通过对基于FPGA的嵌入式Zig Bee网关的设计与实现进行研究分析,以此为相关工作提供一定的借鉴作用,更好的服务人们生活。
【摘要】 本文以实现DeviceNet和Modbus现场总线协议转换的DeviceNet通信适配器为例,对其协议结构进行分析并提出了通信模型。设计实现了一款DeviceNet通信适配器,能将Modbus接口的低压电器设备接入到DeviceNet网络中。DeviceNet通信适配器符合DeviceNet一致性测试要求,对其进行了长期运行试验,其软硬件及通信功能均运行正常。  【关键词】 现场总线 通
浦东综合配套改革5年以来,按照国家提出的"三个着力于"和"四个结合"的要求,在国家各部门的大力支持下,经过全市各方的共同努力,形成了良好的改革氛围,取得了扎实的阶段性成果。
<正>干部联村既是贯彻落实群众路线,践行宗旨观念,也是掌握村情民意、锻炼干部基层工作能力的有效途径。2013年以来,义乌市义亭镇党委在深入贯彻落实"打造全科干部,推进全心
安吉,是浙江北部一个极具发展特色的生态县,地处长三角经济圈的几何中心,县域面积l886平方公里。是联合国人居奖唯一获得县,是中国首个生态县,全国首批生态文明建设试点地区。
【正】 面对纺织市场的潮起潮落,盐城金虹集团(建湖纺织厂)坚持走企业规模化、产品系列化之路,从而既增强了企业对市场的抗御力,又提高了对市场的适应力,使集团在激烈的市场
尽快建立规范的社会保险基金运营监督体系,是当前刻不容缓的重要任务.社会保险基金运营监督体系应包括运营机构资格认定和基金运营公司的组建、投资决策监督、不良资产的处置
皮结是有梭织机的易损件。一般来讲新皮结上车使用后在1—1.5个月眼子便磨损或直径超过,但皮结体和铆钉约在2—3个月后才开始断裂损坏。目前我厂有梭织机近1400台,每月有1500