本技术涉及计算机,尤其涉及一种数据报文传输的控制方法、装置、终端设备及存储介质。
背景技术:
1、sqlite是一款轻型的数据库,简称sql,其遵守acid的关系型数据库管理系统,它包含在一个相对小的c库中。其中,acid,是指数据库管理系统(dbms)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。目前已经广泛地应用在很多嵌入式产品中,sqlite占用资源非常的低,在嵌入式设备中,可能只需要几百k的内存就够了。
2、跨cpu操作数据库时,如图1所示,目前采用tcp、pcie等协议传输sql信息去操作sqlite数据。当多数据库客户端同时进行读/取访问操作sqlite数据库,处理sql语句需要时间,高并发下sqlite处理时间较久,将会导致重要的sql操作长时间不处理或者丢失。即使采用多进程/线程去处理sql请求,在调用数据库句柄上,会导致多进程之间大量耗时在进程锁等待上,也将造成重要数据处理超时,进而导致数据处理性能降低。
技术实现思路
1、有鉴于此,本技术实施例提供一种数据报文传输的控制方法、装置、终端设备及存储介质,可以有效解决数据报文传输过程中数据处理性能差的问题等。
2、第一方面,本技术实施例提供一种数据报文传输的控制方法,包括:
3、接收进程接收由客户端传输的多个数据报文,并对所有的所述数据报文进行分流处理得到重要消息队列和普通消息队列;其中,所述数据报文包括数据库操作报文和/或系统操作报文;
4、处理进程对所述重要消息队列中的所有所述数据报文和所述普通消息队列中的所有所述数据报文分别进行处理,以得到对应的重要操作指令和普通操作指令;
5、根据所述重要操作指令,或,所述重要操作指令和所述普通操作指令,对数据库或对计算机系统进行操作控制。
6、在一些实施例中,所述对所有的所述数据报文进行分流处理得到重要消息队列和普通消息队列,包括:
7、对每个所述数据报文的报文头进行识别处理,得到每个所述数据报文的优先级值;
8、将每个所述数据报文的所述优先级值与设定阈值进行比较,若所述优先级值大于所述设定阈值,则所述数据报文分流至所述重要消息队列;若所述优先级值小于所述设定阈值,则所述数据报文分流至所述普通消息队列。
9、在一些实施例中,还包括:
10、对分流至所述重要消息队列和所述普通消息队列中的所述数据报文分别按照相同规则进行排序处理;
11、其中,对分流至所述重要消息队列中的所述数据报文进行的排序处理包括:
12、将分流至所述重要消息队列中的第一个数据报文放入所述重要消息队列的第一端;所述第一端为队尾或对队首;
13、循环将分流至所述重要消息队列中的后一个数据报文先放入所述重要消息队列的所述第一端;然后根据所述后一个数据报文的优先级值与相邻节点对应的所述数据报文的优先级值进行比较,以将所述后一个数据报文移动至合适位置;
14、其中,所述合适位置为所述后一个数据报文移动至所述重要消息队列的第二端,或,所述后一个数据报文的优先级值等于相邻节点对应的所述数据报文的优先级值时,所述后一个数据报文的当前移动位置。
15、在一些实施例中,所述根据所述后一个数据报文的优先级值与相邻节点对应的所述数据报文的优先级值进行位置调整,以将所述后一个数据报文移动至合适位置,包括:
16、当所述第一端为队尾时,若所述后一个数据报文的优先级值比相邻前节点对应的所述数据报文的优先级值大时,将所述后一个数据报文移动至所述相邻前节点对应的所述数据报文的前面,直至所述后一个数据报文移动至所述重要消息队列的队头,或,所述后一个数据报文的优先级值等于所述相邻前节点对应的所述数据报文的优先级值或;
17、当所述第一端为队头时,若所述后一个数据报文的优先级值比相邻后节点对应的所述数据报文的优先级值小时,将所述后一个数据报文移动至所述相邻后节点对应的所述数据报文的后面,直至所述后一个数据报文移动至所述重要消息队列的队尾,或,所述后一个数据报文的优先级值等于所述相邻后节点对应的所述数据报文的优先级值。
18、在一些实施例中,按照相同的处理方法对所述重要消息队列中的所有所述数据报文进行处理得到所述重要操作指令和对所述普通消息队列中的所有所述数据报文进行处理得到所述普通操作指令;
19、当所述数据报文为所述数据库操作报文时,对所述重要消息队列中的所述数据库操作报文进行处理得到所述重要操作指令,包括:
20、对数据库操作报文进行解析得到表名字段、操作类型字段和数据内容字段;
21、对表名字段、操作类型字段和数据内容字段分别进行信息提取以对应得到表名信息、操作类型信息和数据内容信息;
22、根据提取得到的表名信息、操作类型信息和数据内容信息进行处理,得到重要操作指令。
23、在一些实施例中,还包括:
24、当所述重要操作指令和/或所述普通操作指令为将所述数据库中的数据库文件读出至客户端时,数据库服务端将读出的多个所述数据库文件通过传输链路传输至所述客户端;
25、发送进程采用反压流量控制策略对所述传输链路上的多个所述数据库文件进行传输控制。
26、在一些实施例中,所述反压流量控制策略包括:
27、按照每个所述数据库文件的优先级值对所述传输链路上的所有所述数据库文件进行排序;
28、当所述传输链路上的所述数据库文件的总数量大于所述传输链路的承载下限数量且小于所述传输链路的承载上限数量时,按照预设控制方法对所述传输链路上的所述数据库文件进行传输控制;所述预设控制方法是将排序前端的所述承载下限数量的所述数据库文件在所述传输链路上正常传输,其余所述数据库文件延长等待发送时间;
29、当所述传输链路上的所述数据库文件的数量大于所述传输链路的承载上限数量时,对于将排序前端的所述承载上限数量的所述数据库文件,按照所述预设控制方法进行传输控制,其余所述数据库文件暂停发送。
30、第二方面,本技术实施例提供一种数据报文传输的控制装置,包括:
31、接收模块,配置为接收客户端传输的多个数据报文,并对所有的所述数据报文进行分流处理得到重要消息队列和普通消息队列;其中,所述数据报文包括数据库操作报文和/或系统操作报文;
32、处理模块,配置为对所述重要消息队列中的所有所述数据报文和所述普通消息队列中的所有所述数据报文分别进行处理得到对应的重要操作指令和普通操作指令;
33、控制模块,配置为根据所述重要操作指令和所述普通操作指令,对数据库或对计算机系统进行操作控制。
34、第三方面,本技术实施例提供一种终端设备,所述终端设备包括处理器和存储器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施上述的数据报文传输的控制方法。
35、第四方面,本技术实施例提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序在处理器上执行时,实施上述的数据报文传输的控制方法。
36、本技术的实施例具有如下有益效果:
37、本技术提出的数据报文传输的控制方法,采用报文的收发分离进行传输,并对接收的数据报文进行分流处理从而得到重要消息队列和普通消息队列,以对数据报文的重要性进行区分;处理进程再对所有的数据报文进行处理得到对应的重要操作指令和普通操作指令,从而有效的对数据库或计算机系统进行操作控制,以减短在高并发数据传输及执行时间,从而提高数据处理性能。