本申请涉及车端数据处理,尤其涉及一种车端的数据转发方法、装置、设备及存储介质。
背景技术:
1、车联网技术的不断发展,为未来的智能交通和智能出行带来更多可能性,而tbox(telematics box,车载终端)作为一种基本的车载通信组件,在车辆网领域中发挥着至关重要的作用,其集成了多种通信技术,具有通过蜂窝网络与外界进行实时通信的能力。在tbox所支持的通信技术中,mqtt(message queuing telemetry transpor,消息队列遥测传输协议)尤为突出,为车载终端提供了可靠的数据传输通道。mqtt是一种轻量级的发布/订阅消息传输协议,专为低带宽、高延迟或不稳定的网络环境设计,采用简洁的消息格式、灵活的发布/订阅模式以及高效的传输机制,使得车辆之间的实时数据交换、车辆与云端服务器之间的通信、车辆与智能交通系统之间的集成等应用得以高效实现。在相关技术中,通常在车载终端和车云平台之间建立一路mqtt连接通道,以实现车载终端和车云平台之间的通信。
2、然而,随着车联网的应用场景越来越丰富,车载终端需要和云端各种不同的车云平台进行数据交互,呈业务量日益增长,数据传输所需容量剧增的趋势,仅依靠于一路mqtt连接通道难以承载车端和云端之间的大量数据的传输,导致负载过大,数据传输存在堵塞、延迟和数据丢失。
技术实现思路
1、为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
2、鉴于以上所述现有技术的缺点,本申请公开了一种车端的数据转发方法、装置、设备及存储介质,以解决上述mqtt连接通道难以承载大量数据的传输,mqtt连接通道过载的技术问题。
3、第一方面,本申请提供了一种车端的数据转发方法,包括:基于消息队列遥测传输协议在车载终端和云端服务器之间建立预设数量的连接通道;获取所述车载终端中各业务进程下待传输的数据包,每一所述业务进程下每个所述数据包携带有唯一的报文序号且各所述数据包的所述报文序号依次递增;根据所述报文序号和所述预设数量对同一所述业务进程下各所述数据包进行分配,使各所述连接通道分配的所述数据包趋于均衡负载;利用各所述连接通道将分配到的所述数据包转发至云端服务器。
4、于本申请一实施例中,根据所述报文序号和所述预设数量对同一所述业务进程下各所述数据包进行分配,使各所述连接通道分配的所述数据包趋于均衡负载,包括:确定每一所述连接通道的唯一编号;将各所述数据包的所述报文序号分别和所述预设数量进行取模运算,得到各所述数据包对应的运算结果;分别将每一所述运算结果与各所述连接通道的所述编号进行匹配,基于匹配结果发送各所述数据包至相匹配的所述连接通道。
5、于本申请一实施例中,在所述利用各所述连接通道将分配到的所述数据包发至云端服务器之后,还包括:将各所述数据包缓存至第一缓存队列,所述第一缓存队列配置于所述服务器中;对所述第一缓存队列进行遍历,比较所述第一缓存队列中同一所述业务进程下各所述数据包的所述报文序号;基于比对结果对各所述数据包的排序,直至接收到同一所述业务进程传输的全部所述数据包为止。
6、于本申请一实施例中,在所述比较所述第一缓存队列中同一所述业务进程下各所述数据包的所述报文序号之前,还包括:对所述第一缓存队列中各所述数据包的业务标识号进行匹配,同一所述业务进程中所述数据包携带有相同的所述业务标识;若各所述数据包的所述业务标识一致,则确定各所述数据包属于同一所述业务进程。
7、于本申请一实施例中,在所述根据所述报文序号和所述预设数量对同一所述业务进程下各所述数据包进行分配之前,还包括:从第二缓存队列中读取所述业务进程传输的各所述数据包,所述第二缓存队列中按先入先出的方式缓存有各所述数据包;对各所述数据包进行解析,确定每一所述数据包携带的所述报文序号和所述业务标识。
8、于本申请一实施例中,在所述根据所述报文序号和所述预设数量对同一所述业务进程下各所述数据包进行分配之前,还包括:监测各所述连接通道承载的数据量和所述第二缓存队列的内存;若任一所述连接通道承载的所述数据量大于预设数据量阈值,且所述第二缓存队列的内存小于所述预设内存阈值,则将所述第二缓存队列中的所述数据包缓存至第三缓存队列,所述第三缓存队列配置于所述车载终端中;直至所述连接通道承载的所述数据量小于所述预设数据量阈值,将所述第三缓存队列中的所述数据包分配至相匹配的所述连接通道。
9、于本申请一实施例中,所述基于消息队列遥测传输协议在车载终端和云端服务器之间建立预设数量的连接通道,包括:基于消息队列遥测传输协议编写配置文件,所述配置文件至少包括各所述连接通道对应的账户、密码、所述服务器的地址和端口;将所述配置文件写入所述车载终端后,读取所述配置文件以建立各所述连接通道。
10、第二方面,本申请提供了一种车端的数据转发的装置,包括:连接建立模块,用于基于消息队列遥测传输协议在车载终端和云端服务器之间建立预设数量的连接通道;获取模块,用于获取所述车载终端中各业务进程下待传输的数据包,每一所述业务进程下每个所述数据包携带有唯一的报文序号且各所述数据包的所述报文序号依次递增;分配模块,用于根据所述报文序号和所述预设数量对同一所述业务进程下各所述数据包进行分配,使各所述连接通道分配的所述数据包趋于均衡负载;转发模块,用于利用各所述连接通道将分配到的所述数据包转发至云端服务器。
11、第三方面,本申请还提供了一种电子设备,包括:处理器、存储器和通信总线;所述通信总线用于将所述处理器和存储器连接;所述处理器用于执行所述存储器中存储的计算机程序,以实现如上述实施例中所述的车端的数据转发方法。
12、第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,当计算机程序被计算机的处理器执行时,使计算机执行如上述实施例中所述的车端的数据转发方法。
13、本申请的有益效果:本申请提出了一种车端的数据转发方法、装置、设备及存储介质。基于消息队列遥测传输协议在车载终端和云端服务器之间建立预设数量的连接通道;获取车载终端中各业务进程下待传输的数据包,每一业务进程下每个数据包携带有唯一的报文序号且各数据包的报文序号依次递增;根据报文序号和预设数量对同一业务进程下各数据包进行分配,使各连接通道分配的数据包趋于均衡负载;利用各连接通道将分配到的数据包转发至云端服务器。这样,通过在车载终端建立多路连接通道,极大提升了车端和云端之间数据传输的带宽,数据转发的容量和效率高,并且各路连接通道传输数据时趋向于负载均衡,有效避免了传输时数据包存在堵塞、延迟的情况,进一步提升了数据转发的效率,数据转发的实时性和可靠性高;另外,本申请可实现不同业务下数据的同步转发,使得数据转发更具灵活性。
14、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
1.一种车端的数据转发方法,其特征在于,包括:
2.根据权利要求1所述的车端的数据转发方法,其特征在于,根据所述报文序号和所述预设数量对同一所述业务进程下各所述数据包进行分配,使各所述连接通道分配的所述数据包趋于均衡负载,包括:
3.根据权利要求1所述的车端的数据转发方法,其特征在于,在所述利用各所述连接通道将分配到的所述数据包转发至云端服务器之后,还包括:
4.根据权利要求3所述的车端的数据转发方法,其特征在于,在所述比较所述第一缓存队列中同一所述业务进程下各所述数据包的所述报文序号之前,还包括:
5.根据权利要求4所述的车端的数据转发方法,其特征在于,在所述根据所述报文序号和所述预设数量对同一所述业务进程下各所述数据包进行分配之前,还包括:
6.根据权利要求5所述的车端的数据转发方法,其特征在于,在所述根据所述报文序号和所述预设数量对同一所述业务进程下各所述数据包进行分配之前,还包括:
7.根据权利要求1至6任一项所述的车端的数据转发方法,其特征在于,所述基于消息队列遥测传输协议在车载终端和云端服务器之间建立预设数量的连接通道,包括:
8.一种车端的数据转发装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:处理器、存储器和通信总线;所述通信总线用于将所述处理器和存储器连接;所述处理器用于执行所述存储器中存储的计算机程序,以实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序用于使计算机执行如权利要求1至7任一项所述的方法。