高并发视频数据处理方法、电子设备、存储介质及系统与流程

文档序号:22179160发布日期:2020-09-11 21:38阅读:150来源:国知局
高并发视频数据处理方法、电子设备、存储介质及系统与流程

本发明涉及视频数据处理技术领域,尤其涉及一种高并发视频数据处理方法、电子设备、存储介质及系统。



背景技术:

智慧城市系统是依托计算机网络、移动通信、计算机电信集成、空间信息、网格管理、城市部件管理等多种数字城市技术,整合应急、公安交警、消防、城管等多方资源,实现各种业务数据交换共享。智慧城市系统能有效地提高政府的城市管理调控和突发应急事件处理能力,为人们提供良好的数字化、智能化、人性化的工作和生活环境,其中城市安全是整个智慧城市的保证,而有效的安全预防手段是整个城市安全保证的核心一环,视频监控系统则是其中不可或缺的部分。

在视频监控系统项目应用中,往往要接收并存储采集频率快、数据量极大的视频数据,还要实时响应对大量视频数据的高并发查看请求。现有对视频数据的处理通过加缓存,然后隔段时间把缓存数据落地到数据库中,然而这种处理方式对数据的安全性和一致性考虑不够,尤其在处理高并发的视频数据时,一旦有些数据丢失就无法挽回,比如缓存中某些数据丢失,此时该数据还没有落地到数据库,就会造成数据库和缓存之间有数据分歧,无法保证一致性,恢复数据时就会有问题。



技术实现要素:

为了克服现有技术的不足,本发明的目的之一在于提供一种高并发视频数据处理方法,其采用锁机制控制将视频数据同时写入缓存服务器和数据库服务器的原子性操作,解决数据的安全性和一致性问题。

本发明的目的之一采用以下技术方案实现:

接收视频数据;

基于锁机制,将所述视频数据写入缓存服务器,同时通过队列服务器写入数据库服务器。

进一步地,所述队列服务器采用多线程机制,每个线程用于处理一组生产者和消费者的事务,所述生产者接收所述视频数据,所述消费者将所述视频数据写入所述数据库服务器。

进一步地,接收视频数据后,检测所述视频数据的数据量和所述队列服务器的线程数量,当所述数据量与所述线程数量的比值大于等于线程阈值时,新增线程。

进一步地,接收视频数据后,检测所述视频数据的数据量,当所述数据量大于性能阈值时进行分库,新增缓存服务器和数据库服务器。

进一步地,所述缓存服务器中的每条视频数据标注失效时间,所述缓存服务器保存当前时间小于所述失效时间的视频数据。

进一步地,每个缓存服务器维护一张缓存索引表,每个数据库服务器维护一张数据库索引表,每张索引表中的key值是每条视频数据的传输时间戳,每张索引表中的value值是每条视频数据在缓存服务器或数据库服务器的位置。

进一步地,接收查看请求;

根据目标传输时间查找所述缓存索引表,判断是否在所述缓存索引表中找到与所述目标传输时间对应的key值;

若是,则从所述缓存服务器中返回目标视频数据;

若否,则查找所述数据库索引表,从所述数据库服务器中返回所述目标视频数据,并将所述目标视频数据写入所述缓存服务器。

本发明的目的之二在于提供执行发明目的之一的电子设备,其包括处理器、存储介质以及计算机程序,所述计算机程序存储于存储介质中,所述计算机程序被处理器执行时本发明目的之一的高并发视频数据处理方法。

本发明的目的之三在于提供存储发明目的之一的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明目的之一的高并发视频数据处理方法。

本发明的目的之四在于提供一种高并发视频数据处理系统,其通过负载均衡服务器分发自终端接收到的视频数据,由处理与控制服务器根据分发到的视频数据的数据量,将视频数据同时写入缓存服务器和数据库服务器,解决数据的安全性和一致性问题。

本发明的目的之四采用以下技术方案实现:

一种高并发视频数据处理系统,其包括:负载均衡服务器、多个处理与控制服务器、缓存服务器、队列服务器、数据库服务器;

所述负载均衡服务器,用于接收视频数据;分发所述视频数据至多个所述处理与控制服务器;

所述处理与控制服务器,用于基于锁机制,将所述分发到的视频数据写入所述缓存服务器,同时通过所述队列服务器写入所述数据库服务器;检测分发到的视频数据的数据量和所述队列服务器的线程数量;当所述数据量与所述线程数量的比值大于等于线程阈值时,新增线程;当所述数据量大于性能阈值时,新增缓存服务器和数据库服务器。

相比现有技术,本发明的有益效果在于:

本发明采用锁机制的原子性操作,将视频数据写入缓存服务器的同时,通过队列服务器将视频数据写入数据库服务器,保证数据库服务器和缓存服务器中写入数据的一致性,提高大量视频数据存储的稳定性,解决了因隔断时间把缓存服务器中的数据落地到数据库服务器而导致的数据分歧问题。

附图说明

图1为本发明实施例一的高并发视频数据处理方法流程图;

图2为本发明实施例四的高并发视频数据处理方法流程图;

图3为本发明实施例五的电子设备的结构框图。

具体实施方式

以下将结合附图,对本发明进行更为详细的描述,需要说明的是,以下参照附图对本发明进行的描述仅是示意性的,而非限制性的。各个不同实施例之间可以进行相互组合,以构成未在以下描述中示出的其他实施例。

实施例一

实施例一提供了一种高并发视频数据处理方法,旨在通过采用锁机制控制将视频数据同时写入缓存服务器和数据库服务器的原子性操作,保证数据库服务器和缓存服务器中写入数据的一致性,提高大量视频数据存储的稳定性,解决了因隔断时间把缓存服务器中的数据落地到数据库服务器而导致的数据分歧问题。

请参照图1所示,一种高并发视频数据处理方法,包括以下步骤:

s110、接收视频数据。

在视频监控系统项目的实际应用中,有多个采集终端同时高频率地采集视频数据,因此会产生多个采集终端高并发的大量视频数据。采集终端包括但不限于采集监控视频数据的单片机、微型机。大量视频数据通过负载均衡服务器分发到多个处理与控制服务器,防止单个处理与控制服务器处理过大的视频数据,而导致延时甚至宕机。每个处理与控制服务器接收由负载均衡服务器分发到的视频数据,对视频数据进行处理。

s120、基于锁机制,将视频数据写入缓存服务器,同时通过队列服务器写入数据库服务器。

如果将视频数据直接落地到数据库服务器,会造成数据库服务器连接异常,因此先将视频数据写入队列服务器,由队列服务器将大量的视频数据落地到数据库服务器。队列服务器对大量视频数据起缓冲作用,避免数据库服务器连接异常,提高大量视频数据存储的稳定性。

为了保证数据库服务器与缓存服务器中的数据一致,针对不同程序设计语音实现的代码程序进行优化,均可采用锁机制对视频数据写入数据库服务器和缓存服务器实现原子性操作,保证视频数据同时能够写入,如果视频数据写入数据库服务器或缓存服务器失败,则另一方也不会写入。数据库服务器备份所有的视频数据,当缓存服务器有数据丢失时,可以作为备份源快速恢复丢失数据,提高大量视频数据存储的稳定性。

优选地,当视频数据同时写入失败时,发送异常信息给日志服务器,方便对写入失败的视频数据进行追溯和分析,进一步提升稳定性。

实施例二

实施例二是在实施例一基础上进行的改进,根据视频数据的数据量和队列服务器的线程数量,定量增加线程,保证数量视频数据高效落地备份,提升存储的稳定性。

队列服务器采用多线程机制,每个线程用于处理一组生产者和消费者的事务,生产者接收视频数据,消费者将视频数据落地到数据库服务器中。当线程中只有一个生产者和一个消费者时,只有生产者放入数据后消费者才能读取,消费者拿到数据后生产者才去生产,进而实现数据同步;当生产者接收数据时,消费者不能落地数据,或者当消费者落地数据时,生产者不能接收数据,否则导致两者都存/取数据失败,进一步保证写入队列服务器和缓存服务器的数据一致,提升存储的稳定性。

接收视频数据后,检测视频数据的数据量q、队列服务器中生产者和消费者组数n(即线程数量),当数据量q与生产者和消费者组数n的比值大于等于线程阈值wt时,即时,增加至少组的生产者和消费者,即新增个线程,进而保证大量的视频数据可以及时地落地到数据库服务器,提高数据存储的稳定性。线程阈值wt可以根据视频监控系统项目中的实际业务需求预先设定。大量视频数据通过队列服务器中的各个线程落地到数据库服务器中。

实施例三

实施例三是在实施例一和/或二的基础上进行的改进,根据视频数据的数据量增加缓存服务器和数据库服务器,针对大量视频数据实现扩容,进一步提升存储的稳定性。

性能阈值可以根据视频监控系统项目中的实际业务需求预先设定,在接收视频数据后,当视频数据的数据量大于该性能阈值时,缓存服务器和数据库服务器对数据的存储性能下降,此时新增缓存服务器和数据库服务器,实现存储容量的横向扩展,然后对视频数据进行存储,将视频数据分开存储到不同的缓存和数据库,可以进一步提升大量视频数据存储的稳定性,也便于快速响应视频查找。为了有效控制成本,同时避免缓存服务器不会因存储的数据量过大而导致宕机,优选地,缓存服务器中的每条视频数据标注失效时间,缓存服务器只保存当前时间小于失效时间的视频数据,保证缓存最新一段时间的监控视频数据,当有视频查看请求时,可以从缓存服务器中拿取数据快速响应。

实施例四

实施例四是在实施例三基础上进行的改进,根据目标传输时间先后查找缓存索引表和数据库索引表,可以实时响应高并发的数据查询请求。

为了进一步提高存储的稳定性,每个缓存服务器维护一张缓存索引表,每个数据库服务器维护一张数据库索引表,每张索引表中的key值是每条视频数据的传输时间戳,每张索引表中的value值是每条视频数据在缓存服务器或数据库服务器的位置。每个缓存服务器和数据库服务器通过维护各自的索引表,也可以快速响应视频查看请求。

请参照图2所示,本实施例的高并发视频数据处理方法包括以下步骤:

s210、接收查看请求。

当有多个输出终端同时提出查看大量视频数据的请求时,会产生高并发的查看请求。该输出终端可以是展示监控数据的手机或平板上的客户端或web浏览器。高并发的查看请求通过负载均衡服务器分发到多个处理与控制服务器,防止单个处理与控制服务器处理大量查看请求,而导致延时甚至宕机。每个处理与控制服务器接收由负载均衡服务器分发到的查看请求,对查看请求进行响应。s220、根据目标传输时间查找缓存索引表,判断是否在缓存索引表中找到与目标传输时间对应的key值。

每条视频数据通过不同的缓存服务器或数据库服务器存储后,为了保证每条视频数据有唯一对应的key值,每条视频数据的key值采用传输时间戳加数据库表序号加bigdata-hash的编码方案,从而可以根据目标视频数据的传输时间,准确地查找到该目标视频数据。

s230、若是,则从缓存服务器中返回目标视频数据。如果目标传输时间在最新一段时间内的,可以直接查询缓存索引表中的key值,得到目标视频数据在缓存服务器的位置,进而返回目标视频数据,完成对查看请求的响应。这样可以加快对高并发查看请求的响应速度,大大提高终端的并发访问量,满足后续业务操作的需求。

s240、若否,则查找数据库索引表,从数据库服务器中返回目标视频数据,并将目标视频数据写入缓存服务器。

如果没有在缓存索引表中找到与目标传输时间对应的key值,说明目标传输时间不在最新一段时间内或者缓存服务器中的目标视频数据意外丢失,此时查询数据库索引表中的key值,进而获得数据库服务器中的目标视频数据,完成对查看请求的响应。同时将目标视频数据再写入到缓存服务器中,不需要停止服务就可以直接恢复缓存数据,方便对终端进行第二次响应。

实施例五

图3为本发明实施例五提供的一种电子设备的结构示意图,如图3所示,该电子设备包括处理器310、存储器320、输入装置330和输出装置340;计算机设备中处理器310的数量可以是一个或多个,图3中以一个处理器310为例;电子设备中的处理器310、存储器320、输入装置330和输出装置340可以通过总线或其他方式连接,图3中以通过总线连接为例。

存储器320作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的高并发视频数据处理方法对应的程序指令/模块。处理器310通过运行存储在存储器320中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述实施例一至实施例四的高并发视频数据处理方法。

存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器320可进一步包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置330可用于接收视频数据、查看请求等。输出装置340可包括显示屏等显示设备。

实施例六

本发明实施例六还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行高并发视频数据处理方法,该方法包括:

接收视频数据;

基于锁机制,将所述视频数据写入缓存服务器,同时通过队列服务器写入数据库服务器。

优选地,接收视频数据后,检测所述视频数据的数据量和所述队列服务器的线程数量,当所述数据量与所述线程数量的比值大于等于线程阈值时,新增线程。

优选地,接收视频数据后,检测所述视频数据的数据量,当所述数据量大于性能阈值时进行分库,新增缓存服务器和数据库服务器。

优选地,每个缓存服务器维护一张缓存索引表,每个数据库服务器维护一张数据库索引表,每张索引表中的key值是每条视频数据的传输时间戳,每张索引表中的value值是每条视频数据在缓存服务器或数据库服务器的位置。

优选地,接收查看请求;

根据目标传输时间查找所述缓存索引表,判断是否在所述缓存索引表中找到与所述目标传输时间对应的key值;

若是,则从所述缓存服务器中返回目标视频数据;

若否,则查找所述数据库索引表,从所述数据库服务器中返回所述目标视频数据,并将所述目标视频数据写入所述缓存服务器。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于高并发视频数据处理方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例七

本实施例七是对应上述实施例的高并发视频数据处理方法的一种高并发视频数据处理系统,通过处理与控制服务器根据分发到的视频数据的数据量,将视频数据同时写入缓存服务器和数据库服务器,解决数据的安全性和一致性问题,提高大量视频数据存储的稳定性。

一种高并发视频数据处理系统,其包括:负载均衡服务器、多个处理与控制服务器、缓存服务器、队列服务器、数据库服务器。

负载均衡服务器,用于接收视频数据;分发视频数据至多个处理与控制服务器;

处理与控制服务器,用于基于锁机制,将分发到的视频数据写入缓存服务器,同时通过队列服务器写入数据库服务器;检测分发到的视频数据的数据量和队列服务器的线程数量;当数据量与线程数量的比值大于等于线程阈值时,新增线程;当数据量大于性能阈值时,新增缓存服务器和数据库服务器。

负载均衡服务器可以连接多个采集终端或输出终端,视频数据通过视频监控系统中的采集终端得到,采集终端可以是单片机、微型机等,输出终端可以是展示监控数据的手机或平板上客户端或web浏览器,当输出终端提出查看数据请求时,将目标视频数据返回输出终端进行展示。负载均衡服务器连接多个处理与控制服务器,将高并发的视频数据或查看请求分发到各个处理与控制服务器,防止单个处理与控制服务器处理过大的数据或请求,导致延时甚至宕机。处理与控制服务器支持横向扩展,可以响应不同量级的请求。

处理与控制服务器连接至少一个缓存服务器,并通过队列服务器连接数至少一个数据库服务器。缓存服务器和数据库服务器可以根据视频数据的数据量横向扩展,提升大量视频数据存储的稳定性。

优选地,该高并发视频数据处理系统还包括日志服务器,用于记录整个系统的异常行为日志,日志服务器连接系统中的其他各服务器。

优选地,每个缓存服务器维护一张缓存索引表,每个数据库服务器维护一张数据库索引表,每张索引表中的key值是每条视频数据的传输时间戳,每张索引表中的value值是每条视频数据在缓存服务器或数据库服务器的位置。负载均衡服务器用于接收高并发的查看请求,分发查看请求至多个处理与控制服务器;

处理与控制服务器,用于接收分发到的查看请求;

根据目标传输时间查找性能阈值缓存索引表,判断是否在性能阈值缓存索引表中找到与性能阈值目标传输时间对应的key值;

若是,则从性能阈值缓存服务器中返回目标视频数据;

若否,则查找性能阈值数据库索引表,从性能阈值数据库服务器中返回性能阈值目标视频数据,并将性能阈值目标视频数据写入性能阈值缓存服务器。

处理与控制服务器根据目标传输时间先后查找缓存索引表和数据库索引表,可以实时响应高并发的数据查询请求。

值得注意的是,上述高并发视频数据处理方法和系统实施例中,所包括的各个服务器只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能服务器的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1