当前位置: 首页 > 专利查询>包丽霞专利>正文

一种基于云平台的海量数据通讯系统技术方案

技术编号:7851356 阅读:165 留言:0更新日期:2012-10-13 08:15
本发明专利技术涉及一种基于云平台的海量数据通讯系统,所述系统包括:多台机器,对其进行联网以调配成云平台,所述云平台至少包括:主服务器,Map服务器,Reduce服务器;其中通过所述主服务器上的数据库管理界面,连接到数据库,读取原始数据列表,再将数据列表存储到Map服务器上;当所述Map服务器执行完任务,并计算出中间结果,需要将该中间结果发送给所述Reduce服务器;当所述Reduce服务器执行完任务,将最终结果发送给所述主服务器;所述主服务器接收最终结果,并用可视化的形式呈现给用户。

【技术实现步骤摘要】

本专利技术涉及计算机领域的数据通讯技术,更具体地,涉及一种云平台环境下的海量数据的通讯系统。
技术介绍
云计算是一种基于因特网的超级计算模式,在远程的数据中心,几万甚至几千万台电脑和服务器连接成一片。因此,云计算甚至可以让你体验每秒超过10亿万次的运算能力,如此强大的运算能力几乎无所不能。随着云计算节点的增加,面对的就是海量数据间的通讯。基于TCP/IP的信息交换是稳定可靠的,但其对底层网络会带来很大的负载。同时,这种信息交换的过程需要软件的支持,某个节点可能同时需要与上百个节点交换信息,这意味着上层软件需要相应地配置大量的进程或者线程用于交互,这对CPU、内存提出了很高的要求。为了提高节点之间信息交换的效率,往往需要重复使用这些TCP/IP连接和线程/进程资源,因为重新建立这种连接的开销很大。但是,如果重复使用这些TCP/IP连接和线程/进程资源,又会长期占据大量资源,可能拖累整个系统。写入或者读取出来的数据需要内存存储。传统通讯方式会频繁地申请和释放内存,这对整个系统的性能和稳定性带来很大的负担。传统的通讯方式是发起方A向接收方B发起请求,要求建立Socket, B接收到消息后给A—个确认反馈,A再发送数据给B,B读取数据,然后启动一个线程去执行数据,当数据执行完,再返回结果给A,A读取结果后关闭Socket。此传统的通讯方式在处理信息的过程中,系统不能释放通讯资源,因为还需要返回处理结果,但事实上处理信息的时候并不会发出或者返回信息,而这一过程可能会很耗时间,这种没有意义的耦合会导致整个系统的处理能力大大降低。
技术实现思路
针对现有技术中的上述问题,本专利技术所要解决的技术问题是能避免云平台中数据通讯的CPU及内存开销大和响应时间慢的弊端,以满足海量数据实时分析的需求,并提高用户体验和整个系统性能。更具体地,本专利技术公开了一种基于云平台的海量数据通讯系统,所述系统包括多台服务器,对其进行联网以调配成云平台,所述云平台至少包括主服务器,Map 服务器,Reduce服务器;其中通过所述主服务器上的数据库管理界面,连接到数据库,读取原始数据列表,再将数据列表存储到Map服务器上;所述主服务器向所述Map服务器发起请求,首先获得所述主服务器与所述Map服务器之间的Socket通道;当所述主服务器获得某一 Socket通道,将数据写入所述Socket通道对应的写内存块,所述写内存块有消息机制通知写线程去写数据到所述Socket通道中;当所述主服务器写出数据之后,所述Map服务器对应的Socket通道有数据送过来,有消息机制通知读线程去把Socket通道中的数据读取出来并存储到读内存块中;当所述Map服务器执行完任务,并计算出中间结果,需要将该中间结果发送给所述Reduce服务器;当所述Reduce服务器执行完任务,将最终结果发送给所述主服务器;所述主服务器接收最终结果,并用可视化的形式呈现给用户。本专利技术所公开的技术方案具有如下的益处,其能提高云计算中海量数据传输交换的稳定性,减少CPU、内存的开销,提高节点间的传输效率。本专利技术的云平台中的海量数据通讯方式,通过减少Socket通道的占用时间,Socket通道可重复使用,Socket通道的读写线程可以共享并得到优化配置,Socket通道不用时刻关闭,根据状态可以释放闲置的Socket 通道,当Socket通道不够时,又可开启新的Socket通道;通过释放网络资源(包括Socket,CPU,内存等)达到减少负载的目的;通过异步通讯,解耦了信息传输与任务处理,达到完全并行工作的目的。可根据环境,设备不同,通过调优参数,灵活配置不同规模的云平台环境。附图说明附图I是本专利技术所述的云平台海量数据通讯系统的结构框图。具体实施例方式为解决本专利技术所述的技术问题,本专利技术提供的在云平台中的海量数据通讯系统,采用的技术方案如下I.云平台中有多台服务器,多台服务器需要通讯。本专利技术中所有提交通讯请求的为发起方,接收请求的为接收方。无论哪台服务器需要请求Socket连接,都称作发起方。无论哪台服务器收到Socket请求,都称作接收方。所述发起方除了发起请求的线程,还有一个管理Socket通道的机制,与专门负责写数据的线程。所述接收方也有一个管理Socket通道的机制,与专门负责读数据的线程,还有一个线程池来负责执行任务。2.服务器A向服务器B发起请求。服务器A为发起方,服务器B为接收方。发起方请求与接收方连接所用的Socket通道。如果该通道没有开通,那就建立新的Socket通道连接。如果Socket通道有,但被占用,那查看是否可以开启新通道。如果用户设置可开启的通道数还未达到,就再开启新通道。如果已达到了通道上限,就等待,直到有通道闲置再使用。Socket通道是单向的。用户如果设置最大通道数为3的话,那服务器A与服务器B直接的最多通道数为6.服务器A向服务器B发送是3条,服务器B向服务器A发送是3条。用户可根据自身的服务器设备配置的状况来设定最大通道数。若服务器配置高,可设大些;若服务器配置低,可设低些。另外,一个发起方可能会有很多个Socket通道,例如通向服务器B的3条,通向服务器C的3条,如此类推。3. 一个Socket通道对应两个存储数据的内存块,一个存储写入的数据,我们称之为写内存块;一个存储读出的数据,我们称之为读内存块。写内存块和读内存块的大小可以配置,缺省是5MB。由于Socket通道是复用的,那么对应的读写内存块也是复用的,也就是说,整个通讯过程并不存在内存的申请或者释放操作,整个通讯过程中系统的内存稳定而且闻效。4.服务器A获得与服务器B通讯的某一 Socket通道,需要写数据到Socket通道中。它不会直接将数据写入Socket通道中,而是将数据写入写内存块中。一旦写入内存块中的数据已满,或者整个写入工作完成,这时写入内存块有一个消息机制通知写数据的线程开始往Socket通道写数据。这样一来,一个发起方可能会有很多个通道,但写数据的线程可以比较少,可能就配置一到两个线程。该线程专门负责写数据到Socket通道中。例如有6个向外发送请求的Socket通道,只有一个写数据到Socket通道的线程,当有消息通知其中一个Socket通道需要写数据,该线程就过来写数据,直到把该Socket通道对应的写内存块中的数据写完之后,又停下来等待,直到又有消息来通知写数据。开始写数据的时候,需要先带上一个标识,再写数据。该标识的作用是为提高安全性。当接受数据的时候,如果没有读到标识,说明该Socket通道的状态不正确,需要立即关闭该Socket通道。当Socket通道被关闭,发起方会监听到异常,会认为该通讯不成功。发起方会重新建立Socket通道。当完成写数据的任务,该通道就可以被释放,以供别的任务使用。因此一个通道建立后,不会被关闭,而是可以复用的。如果一个通道被关闭了,认为它是有异常状况发生,需要重新建立连接。当写完数据,服务器A的任务就完成了,通道资源的占用时间就大大缩短了。5.服务器B为接收方。接收方也有个Socket通道管理机制和专门负责读数据的线程。当Socket里有数据了,也会有消息机制通知读数据的线程来读取数据。该读数据的线程也是多个通道共享一个,整个系统也就配本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于云平台的海量数据通讯系统,所述系统包括 多台服务器,对其进行联网以调配成云平台,所述云平台至少包括主服务器,Map服务器,Reduce服务器;其中 通过所述主服务器上的数据库管理界面,连接到数据库,读取原始数据列表,再将数据列表存储到Map服务器上; 所述主服务器向所述Map服务器发起请求,首先获得所述主服务器与所述Map服务器之间的Socket通道; 当所述主服务器获得某一 Socket通道,将数据写入所述Socket通道对应的写内存块,所述写内存块有消息机制通知写线程去写数据到所述Socket通道中; 当所述主服务器写出数据之后,所述Map服务器对应的Socket通道有数据送过来,有消息机制通知读线程去把Socket通道中的数据读取出来并存储到读内存块中; 当所述Map服务器执行完任务,并计算出中间结果,需要将该中间结果发送给所述Reduce服务器; 当所述Reduce服务器执行完任务,将最终结果发送给所述主服务器; 所述主服务器接收最终结果,并用可视化的形式呈现给用户。2.根据权利要求I的基于云平台的海量数据通讯系统,其中所述...

【专利技术属性】
技术研发人员:包丽霞
申请(专利权)人:包丽霞
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1