CN112749398B - 数据传输通道控制方法和系统 - Google Patents

数据传输通道控制方法和系统 Download PDF

Info

Publication number
CN112749398B
CN112749398B CN201911054623.6A CN201911054623A CN112749398B CN 112749398 B CN112749398 B CN 112749398B CN 201911054623 A CN201911054623 A CN 201911054623A CN 112749398 B CN112749398 B CN 112749398B
Authority
CN
China
Prior art keywords
data
channel
target
memory
target data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911054623.6A
Other languages
English (en)
Other versions
CN112749398A (zh
Inventor
郑志升
张扬
许鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN201911054623.6A priority Critical patent/CN112749398B/zh
Publication of CN112749398A publication Critical patent/CN112749398A/zh
Application granted granted Critical
Publication of CN112749398B publication Critical patent/CN112749398B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请实施例提供了一种数据传输通道控制方法,所述方法包括:接收数据源提供的目标数据;将所述目标数据写入数据传输通道中,所述数据传输通道包括内存通道和磁盘通道;及通过所述内存通道或所述磁盘通道将所述目标数据传输到与所述数据传输通道关联的目标设备中。本申请实施例还提供了数据传输通道控制系统、计算机设备和计算机可读存储介质。本申请实施例在于集合了内存通道和磁盘通道的优点,可实现目标数据在内存通道和磁盘通道中根据的数据通道的切换策略来实现通道的切换,以保证数据在快速传输时不会出现数据丢失的情况。

Description

数据传输通道控制方法和系统
技术领域
本申请实施例涉及计算机领域,尤其涉及一种数据传输通道控制方法、系统、设备及计算机可读存储介质。
背景技术
目前数据传输默认使用内存型通道实现数据的在内存中进行传输,内存通道在数据进行传输时,具有传输速度较快的优点,但在传输过程中出现异常情况且没有及时处理时,会导致数据丢失;而磁盘型通道在数据进行传输时,虽然磁盘通道在数据传输时可以保证数据完整性且不容易出现数据丢失的情况,但是传输速度较慢。
因此,如何在保证数据传输速度的同时,且使得数据传输不会出现数据丢失的情况,从而进一步提高数据传输的效率和数据传输的安全,成为了当前要解决的技术问题之一。
发明内容
本申请实施例的目的是提供一种数据传输通道控制方法、系统、计算机设备及计算机可读存储介质,用于解决数据传输容易出现数据丢失的技术问题。
本申请实施例的一个方面提供了一种数据传输通道控制方法,所述方法包括:接收数据源提供的目标数据;将所述目标数据写入数据传输通道中,所述数据传输通道包括内存通道和磁盘通道;及通过所述内存通道或所述磁盘通道将所述目标数据传输到与所述数据传输通道关联的目标设备中。
可选的,通过所述内存通道或所述磁盘通道将所述目标数据传输到与所述数据传输通道关联的目标设备中,包括:检测所述目标数据的事件数量;对比所述事件数量与预设阈值;及如果所述事件数量大于所述预设阈值,则选择通过所述磁盘通道将所述目标数据传输到所述目标设备中。
可选的,如果所述事件数量不大于所述预设阈值,包括:检测所述内存通道的内存剩余空间大小;对比所述内存剩余空间大小与所述事件数量对应的数据量;如果所述内存剩余空间大小大于所述事件数量对应的数据量,则选择通过所述内存通道将所述目标数据传输到所述目标设备中;及如果所述内存剩余空间大小不大于所述事件数量对应的数据量,则选择通过所述磁盘通道将所述目标数据传输到所述设备中。
可选的,所述方法还包括:当选择所述内存通道将所述目标数据传输到所述目标设备中时,则将所述目标数据中的事件数量以正数形式写入至FIFO队列的尾部;当选择所述磁盘通道将所述目标数据传输到所述目标设备中时,则将所述目标数据中的事件数量以负数形式写入至所述FIFO队列的尾部。
可选的,所述方法还包括:将所述FIFO队列中第一个元素对应的目标数据传输到所述目标设备中,其中:如果所述FIFO队列中第一个元素的数值为正数时,将该第一个元素对应的目标数据从所述内存通道中传输传到目标设备中;如果所述FIFO队列中第一个元素的数值为负数时,将该第一个元素对应的目标数据从所述磁盘通道中传输传到目标设备中;其中,所述第一个元素的数值用于记录内存通道或磁盘通道内待传输数据的事件数量。
可选的,所述方法还包括:监测写入到所述目标设备的目标数据的事件数量,根据所述事件数量更新所述第一个元素的数值:当所述第一个元素的数值更新为零时,则对所述FIFO队列中的各个数值进行移位操作,以将第二个元素中的数值移入到所述第一个元素中。
可选的,所述方法还包括:当监测到数据传输异常时,将所述FIFO队列中存在的各个正数数值对应地修改为绝对值相等的负数数值。
本申请实施例的一个方面又提供了一种数据传输通道控制系统,包括:接收模块,用于接收数据源提供的目标数据;写入模块,用于将所述目标数据写入数据传输通道中,所述数据传输通道包括内存通道和磁盘通道;传输模块,用于通过所述内存通道或所述磁盘通道将所述目标数据传输到与所述数据传输通道关联的目标设备中。
本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现上述的数据传输通道控制方法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上述的数据传输通道控制方法的步骤。
本申请实施例提供的数据传输通道控制方法、系统、设备及计算机可读存储介质,本申请实施例在于集合了内存通道和磁盘通道的优点,可实现目标数据在内存通道和磁盘通道中根据的数据通道的切换策略来实现通道的切换,以保证数据在快速传输时不会出现数据丢失的情况。
附图说明
图1示意性示出了根据本申请实施例的环境应用示意图;
图2示意性示出了根据本申请实施例一的数据传输通道控制方法的流程图;
图3示意性示出了根据本申请实施例二的数据传输通道控制方法的流程图;
图4示意性示出了步骤S312的具体流程图;
图5示意性示出了步骤S312的具体流程图;
图6示意性示出了根据本申请实施例四的数据传输通道控制系统的流程框图;
图7示意性示出了根据本申请实施例三的数据传输通道控制系统的框图;
以及
图8示意性示出了根据本申请实施例四的适于实现数据传输通道控制方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请实施例进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请实施例,并不用于限定本申请实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
图1示意性示出了根据本申请实施例的流式数据传输系统,所述流式数据传输系统在于提供流式的数据传输服务,如用于实时流和离线流两大场景的数据收集和分发。实时流场景,对应于秒级别的数据时效性,主要用于将数据写入到kafka、hbase等数据库中。离线流场景,对应于小时级别或天级别的数据时效性,主要用于将数据写入到hdfs、hive等数据库中。所述流式数据传输系统可以由下几部分组成:数据源1、网络路由层2、数据缓冲层3、数据分发层4、数据存储层5和监控模块6等。
所述数据源1,可以是内部数据源,也可以连接外部数据源的数据接口。所述数据源1中可以有多种格式的数据,例如,APP和Web的上报数据是HTTP(HyperText TransferProtocol,超文本传输协议)格式的数据,服务端的内部通信数据是RPC(Remote ProcedureCall,远程过程调用)格式的数据。
所述网络路由层2,可以通过一个或多个网关实现,用于协议解析、打包和压缩等,以保障数据在不丢失的前提下写入到数据缓冲层3。具体的,所述网络路由层2被配置连接于数据源1,并可以适应各种不同的业务场景和数据协议,例如,被配置用于兼容解析多种协议的数据,诸如基于HTTP(HyperText Transfer Protocol,超文本传输协议)协议的APP和Web数据,和基于RPC协议的服务端的内部通信数据。解析得到的数据可以被转换为标准格式数据库文件并被存储到数据缓冲层3。
所述数据缓冲层3,可以通过消息分发订阅系统或上述系统集群实现。在一些实施例中,数据缓冲层3可以由多套kafka cluster(kafka集群)组成,起到数据削峰填谷的作用。不同重要性、优先级、数据吞吐量的数据,可以被分流到不同的kafka cluster中,以保障不同类型数据的价值,避免系统故障影响整体数据。
数据分发层4,可以由流量分发系统(Collector)实现,用于内容转换和分发存储,即保障数据从数据缓冲层3获取并写入到数据存储层5中对应的存储终端。具体的,所述数据分发层4用于数据的分发落地,支持的分发场景包括HDFS(Hadoop Distributed FileSystem,Hadoop分布式文件系统)、Kafka、Hbase、ES(Elasticsearch)等,而在分发的过程中,由于不同存储终端的数据落地时效性要求可能不同,例如,HDFS的数据写入是按天进行任务的计算和应用,Kafka的数据写入一般是按秒进行任务的计算和应用,通常用于诸如实时推荐、实时计算等场景中。针对数据不同场景的分发要求,数据分发层4可以根据存储终端进行服务分组管理。例如,线上会划分为Kafka Collector组、HDFS Collector组等。不同Collector组会从数据缓冲层3获取相应标签(topic)的数据并分发至下游。
所述数据存储层5,用于存储数据,可以由不同形式的数据库构成,所述数据库可以ES、Hive、Kafka、Hadoop和Hbase等。
所述监控模块6,用于监控整条传输链路中所体现的数据质量,以为所述流式数据传输系统对外传输质量提供监控告警。如何衡量数据的传输质量是衡量所述流式数据传输系统的重要指标之一,例如,所述流式数据传输系统数据丢失率、延迟率、接收数据量、分发数据量等。
为了帮助理解所述数据传输系统的工作原理,下面对其提供的数据传输服务进行介绍:数据源1可以是每条记录为单位形成一条一条的数据,也可以以logId为单位形成一批一批的数据(即,每批数据分别标识有一个logId),通过HTTP、RPC等协议将这些数据上报给网关路由层2,并依次经过网关路由层2、数据缓冲层3进入到数据分发层4,通过数据分发层4将这些数据发到数据存储层5中的存储终端中。
实施例一
图2示意性示出了根据本申请实施例一的数据传输通道控制方法的流程图。本实施例可以被执行在计算机设备2中。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。其中,计算机设备2可以作为流式数据传输系统中网关路由层2的其中一个或多个网关。
如图2所示,该数据传输通道控制方法可以包括步骤S200~S204,其中:
步骤S200,接收数据源提供的目标数据。
所述目标数据可以是基于HTTP(S)、RPC等各类协议的数据。
步骤S202,将所述目标数据写入数据传输通道中,所述数据传输通道包括内存通道和磁盘通道。
其中,内存通道,用于将所述目标数据在内存中进行传输,具有数据传输速度快的优势,但在程序重启更新或者数据分发不畅时,会导致内存不足的情况,且容易出现数据丢失事件;磁盘通道,用于数据本地持久化,但是数据写入速度缓慢,容易导致数据传输延时。
本实施例提供的数据传输通道可以是混合型通道,如SpillableChannel,兼具内存通道(MemoryChannel)和磁盘通道(DiskChannel)的优势,可以为目标数据的传输提供自适应的切换操作。
步骤S204,通过所述内存通道或所述磁盘通道将所述目标数据传输到与所述数据传输通道关联的目标设备中。
在示例性的实施例中,所述计算机设备2还可以配置有用于输出所述目标数据的输出接口,所述输出接口用于接收将从所述内存通道或磁盘通道传输过来的所述目标数据,并将所述目标数据传输到与所述数据传输通道关联的目标设备中,如数据缓冲层的kafka集群中。
在示例性的实施例中,所述内存通道和磁盘通道都可实现数据传输,其中,所述内存通道在数据进行传输时,具有传输速度较快的优点,但在传输过程中出现异常情况且所述异常情况没有得到及时处理时,会导致数据丢失;而所述磁盘通道在数据进行传输时,可以保证数据完整性且不容易出现数据丢失的情况,但是传输速度较慢。不难理解,本申请实施例在于集合了内存通道和磁盘通道的优点,可实现目标数据在内存通道和磁盘通道中根据的数据通道的切换策略来实现通道的切换。
实施例二
图3示意性示出了根据本申请实施例二的数据传输通道控制方法的流程图。
如图3所示,该数据传输通道控制方法可以包括步骤S300~S312,其中:
步骤S300,接收数据源提供的目标数据。
所述目标数据可以是基于HTTP(S)、RPC等各类协议的数据。
步骤S302,检测所述目标数据的事件数量。
在示例性的实施例中,通过计算机设备2对所述目标数据的事件数量(memQueRemaining)的进行实时检测,以得到所述目标数据中事件的具体数量。
步骤S304,对比所述事件数量与预设阈值。如果所述事件数量大于所述预设阈值,进入步骤S306;否则进入步骤S308。
在示例性的实施例中,所述预设阈值为预先设定的数值,所述数值的大小可以根据内存通道的最大传输值来决定。例如,所述内存通道中最大可传输的事件数量为1000,那么该预设阈值可以是1000的百分之五十。将所述目标数据的实际事件数量与所述预设阈值进行比对,以得到所述事件数量与所述预设阈值的大小关系。
步骤S306,选择通过所述磁盘通道将所述目标数据传输到所述目标设备中。
在示例性的实施例中,根据所述事件数量与所述预设阈值的大小关系,确定选择内存通道或选择磁盘通道。例如,当所述事件数量大于所述预设阈值时,所述计算机设备2选择通过所述磁盘通道将所述目标数据传输到所述目标设备中。其中,数据在内存通道中进行数据传输速度要比所述磁盘通道中的传输速度快,但是在内存通道中传输的数据量较大时,所述内存通道的传输性能会降低,所以为了避免出现内存通道的数据传输速度降低的情况,需要对在内存通道中进行数据传输的数据进行大小限定。
步骤S308,检测所述内存通道的内存剩余空间大小。
步骤S310,对比所述内存剩余空间大小与所述事件数量对应的数据量。如果所述内存剩余空间大小大于所述事件数量对应的数据量,进入步骤S312;否则进入步骤S306。
在示例性的实施例中,在所述内存通道有数据在传输时,正在传输的数据的会占用所述内存通道内存空间,所以用所述内存通道的总内存空间大小减去以占用所述内存空间,剩下的就是所述内存剩余空间大小(bytesRemaining)。即所述内存通道中在传输时数据越多,占用的内存空间越大,当所述内存剩余空间大小不大于所述事件数量对应的数据量,则说明内存通道的内存不足,因此可以切换到磁盘通道,选择通过所述磁盘通道将所述目标数据传输到所述设备中。
步骤S312,选择通过所述内存通道将所述目标数据传输到所述目标设备中。
在示例性的实施例中,当所述内存通道中在传输时数据越多,占用的内存空间越大,但是,当所述内存剩余空间大小大于所述事件数量对应的数据量,说明内存可以传输所述目标数据,所述选择通过所述内存通道将所述目标数据传输到所述目标设备中。
如图4所示,该数据传输通道控制方法还可以包括步骤S400~S402,其中:
步骤S400,当选择所述内存通道将所述目标数据传输到所述目标设备中时,则将所述目标数据中的事件数量以正数形式写入至所述FIFO队列的尾部;
示例性的,所述FIFO(First Input First Output,先进先出)队列是一种基于先进先出策略的集合队列。
步骤S402,当选择所述磁盘通道将所述目标数据传输到所述目标设备中时,则将所述目标数据中的事件数量以负数形式写入至所述FIFO队列的尾部。
为了保证数据在传输时保证数据传输的顺序,先存放的数据,要先取出来,这里通过所述FIFO队列实现;当选择所述磁盘通道将所述目标数据传输到所述目标设备中时,为了区别数据是通过哪种通道传输过来的,所以将内存通道中传来的所述目标数据中的事件数量以正数形式写入至所述FIFO队列的尾部,将磁盘通道中传来的所述目标数据中的事件数量以负数形式写入至所述FIFO队列的尾部。由于所述FIFO队列为先进先出的顺序队列,所以在所述FIFO队列中最新存放进的数值在所述FIFO队列中的尾部。
如图5所示,该数据传输通道控制方法还可以包括步骤S500~S506,其中:
步骤S500,将所述FIFO队列中第一个元素对应的目标数据传输到所述目标设备中,其中:
在示例性的实施例中,由于所述FIFO队列为先进先出的顺序队列,所以在所述FIFO队列中最新取出的数值在所述FIFO队列中的头部,即所述第一个元素。
步骤S502,如果所述FIFO队列中第一个元素的数值为正数时,将该第一个元素对应的目标数据从所述内存通道中传输传到目标设备中;
在示例性的实施例中,根据所述FIFO队列中第一个元素的数值的正负值,分别从内存通道和磁盘通道确定该第一个元素对应的目标数据,所以当所述第一个元素的数值为正数时,则需要根据所述第一个元素在内存通道中确定所述目标数据,并将所述目标数据从所述内存通道中传输到输出接口,最后将所述输出接口中的所述目标数据发传输目标设备中。
步骤S504,如果所述FIFO队列中第一个元素的数值为负数时,将该第一个元素对应的目标数据从所述磁盘通道中传输传到目标设备中;
在示例性的实施例中,根据所述FIFO队列中第一个元素的数值的正负值,分别从内存通道和磁盘通道确定该第一个元素对应的目标数据,所以当所述第一个元素的数值为负数时,则需要根据所述第一个元素在磁盘通道中确定所述目标数据,并将所述目标数据从所述磁盘通道中传输到输出接口,最后将所述输出接口中的所述目标数据发传输目标设备中。
步骤S506,其中,所述第一个元素的数值用于记录内存通道或磁盘通道内待传输数据的事件数量。
在示例性的实施例中,监测所述第一个元素在内存通道或磁盘通道中所对应的内待传输数据的事件数量,根据所述内待传输数据的事件数量确定所述第一个元素的数值。
该数据传输通道控制方法还可以包括:监测写入到所述目标设备的目标数据的事件数量,根据所述事件数量更新所述第一个元素的数值:当所述第一个元素的数值更新为零时,则对所述FIFO队列中的各个数值进行移位操作,将第二个元素中的数值移入到所述第一个元素中,将第二个元素中的数值移入到所述第一个元素中,将第三个元素中的数值移入到所述第二个元素中,…。
其中,当所述目标数据中的其中一条事件从所述内存通道中传输传到目标设备中时,则所述目标数据对应的第一个元素的数值减一,当所述第一个元素的数值减到零时,将所述第一个元素的数值从所述第一个元素的中删除;当所述目标数据中的其中一条事件从所述磁盘通道中传输传到目标设备中时,则所述目标数据对应的第一个元素的数值加一,当所述第一个元素的数值加到零时,将所述第一个元素的数值从所述第一个元素的中删除。
该数据传输通道控制方法还可以包括:当监测到数据传输异常时,将所述FIFO队列中存在的各个正数数值对应地修改为绝对值相等的负数数值。
在示例性的实施例中,当监测到数据传输异常时,例如,执行数据传输的程序突然关闭,先将数据传输通道中的全部数据进行传输,同时将所述FIFO队列中的正值元素进行修改,改为负值,表明内存通道中数据已经进行了处理,避免下次重复传输。
为了方便理解,本实施例还提供了数据传输通道控制方法的另一流程图。如图6所示,混合型通道(SpillableChannel)接收来自数据源的目标数据,并检测所述目标数据的事件数量(memQueRemaining);判断memQueRemaining是否大于预设阈值;如果memQueRemaining大于所述预设阈值,则将所述目标数据写入到磁盘通道(DiskChannel)中;如果memQueRemaining不大于所述预设阈值,则检测当前内存通道(MemoryChannel)的剩余内存空间大小(byteRemaining);如果所述目标数据的事件数量大于byteRemaining,则将目标数据写入到MemoryChannel中;如果所述目标数据的事件数量不大于byteRemaining,则将目标数据写入到DiskChannel中。需要说明是,DiskChannel和MemoryChannel可以为队列形式。另外,通过FIFO队列来记录DiskChannel和MemoryChannel被写入的数据量,例如,当目标数据确定写入到DiskChannel时,在FIFO队列的队尾为该次写入操作配置一个初始值为0的变量,每写入一个事件,则该变量减1直至目标数据写入完毕,得到一个最终的数值,该最终的数值为所述目标数据在该次写入操作中写入到DiskChannel中的数据量。
FIFO队列用于根据其内的各个数值来引导输出操作,当FIFO队列的队首为正数时则将MemoryChannel中的数据通过输出接口(Sink)写入到目标设备(kafka)中,每写出一个事件,队首中的数值减1直至数值为0,然后执行FIFO队列的移位操作,经过多次数据写出和移位,用于记录目标数据的写入量的数值从FIFO队列的队尾移位到FIFO队列的队首,此时,需要根据处于队首中的数值(即记录目标数据的写入量的数值)将对应的目标数据从DiskChannel写入到Sink中,每写出一个事件,队首中的数值加1直至数值为0。
实施例三
图7示意性示出了根据本申请实施例三的数据传输通道控制系统的框图,该数据传输通道控制系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
如图7所示,该数据传输通道控制系统600可以包括接收模块610、写入模块620和传输模块630,其中:
接收模块610,用于接收数据源提供的目标数据。
写入模块620,用于将所述目标数据写入数据传输通道中,所述数据传输通道包括内存通道和磁盘通道。
传输模块630,用于通过所述内存通道或所述磁盘通道将所述目标数据传输到与所述数据传输通道关联的目标设备中。
在示例性的实施例中,传输模块630,还用于:检测所述目标数据的事件数量;对比所述事件数量与预设阈值;及如果所述事件数量大于所述预设阈值,则选择通过所述磁盘通道将所述目标数据传输到所述目标设备中。
在示例性的实施例中,传输模块630,还用于:检测所述内存通道的内存剩余空间大小;对比所述内存剩余空间大小与所述事件数量对应的数据量;如果所述内存剩余空间大小大于所述事件数量对应的数据量,则选择通过所述内存通道将所述目标数据传输到所述目标设备中;及如果所述内存剩余空间大小不大于所述事件数量对应的数据量,则选择通过所述磁盘通道将所述目标数据传输到所述设备中。
在示例性的实施例中,传输模块630,还用于:当选择所述内存通道将所述目标数据传输到所述目标设备中时,则将所述目标数据中的事件数量以正数形式写入至FIFO队列的尾部;当选择所述磁盘通道将所述目标数据传输到所述目标设备中时,则将所述目标数据中的事件数量以负数形式写入至所述FIFO队列的尾部。
在示例性的实施例中,传输模块630,还用于:将所述FIFO队列中第一个元素对应的目标数据传输到所述目标设备中,其中:如果所述FIFO队列中第一个元素的数值为正数时,将该第一个元素对应的目标数据从所述内存通道中传输传到目标设备中;如果所述FIFO队列中第一个元素的数值为负数时,将该第一个元素对应的目标数据从所述磁盘通道中传输传到目标设备中;其中,所述第一个元素的数值用于记录内存通道或磁盘通道内待传输数据的事件数量。
在示例性的实施例中,传输模块630,还用于:监测写入到所述目标设备的目标数据的事件数量,根据所述事件数量更新所述第一个元素的数值:当所述第一个元素的数值更新为零时,则对所述FIFO队列中的各个数值进行移位操作,以将第二个元素中的数值移入到所述第一个元素中。
在示例性的实施例中,所述数据传输通道控制系统600还包括检测模块640,所述检测模块640,用于当监测到数据传输异常时,将所述FIFO队列中存在的各个正数数值对应地修改为绝对值相等的负数数值。
实施例四
图8示意性示出了根据本申请实施例四的适于实现数据传输通道控制方法的计算机设备的硬件架构示意图。本实施例中,计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是移动设备,平板设备,膝上型计算机、游戏设备、机顶盒、数字流设备、智能电视、电视盒、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集合群)等。如图8所示,计算机设备2至少包括但不限于:可通过系统总线相互通信链接存储器710、处理器720、网络接口730。其中:
存储器710至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器710可以是计算机设备2的内部存储模块,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器710也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(SmartMedia Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器710还可以既包括计算机设备2的内部存储模块也包括其外部存储设备。本实施例中,存储器710通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如数据传输通道控制方法的程序代码等。此外,存储器710还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器720在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器720通常用于控制计算机设备2的总体操作,例如执行与计算机设备2进行数据交互或者通信相关的控制和处理等。本实施例中,处理器720用于运行存储器710中存储的程序代码或者处理数据。
网络接口730可包括无线网络接口或有线网络接口,该网络接口730通常用于在计算机设备2与其他计算机设备之间建立通信链接。例如,网络接口730用于通过网络将计算机设备2与外部终端相连,在计算机设备2与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(GlobalSystem of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code DivisionMultiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图8仅示出了具有部件710-730的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器710中的数据传输通道控制方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器720)所执行,以完成本发明。
实施例五
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的数据传输通道控制方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的数据传输通道控制方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集合中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集合成电路模块,或者将它们中的多个模块或步骤制作成单个集合成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种数据传输通道控制方法,其特征在于,所述方法包括:
接收数据源提供的目标数据;
将所述目标数据写入数据传输通道中,所述数据传输通道包括内存通道和磁盘通道;及
通过所述内存通道或所述磁盘通道将所述目标数据传输到与所述数据传输通道关联的目标设备中;
当选择所述内存通道将所述目标数据传输到所述目标设备中时,则将所述目标数据中的事件数量以正数形式写入至FIFO队列的尾部;
当选择所述磁盘通道将所述目标数据传输到所述目标设备中时,则将所述目标数据中的事件数量以负数形式写入至所述FIFO队列的尾部。
2.根据权利要求1所述的数据传输通道控制方法,其特征在于,通过所述内存通道或所述磁盘通道将所述目标数据传输到与所述数据传输通道关联的目标设备中,包括:
检测所述目标数据的事件数量;
对比所述事件数量与预设阈值;及
如果所述事件数量大于所述预设阈值,则选择通过所述磁盘通道将所述目标数据传输到所述目标设备中。
3.根据权利要求2所述的数据传输通道控制方法,其特征在于,如果所述事件数量不大于所述预设阈值,包括:
检测所述内存通道的内存剩余空间大小;
对比所述内存剩余空间大小与所述事件数量对应的数据量;
如果所述内存剩余空间大小大于所述事件数量对应的数据量,则选择通过所述内存通道将所述目标数据传输到所述目标设备中;及
如果所述内存剩余空间大小不大于所述事件数量对应的数据量,则选择通过所述磁盘通道将所述目标数据传输到所述设备中。
4.根据权利要求1所述的数据传输通道控制方法,其特征在于,还包括:
将所述FIFO队列中第一个元素对应的目标数据传输到所述目标设备中,其中:
如果所述FIFO队列中第一个元素的数值为正数时,将该第一个元素对应的目标数据从所述内存通道中传输传到目标设备中;
如果所述FIFO队列中第一个元素的数值为负数时,将该第一个元素对应的目标数据从所述磁盘通道中传输传到目标设备中;
其中,所述第一个元素的数值用于记录内存通道或磁盘通道内待传输数据的事件数量。
5.根据权利要求4所述的数据传输通道控制方法,其特征在于,还包括:
监测写入到所述目标设备的目标数据的事件数量,根据所述事件数量更新所述第一个元素的数值:当所述第一个元素的数值更新为零时,则对所述FIFO队列中的各个数值进行移位操作,以将第二个元素中的数值移入到所述第一个元素中。
6.根据权利要求5所述的数据传输通道控制方法,其特征在于,还包括:
当监测到数据传输异常时,将所述FIFO队列中存在的各个正数数值对应地修改为绝对值相等的负数数值。
7.一种数据传输通道控制系统,其特征在于,包括:
接收模块,用于接收数据源提供的目标数据;
写入模块,用于将所述目标数据写入数据传输通道中,所述数据传输通道包括内存通道和磁盘通道;
传输模块,用于通过所述内存通道或所述磁盘通道将所述目标数据传输到与所述数据传输通道关联的目标设备中;所述传输模块还用于:当选择所述内存通道将所述目标数据传输到所述目标设备中时,则将所述目标数据中的事件数量以正数形式写入至FIFO队列的尾部;当选择所述磁盘通道将所述目标数据传输到所述目标设备中时,则将所述目标数据中的事件数量以负数形式写入至所述FIFO队列的尾部。
8.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1~6中任一项所述的数据传输通道控制方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1~6中任一项所述的数据传输通道控制方法的步骤。
CN201911054623.6A 2019-10-31 2019-10-31 数据传输通道控制方法和系统 Active CN112749398B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911054623.6A CN112749398B (zh) 2019-10-31 2019-10-31 数据传输通道控制方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911054623.6A CN112749398B (zh) 2019-10-31 2019-10-31 数据传输通道控制方法和系统

Publications (2)

Publication Number Publication Date
CN112749398A CN112749398A (zh) 2021-05-04
CN112749398B true CN112749398B (zh) 2022-10-25

Family

ID=75645428

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911054623.6A Active CN112749398B (zh) 2019-10-31 2019-10-31 数据传输通道控制方法和系统

Country Status (1)

Country Link
CN (1) CN112749398B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107992432A (zh) * 2017-11-28 2018-05-04 福建中金在线信息科技有限公司 一种数据缓存的方法及终端设备
CN108491161A (zh) * 2018-03-13 2018-09-04 深圳市图敏智能视频股份有限公司 一种高效多通道预分配磁盘录像方法
CN109597568A (zh) * 2018-09-18 2019-04-09 天津字节跳动科技有限公司 一种数据存储方法、装置、终端设备及存储介质
CN109756581A (zh) * 2019-03-06 2019-05-14 珠海金山网络游戏科技有限公司 一种文件传输系统及方法、一种计算设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6925526B2 (en) * 2002-10-31 2005-08-02 International Business Machines Corporation Method and apparatus for servicing mixed block size data access operations in a disk drive data storage device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107992432A (zh) * 2017-11-28 2018-05-04 福建中金在线信息科技有限公司 一种数据缓存的方法及终端设备
CN108491161A (zh) * 2018-03-13 2018-09-04 深圳市图敏智能视频股份有限公司 一种高效多通道预分配磁盘录像方法
CN109597568A (zh) * 2018-09-18 2019-04-09 天津字节跳动科技有限公司 一种数据存储方法、装置、终端设备及存储介质
CN109756581A (zh) * 2019-03-06 2019-05-14 珠海金山网络游戏科技有限公司 一种文件传输系统及方法、一种计算设备及存储介质

Also Published As

Publication number Publication date
CN112749398A (zh) 2021-05-04

Similar Documents

Publication Publication Date Title
CN112507029B (zh) 数据处理系统及数据实时处理方法
CN111966289B (zh) 基于Kafka集群的分区优化方法和系统
CN112751772B (zh) 数据传输方法和系统
CN109918349A (zh) 日志处理方法、装置、存储介质和电子装置
CN112019605B (zh) 数据流的数据分发方法和系统
US11734077B2 (en) Evaluation device, evaluation method and evaluation program
CN112367384A (zh) 基于Kafka集群的动态限速方法、装置以及计算机设备
CN110806960A (zh) 信息处理方法、装置及终端设备
CN112751722B (zh) 数据传输质量监控方法和系统
CN112019604B (zh) 边缘数据传输方法和系统
CN112749398B (zh) 数据传输通道控制方法和系统
CN109284257B (zh) 一种日志写入方法、装置、电子设备及存储介质
CN109831335B (zh) 一种数据监控方法、监控终端、存储介质及数据监控系统
CN116781787A (zh) 异构存储全局管理调度方法和系统、电子设备及存储介质
CN112256454B (zh) 消息延时处理方法和系统
CN112968817B (zh) 一种数字信息传输中的丢包数据统计方法及终端
CN112749142A (zh) 句柄管理方法和系统
CN115333917A (zh) 一种cdn异常检测方法及装置
CN111125161A (zh) 数据的实时处理方法、装置、设备及存储介质
CN112653717A (zh) 一种多云协作分布式系统和应用分发的方法
CN115633044B (zh) 报文的处理方法、装置、电子设备及存储介质
CN114598536B (zh) 一种云平台虚拟化数据流量安全监控方法、系统及存储介质
CN117148705B (zh) 基于数据监控分析的设备运行状态检测方法及系统
CN115664940B (zh) 分布式节点指标与告警缓存方法、装置和电子设备
CN113360463B (zh) 数据处理方法、装置、服务器和可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant