一种基于微服务通信架构的流式数据的传输方法技术

技术编号:39418144 阅读:13 留言:0更新日期:2023-11-19 16:08
本发明专利技术提供一种基于微服务通信架构的流式数据的传输方法,包括以下步骤:1)定义基于RPC协议的请求协议;2)执行上传文件;3)执行下载文件;4)服务端与客户端在完成传输之后分别关闭流通道并释放通道资源;在传统的微服务通信架构中,提供一种简单可靠的流式数据传输方式,并为该方式提供一套接口,该传输方式能够持续稳定的做大数据量传输,包括文件、音视频流、自定义二进制协议的传输,传输过程中不会影响正常的微服务调用请求的实时性,且在传输完成之后能够关闭该流式数据传输的通道,不会造成资源浪费。造成资源浪费。造成资源浪费。

【技术实现步骤摘要】
一种基于微服务通信架构的流式数据的传输方法


[0001]本专利技术涉及微服务通信架构中数据传输方法的
,具体涉及一种基于微服务通信架构的流式数据的传输方法。

技术介绍

[0002]传统的微服务通信架构中基本是由 RPC和 RESTful两种通信协议组成,没有专门的流式数据的传输协议;当需要进行文件传输时,一般会选择RESTful协议,通过传输格式来进行服务间的传输。
[0003]RESTful标准通过HTTP协议进行通讯,常见的支持类型为html,json,图片格式等。当需要传输自定义二进制数据或者视频流等常见的二进制数据时,通常需要将二进制数据编码为base64格式再发送,接收端收到之后再通过base64格式进行解码。
[0004]当传输文件很大时,通常需要使用chunk等进行分包发送,接收端在收到数据之后再拼包生成最终的文件。
[0005]现有的微服务通信架构中数据传输过程尚存在以下缺陷及不足:1)RESTful标准中,HTTP协议通常是ASCII格式的协议,对于二进制数据的支持较为麻烦。
[0006]2)HTTP协议通信时会带有大量字节的头部信息,占用了原本应该是传输数据内容的空间。
[0007]3)发送与接收端的二进制编码与解码浪费了大量的CPU算力。
[0008]因此,亟需提供一种基于微服务通信架构的流式数据的传输方法以解决上述现有技术中存在的缺陷与不足。

技术实现思路

[0009]为了解决现有技术中存在的缺陷与不足,本专利技术提供了一种基于微服务通信架构的流式数据的传输方法。
[0010]本专利技术提供的具体方案为:一种基于微服务通信架构的流式数据的传输方法,其特征在于:包括以下步骤:1)定义基于RPC协议的请求协议;2)执行上传文件时,2.1)服务端与客户端约定上传文件的url;2.2)客户端通过请求协议向服务端发送上传文件请求;2.3)服务端收到上传文件请求后,创建流通道并将流通道号返回给客户端;2.4)客户端收到服务端返回的流通道号后,根据该流通道号创建客户端连接句柄,启动文件读取数据并循环发送到服务端,发送完成之后断开连接;2.5)服务端收到客户端的连接事件时,执行连接并开始循环接收数据并将接收的数据写入本地创建的文件中;当连接断开或接收的数据长度超出预设长度时,停止循环接
收,并判断接收数据是否正确;3)执行下载文件时,3.1)服务端与客户端约定下载文件的url;3.2)客户端通过请求协议向服务端发送下载文件请求;3.3)服务端收到下载文件请求后,创建流通道并将流通道号返回给客户端;3.4)客户端收到服务端返回的流通道号后,根据该流通道号创建客户端连接句柄,循环接收数据并将接收的数据写入本地创建的文件中;当连接断开或接收的数据长度超出预设长度时,停止循环接收,并判断接收数据是否正确;3.5)服务端收到客户端的连接事件时,执行连接并启动文件读取且循环发送到客户端,发送完成之后断开连接;4)服务端与客户端在完成传输之后分别关闭流通道并释放通道资源。
[0011]作为本专利技术的进一步优选实施方式,所述步骤1)中,基于TCP传输协议定义请求协议,且定义的请求协议中至少包括有url、接口名、及调用参数。
[0012]作为本专利技术的进一步优选实施方式,所述步骤2.1)中,服务端与客户端约定上传文件的url为/upload。
[0013]作为本专利技术的进一步优选实施方式,所述步骤2.2)中,客户端向服务端发送的上传文件请求中,需要调用的参数至少包括有文件名、文件长度、及文件的MD5校验码。
[0014]作为本专利技术的进一步优选实施方式,所述步骤2.3)中,服务端收到上传文件请求后,创建流通道包括以下步骤:2.31)创建本地流式套接字,并将其句柄作为流式传输的句柄;2.32)将流式传输的句柄与本地随机端口绑定;2.33)保存该流式传输的句柄,并获取与之绑定的对应端口号;2.34)将端口号作为流通道号返回给客户端;2.35)同时侦听客户端的连接事件。
[0015]作为本专利技术的进一步优选实施方式,所述步骤3.1)中,服务端与客户端约定下载文件的url为/download。
[0016]作为本专利技术的进一步优选实施方式,所述步骤3.2)中,客户端向服务端发送的下载文件请求中,需要调用的参数至少包括有文件名。
[0017]作为本专利技术的进一步优选实施方式,所述步骤3.3)中,服务端收到下载文件请求后,创建流通道包括以下步骤:3.31)创建本地流式套接字,并将其句柄作为流式传输的句柄;3.32)将流式传输的句柄与本地随机端口绑定;3.33)保存该流式传输的句柄,并获取与之绑定的对应端口号;3.34)将端口号作为流通道号返回给客户端;3.35)将文件长度和文件的MD5校验码作为调用参数返回给客户端;3.36)同时侦听客户端的连接事件。
[0018]作为本专利技术的进一步优选实施方式,所述步骤2.4)中,客户端循环发送到服务端的数据数量预设为每次1400字节;所述步骤3.5)中,服务端循环发送到客户端的数据数量预设为每次1400字节。
[0019]作为本专利技术的进一步优选实施方式,所述步骤2.5)及所述步骤3.4)中,通过计算接收到的文件的MD5校验码是否正确判断接收数据是否正确,如果判断结果为不正确则删除对应文件。
[0020]相较于现有技术,本专利技术能够实现的技术效果包括:1)本专利技术提供一种基于微服务通信架构的流式数据的传输方法,在传统的微服务通信架构中,基于RPC传输协议提供一种简单可靠的流式数据传输方式,并为该方式提供一套接口。该传输方式能够持续稳定的做大数据量传输,包括文件、音视频流、自定义二进制协议的传输。传输过程中不会影响正常的微服务调用请求的实时性,且在传输完成之后能够关闭该流式数据传输的通道,不会造成资源浪费。
[0021]2)本专利技术提供一种基于微服务通信架构的流式数据的传输方法,流通道与RPC通信方式分别属于不同的通信通道,在文件传输过程中不会影响基于RPC通信协议的业务的实时性。
[0022]3)本专利技术提供一种基于微服务通信架构的流式数据的传输方法,流式数据通道可以按需创建,传输完成之后即可销毁,不会持续占用连接资源。
[0023]4)本专利技术提供一种基于微服务通信架构的流式数据的传输方法,流通道的创建、传输、释放接口对用户不可见,用户无需关系通道的内部细节。
[0024]5)本专利技术提供一种基于微服务通信架构的流式数据的传输方法,解决了在微服务领域中无法通过简单接口进行二进制文件传输或者传输麻烦等问题,并且做到了文件传输不影响基于RPC通信协议的业务请求的实时性的要求,使用户能够通过 RPC通信协议创建文件传输流通道并通过简单的接口调用进行文件传输。
附图说明
[0025]图1为本专利技术上传文件时的逻辑示意图。
[0026]图2为本专利技术下载文件时的逻辑示意图。
具体实施方式
[0027]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于微服务通信架构的流式数据的传输方法,其特征在于:包括以下步骤:1)定义基于RPC协议的请求协议;2)执行上传文件时,2.1)服务端与客户端约定上传文件的url;2.2)客户端通过请求协议向服务端发送上传文件请求;2.3)服务端收到上传文件请求后,创建流通道并将流通道号返回给客户端;2.4)客户端收到服务端返回的流通道号后,根据该流通道号创建客户端连接句柄,启动文件读取数据并循环发送到服务端,发送完成之后断开连接;2.5)服务端收到客户端的连接事件时,执行连接并开始循环接收数据并将接收的数据写入本地创建的文件中;当连接断开或接收的数据长度超出预设长度时,停止循环接收,并判断接收数据是否正确;3)执行下载文件时,3.1)服务端与客户端约定下载文件的url;3.2)客户端通过请求协议向服务端发送下载文件请求;3.3)服务端收到下载文件请求后,创建流通道并将流通道号返回给客户端;3.4)客户端收到服务端返回的流通道号后,根据该流通道号创建客户端连接句柄,循环接收数据并将接收的数据写入本地创建的文件中;当连接断开或接收的数据长度超出预设长度时,停止循环接收,并判断接收数据是否正确;3.5)服务端收到客户端的连接事件时,执行连接并启动文件读取且循环发送到客户端,发送完成之后断开连接;4)服务端与客户端在完成传输之后分别关闭流通道并释放通道资源。2.根据权利要求1所述的一种基于微服务通信架构的流式数据的传输方法,其特征在于:所述步骤1)中,基于TCP传输协议定义请求协议,且定义的请求协议中至少包括有url、接口名、及调用参数。3.根据权利要求1所述的一种基于微服务通信架构的流式数据的传输方法,其特征在于:所述步骤2.1)中,服务端与客户端约定上传文件的url为/upload。4.根据权利要求1所述的一种基于微服务通信架构的流式数据的传输方法,其特征在于:所述步骤2.2)中,客户端向服务端发送的上传文件请求中,需要调用的参数至少包括有文件名、文件长度、及文...

【专利技术属性】
技术研发人员:王翾弓羽箭韩辉焦进星
申请(专利权)人:南京翼辉信息技术有限公司
类型:发明
国别省市:

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

1