一种内容生产控制方法、装置、设备及存储介质与流程

文档序号:26547882发布日期:2021-09-07 23:51阅读:111来源:国知局
一种内容生产控制方法、装置、设备及存储介质与流程

1.本发明涉及计算机应用技术领域,特别是涉及一种内容生产控制方法、装置、设备及存储介质。


背景技术:

2.在内容(例如,视频、图片、音频等)生产流程中,可以根据业务优先级和量级特点分为不同生产线。例如,视频生产流程中,可以划分为专业制作内容(professional generated content,简称pgc)对应的专业视频生产线、专业用户生产内容(professional user generated content,简称pugc)对应的视频生产线、普通用户生产内容(user generated content,简称ugc)对应的快速视频生产线,各个生产线之间的视频生产互不影响。
3.由于生产各个流程都是异步的以及需要调用其他有限业务资源等,故各个生产流程内部需要排队和限流。针对同一生产线,生产平台通过分布式开放消息系统(rocketmq,rmq)来传递信息,也可以理解为同一生产线按照rmq消息队列的顺序接收消息,该消息内携带待生产内容的原始数据,以依据该待生产内容的原始数据进行内容生产,也可以理解为消费rmq消息队列中消息,以进行内容生产。
4.如此会存在问题,当待生产内容突然增量或者服务方不能及时处理时,则会有rmq消息产生积压。而此时,如果有新的待生产内容,则只能排在rmq消息队列的后面,等待生产平台对已经积压的rmq消息处理完成后,才能对该新的待生产内容进行处理,即会造成生产通道堵塞。
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.可选的,所述确定模块,具体用于获取所述待生产内容的标识信息;基于所述标识信息,确定表示所述待生产内容的优先级顺序的优先级信息。
38.可选的,所述装置还包括:
39.保存模块,用于在所述根据所述配置信息将待拆分原始生产通道拆分为所述待拆分通道数量个虚拟通道之后,保存各个虚拟通道的通道标识,针对每一虚拟通道,所述通道标识包括所述虚拟通道所对应的原始生产通道标识和所述虚拟通道对应的优先级标识;
40.所述第一获取模块,具体用于将所述优先级信息与不同虚拟通道的通道标识进行匹配,若所述优先级信息与一虚拟通道的通道标识匹配,则将与所述优先级信息匹配的通道标识对应的虚拟通道作为所述优先级信息对应的虚拟通道。
41.在本发明实施的又一方面,还提供了一种内容生产控制设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
42.存储器,用于存放计算机程序;
43.处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的方法步骤。
44.在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法步骤。
45.本发明实施例提供的内容生产控制方法、装置、设备及存储介质,可以根据待生产内容的优先级信息,获取优先级信息对应的虚拟通道,利用获取到的虚拟通道中的虚拟生产者将待生产内容对应的原始数据,发送至虚拟通道对应的虚拟队列中,如此,虚拟通道中的虚拟消费者可以根据虚拟队列中的消息进行内容生产。
46.优先级信息表示的优先级顺序与待生产内容的重要程度正相关,即可以理解为根据待生产内容的重要程度获取到对应的虚拟通道,按照待生成内容的重要程度将待生产内容对应的原始数据调度至重要程度对应的虚拟通道,利用该重要程度对应的虚拟通道中的虚拟生产者将待生产内容对应的原始数据,发送至该虚拟通道对应的虚拟队列中,虚拟通
道中的虚拟消费者根据虚拟队列中的消息进行内容生产。如此,能够实现不同优先级的待生产内容生产之间的隔离,避免不同优先级的待生产内容生产的影响。
附图说明
47.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
48.图1为本发明实施例提供的内容生产控制方法的一种流程图;
49.图2为本发明确定优先级信息的流程图;
50.图3为本发明实施例中拆分原始生产通道得到虚拟通道的流程图;
51.图4为本发明实施例中拆分得到的虚拟通道的示意图;
52.图5为本发明实施例提供的重发机制的流程图;
53.图6为本发明实施例提供内容生产控制方法的一种应用示意图;
54.图7为本发明实施例提供内容生产控制方法的另一种应用示意图;
55.图8为本发明实施例提供的内容生产控制装置的一种结构示意图;
56.图9为本发明实施例提供的内容生产控制装置的另一种结构示意图;
57.图10为本发明实施例提供的内容生产控制装置的又一种结构示意图;
58.图11为本发明实施例提供的内容生产控制装置的再一种结构示意图;
59.图12为本发明实施例提供的内容生产控制设备的结构示意图。
具体实施方式
60.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
61.现有技术中,在内容生产过程,如视频生产过程中中,划分不同的生产线,不同生产线之间内容生产互不影响。而同一生产线内容,异步调用多个资源,如编码云、奇谱平台等进行视频生产,即可以理解为,一个生产线对应一套资源,生产线内部不区分节目的重要程度等,是按照顺序依次调用该生产线的资源进行视频生产。但是,同一生产线上,待生产的视频,如节目也是区分重要程度的,如超重点节目、重点节目、普通节目等,现有的这种方式可能会导致重要程度较低的节目的生产对重要程度较高的节目的生产的影响,如普通节目的生产阻塞重点节目的生产。
62.为了解决该问题,本发明实施例提供了划分虚拟通道的方式,通过不同虚拟通道将不同重要程度的内容生产隔离开来,虚拟通道可以理解为队列。
63.本发明实施例中,可以根据待生产内容的优先级信息,获取优先级信息对应的虚拟通道,利用获取到的虚拟通道中的虚拟生产者将待生产内容对应的原始数据,发送至虚拟通道对应的虚拟队列中,如此,虚拟通道中的虚拟消费者可以根据虚拟队列中的消息进行内容生产。
64.优先级信息表示的优先级顺序与待生产内容的重要程度正相关,即可以理解为根据待生产内容的重要程度获取到对应的虚拟通道,按照待生成内容的重要程度将待生产内容对应的原始数据调度至重要程度对应的虚拟通道,利用该重要程度对应的虚拟通道中的虚拟生产者将待生产内容对应的原始数据,发送至该虚拟通道对应的虚拟队列中,虚拟通道中的虚拟消费者根据虚拟队列中的消息进行内容生产。如此,能够实现不同优先级的待
生产内容生产之间的隔离,避免不同优先级的待生产内容生产的影响。
65.同时,相比较于现有通过对生产线再细分的方式(针对同一生产线,可以再进行划分,同一生产线对应的不同重要程度的视频生产对应不同的子生产线,如此可以将不同重要程度的视频的生产区分开来),本发明实施例中不需要针对同一生产线再进行划分,即不需要针对同一生产线对应的不同重要程度的视频生产再进行划分不同的子生产线(不同的生产线均需要配套有其对应的资源,以支持该生产线对应的视频生产,对于已有生产线再划分子生产线就需要再为每一子生产线再配套资源,如此会导致资源的浪费),如此,能够避免因每一子生产线都需要再配套资源而造成的资源浪费。
66.本发明实施例提供的内容生产控制方法可以应用于电子设备。具体地,电子设备可以为服务器、终端等。一种方式中,可以在一电子设备部署消息通道管理系统,通过该消息通道管理系统执行本发明实施例提供的内容生产控制方法。另一种方式中,可以通过多个电子设备组成消息通道管理系统,通过该消息通道管理系统执行本发明实施例提供的内容生控制产方法。
67.本发明实施例提供了一种内容生产控制方法,可以包括:
68.确定待生产内容的优先级信息;优先级信息表示的优先级顺序与待生产内容的重要程度正相关;
69.获取优先级信息对应的虚拟通道;虚拟通道是根据配置信息对原始生产通道拆分得到的;配置信息基于业务需求和/或原始生产通道的服务能力而确定;不同的虚拟通道基于原始生产通道的资源并行地进行内容生产;
70.利用虚拟通道中的虚拟生产者将待生产内容对应的原始数据,发送至虚拟通道对应的虚拟队列中,以使虚拟通道中的虚拟消费者根据虚拟队列中的消息进行内容生产,虚拟队列的消息是携带待生产内容对应的原始数据的消息。
71.本发明实施例中,可以根据待生产内容的优先级信息,获取优先级信息对应的虚拟通道,利用获取到的虚拟通道中的虚拟生产者将待生产内容对应的原始数据,发送至虚拟通道对应的虚拟队列中,如此,虚拟通道中的虚拟消费者可以根据虚拟队列中的消息进行内容生产。
72.优先级信息表示的优先级顺序与待生产内容的重要程度正相关,即可以理解为根据待生产内容的重要程度获取到对应的虚拟通道,按照待生成内容的重要程度将待生产内容对应的原始数据调度至重要程度对应的虚拟通道,利用该重要程度对应的虚拟通道中的虚拟生产者将待生产内容对应的原始数据,发送至该虚拟通道对应的虚拟队列中,虚拟通道中的虚拟消费者根据虚拟队列中的消息进行内容生产。如此,能够实现不同优先级的待生产内容生产之间的隔离,避免不同优先级的待生产内容生产的影响。
73.图1为本发明实施例提供的内容生产控制方法的一种流程图。参见图1,本发明实施例提供的内容生产控制方法,可以包括:
74.s101,确定待生产内容的优先级信息。
75.优先级信息表示的优先级顺序与待生产内容的重要程度正相关。
76.简单理解,待生产内容的重要程度越高,则对应的优先级信息表示的优先级越高;待生产内内容的重要程度越低,则对应的优先级信息表示的优先级越低。
77.一种方式中,可以按照数字的大小表示优先级的高低,如优先级信息为1、2、3等,
数字1表示的优先级最低,即重要程度最低,数字3表示的优先级最高,即重要程度最高。例如,超重点节目对应的优先级信息可以为3,重点节目的优先级信息可以为2,普通节目的优先级信息可以为1。
78.一种可实现方式中,如图2所示,s101可以包括:
79.s1011,获取待生产内容的标识信息。
80.标识信息用于唯一标识待生产内容。例如,待生产内容id、msgkey(消息关键字)等等。
81.s1012,基于标识信息,确定表示待生产内容的优先级顺序的优先级信息。
82.不同的标识信息对应不同的待生产内容,不同的待生产内容对应其重要程度,根据其重要程度,即可确定优先级信息。
83.一种可选的实施例中,可以在获取待生产内容的标识信息后,根据该标识信息判断是否需要通过虚拟通道进行内容生产(如判断该标识信息对应的生产通道是否划分虚拟通道,标识信息对应的待生产内容是否重要等),若否(该标识信息对应的生产通道未划分虚拟通道,标识信息对应的待生产内容重要程度较低等),则直接将待生产内容对应的原始数据发送至默认生产通道,通过该默认生产通道进行内容生产。
84.s102,获取优先级信息对应的虚拟通道。
85.虚拟通道是根据配置信息对原始生产通道拆分得到的。
86.配置信息基于业务需求和/或原始生产通道的服务能力而确定;不同的虚拟通道基于原始生产通道的资源并行地进行内容生产。
87.可以理解,同一原始生产通道可以拆分得到多个虚拟通道,每个虚拟通道均可以调用原始生产通道的资源进行内容生产,或者可以将原始生产通道的资源分配给各个虚拟通道。如此,各个虚拟通道可以并行地基于原始生产通道的资源进行内容生产,即各个虚拟通道并行处理,互不影响。
88.可以基于业务需求和/或原始生产通道的服务能力进行通道拆分。
89.业务需求可以根据经验值等确定或者根据实时地待处理的消息确定,例如,根据经验值原始生产通道1比较容易堵塞,则可以确定原始生产通道1为待拆分原始生产通道,同时,可以根据堵塞的程度确定待拆分的通道数量。或者,可以统计一段时间内发送至原始生产通道的待处理的消息,若发送至一原始生产通道(例如原始生产通道2)的消息数量较多,如占所有消息的70%,可以将该原始生产通道2确定为待拆分原始生产通道,同时,也可以按照发送至该原始生产通道2的数量确定待拆分的通道数量。
90.原始生产通道的服务能力也可以理解为原始生产通道中资源的负载能力,如原始生产通道的服务能力较强,如负载容量达到预设容量值等,则可以将该原始生产通道确定待拆分原始生产通道,其中预设容量值可以根据实际需求来确定。同时,可以确定拆分的虚拟通道的数量,例如,原始生产通道的资源能够同时支撑3个设备调用,则可以将待拆分原始生产通道拆分为3个,等等。
91.具体地,可以基于业务需求和/或原始生产通道的服务能力确定配置信息,根据配置信息进行通道拆分。配置信息可以包括待拆分原始生产通道和待拆分通道数量。
92.原始生产通道可以包括视频生产过程中,pgc对应的专业视频生产线、pugc对应的视频生产线、ugc对应的快速视频生产线,等等。
93.对于一原始生产通道,可以划分得到不同优先级信息对应的虚拟通道,简单理解,虚拟通道对应不同的优先级。如此,当确定待生产内容的优先级信息后,可以得到优先级信息对应的虚拟通道。
94.对于一虚拟通道,该虚拟通道有对应的虚拟生产者、虚拟队列和虚拟消费者,也可以理解为虚拟生产者、虚拟队列和虚拟消费者组成一虚拟通道。
95.本发明实施例中,可以根据业务需求和/或原始生产通道的服务能力实时地对原始生产通道进行拆分,得到多个虚拟通道。
96.或者,也可以预先拆分好虚拟通道,并保存通道标识和对应的虚拟通道,通道标识可以包括虚拟通道所对应的原始生产通道标识和虚拟通道对应的优先级标识,如此,在确定待生产内容的优先级信息后,可以查找对应的虚拟通道。
97.s103,利用虚拟通道中的虚拟生产者将待生产内容对应的原始数据,发送至虚拟通道对应的虚拟队列中,以使虚拟通道中的虚拟消费者根据虚拟队列中的消息进行内容生产。
98.虚拟队列的消息是携带待生产内容对应的原始数据的消息。
99.根据待生产内容的优先级信息,对待生产内容的生产进行调度,即基于不同的优先级信息,将对应的待生产内容的生产调度至不同的虚拟通道。具体地,虚拟生产者用于将待生产内容对应的原始数据,发送至虚拟通道对应的虚拟队列;虚拟消费者用于对虚拟队列中的消息进行消费,也即基于待生产内容对应的原始数据进行内容生产。
100.内容生产可以包括视频生产、文本生产、图片生产等等。
101.一种可实现方式中,内容生产可以通过介质——素材——编辑——成片——转码——发布等流程来完成视频的创作和生产,给用户提供丰富的视频内容。
102.如此,按照待生成内容的重要程度将待生产内容对应的原始数据调度至重要程度对应的虚拟通道,利用该重要程度对应的虚拟通道中的虚拟生产者将待生产内容对应的原始数据,发送至该虚拟通道对应的虚拟队列中,虚拟通道中的虚拟消费者根据虚拟队列中的消息进行内容生产。如此,能够实现不同优先级的待生产内容生产之间的隔离,避免不同优先级的待生产内容生产的影响。能够实现多重优先级节目隔离,解决生产通道阻塞和资源浪费,能够解决同一生产线内部普通节目阻塞重点节目生产的顽固问题。
103.本发明实施例中,可以动态地生成虚拟通道。具体地可以在项目开始时(如准备进行内容生产)或者需要对待生产内容的生产进行调度时,对原始生产通道进行拆分。图3为本发明实施例中拆分原始生产通道得到虚拟通道的流程图。一种可选的实施例中,在s102之前,本发明实施例还可以包括:
104.s301,获取配置信息。
105.配置信息包括待拆分原始生产通道和待拆分通道数量。
106.可以根据实际业务情况,将经常发生堵塞的生产通道确定为待拆分原始生产通道。或者,也可以从提供内容生产服务的生产线中随机选择,并将选择出的生产线作为待拆分原始生产通道。
107.待拆分通道数量可以根据实际业务需要确定,如可以为2、3、4、
……
等等。
108.s302,根据配置信息将待拆分原始生产通道拆分为待拆分通道数量个虚拟通道。
109.其中,根据配置信息将待拆分原始生产通道拆分为待拆分通道数量个虚拟通道可
以理解为,建立待拆分原始生产通道和该原始生产通道对应的虚拟通道之间的对应关系,虚拟通道具体可以通过其通道标识来表示。
110.原始生产通道可以理解为rmq生产

消息队列

消费这种模式的生产通道,可以基于rmq生产

消息队列

消费这种模式动态衍生出多个虚拟通道(虚拟生产者

虚拟队列

虚拟消费者),使得不同重点程度的视频走不通的虚拟通道而进行生产,实现不同重要程度的视频生产之间的隔离,可以避免同一生产线内部普通节目阻塞重点节目。
111.如图4所示,原始生产通道(生产者为producer、消费者为consumer)可以拆分为虚拟通道1(producer_1、topic_1、consumer_1)、虚拟通道2(producer_2、topic_2、consumer_3)、虚拟通道3(producer_3、topic_3、consumer_3)和虚拟通道4(producer_4、topic_4、consumer_4)。
112.具体地,可以保存各个虚拟通道的通道标识,针对每一虚拟通道,通道标识包括虚拟通道所对应的原始生产通道标识和虚拟通道对应的优先级标识。
113.一种可实现方式中,虚拟通道可以表示为生产通道+virtual+优先级信息。例如,原始生产通道为生产通道1,拆分得到3个虚拟通道,包括:生产通道1+virtual+

1,生产通道1+virtual+

2,生产通道1+virtual+

3,

1、

2、

3表示不同的优先级。
114.一种可实现方式中,不同虚拟通道对应不同的优先级,不同虚拟通道对不同优先级的待生产内容进行生产,如不同虚拟通道对不同重要程度的节目进行生产。
115.一种可选的实施例中,可以通过客户端

服务端的架构模式组成消息管理系统。本发明实施例提供的内容生产控制方法可以应用于该消息管理系统。
116.服务端保存配置信息,客户端从服务端获取配置信息,并基于该配置信息进行生产通道的划分。可以在服务端中根据实际业务需求调整配置信息,客户端可以基于调整后的配置信息重新划分生产通道,如此可以实现动态扩充虚拟通道。
117.基于此,s102:获取优先级信息对应的虚拟通道,可以包括:
118.将优先级信息与不同虚拟通道的通道标识进行匹配,若优先级信息与一虚拟通道的通道标识匹配,则将与优先级信息匹配的通道标识对应的虚拟通道作为优先级信息对应的虚拟通道。
119.如此,可以生产原始生产通道对应的虚拟通道,虚拟通道对应优先级信息。按照待生成内容的重要程度将待生产内容对应的原始数据调度至重要程度对应的虚拟通道,即可以利用该重要程度对应的虚拟通道中的虚拟生产者将待生产内容对应的原始数据,发送至该虚拟通道对应的虚拟队列中,虚拟通道中的虚拟消费者根据虚拟队列中的消息进行内容生产。如此,能够实现不同优先级的待生产内容生产之间的隔离,避免不同优先级的待生产内容生产的影响。且虚拟通道可以从项目启动开始就建立好,也可以随用随起,而且可以在不用的时候自动或者手动销毁,动态而且弹性,没有多余的资源耗费。
120.动态创建虚拟topic、生产者、消费者来搭建虚拟通道,也即虚拟生产信息传递通道,既可以解决生产通道阻塞问题也具有自动化扩充、调整的灵活性。
121.同时,动态多通道生产视频增加了生产系统的健壮性,可扩展性,提高生产吞吐量,实现内容生产过程中动态路由的可能,使的生产过程中的可干预性大大提高。
122.一种可选的实施例中,在利用虚拟通道中的虚拟生产者将待生产内容对应的原始数据,发送至虚拟通道对应的虚拟队列中,虚拟通道中的虚拟消费者根据虚拟队列中的消
息进行内容生产,即实现调度之后,还可以保存调度信息,也可以理解为消息发送信息,如对消息进行发送的虚拟生产者、消息发送到的虚拟队列,以及对消息进行消费的虚拟消费者。如此,可以统计每个虚拟通道处理消息的状态,根据该信息可以判断虚拟通道是否堵塞,进而判断是否需要对消息进行重发等。
123.一种可实现方式中,可以通过客户端将消息发送信息上报给服务端,由服务端保存该消息发送信息。如此,可以利用服务端保存的信息判断是否堵塞,进而提供消息重发等功能,如若堵塞则发送至其他空闲通道,以实现“插队消费”。
124.图5为本发明实施例提供的重发机制的流程图。在s102之后,还可以包括:
125.s501,获取预先保存的消息发送信息。
126.消息发送信息包括发送历史生产内容的虚拟生产者、虚拟生产通道以及基于历史生产内容进行内容生产的虚拟消费者。
127.s502,根据消息发送信息判断优先级信息对应的虚拟通道是否堵塞。
128.若优先级信息对应的虚拟通道已堵塞,则执行s503。
129.s503,查找其他空闲虚拟通道,并利用其他空闲虚拟通道中的虚拟生产者将待生产内容对应的原始数据,发送至其他空闲虚拟通道对应的虚拟队列中,以使其他空闲虚拟通道中的虚拟消费者根据虚拟队列中的消息进行内容生产。
130.一种可实现方式中,可以通过客户端向服务端上报消息发送信息,服务端存储消息发送信息,且服务端根据存储的预设时间范围内的消息发送信息进行消息重发、重新分通道等。
131.上报并存储消息发送信息,使得具有消息重发、重新分通道的能力,能够实现即使消息阻塞到队列里也能够通过重新发送消息到其他通道插队消费消息,避免内容生产受到堵塞。
132.一种可选的实施例中,可以搭建开发视频生产通道系统,也可以称之为消息通道管理系统。该消息通道管理系统采用cs架构,主要包含client端(客户端)和server端(服务端),client端和server端基于超文本传输协议(hypertext transfer protocol,http)通信,使用java、springboot(库的集合,能够被任意项目的构建系统所使用)框架开发,client端以spring

boot

starter依赖包的方式提供,上传到公共jfrog仓库,供业务系统使用。该消息通道管理系统可以独立于业务系统,也可以集成于业务系统中。
133.client端:封装并兼容了原始rmq依赖包(即拆分之前的原始生产通道进行消息处理的rmq依赖包),由视频生产通道系统的软件开发工具包(software development kit,sdk),主要完成的工作是在业务系统集成此sdk后可以根据配置动态生产各个优先级的虚拟生产通道,启动虚拟生产者、消费者,提供代理生产者,上报消息生产、消息消费等信息到server端、重新发送消息等功能。
134.client端提供封装原始rmq依赖包的新的rmq(即拆分得到各个等级的虚拟通道后进行消息处理的rmq)的sdk;在项目启动或者在需要时动态生成需要拆分通道的消息的虚拟topic、虚拟消费者、虚拟生产者,这样就组成了一个虚拟通道,生成虚拟通道的数量可以从配置文件中配置或者从server端配置,其中虚拟消费者的消息处理逻辑等同于原始消费者的。
135.具体地,复制原始消费实例:主要是在业务系统启动时,初始化生产通道主要服务
类,服务类会读取springboot配置文件或者查询server端,获取需要配置通道的topic、通道数量等信息,获取信息之后,会生成虚拟topic,如原始topic为dev_mqrouter_test则会生成dev_mqrouter_test_mqr_virtual_1的虚拟topic,然后利用rmq服务应用程序编程接口(application programming interface,api)生成虚拟topic的生产者、消费者并记录生产消费者名称,token等元信息并上报到server端,然后利用applicationcontext.getbeansoftype遍历查询原始topic的消费实例,利用原始topic实例信息主要是消费处理逻辑,提取出来,结合刚才生成的虚拟消费者的元信息,生成虚拟消费者对象,消费处理逻辑等同于原始消费者,然后可以利用registersingleton方式将实例注册到容器里并启动监听。
136.可以利用code生成类库(code generation library,cglib)动态生成原生产者的代理生产者(可以理解为视频生产通道系统中的一个模块),代理生产者负责选择根据节目的优先级选择不同的虚拟生产者将节目消息发送到不同的虚拟topic,供各个虚拟消费者消费处理,即是选择不同的虚拟生产通道,另外代理生产者还具有将消息发送信息上报到server端的功能,以便server端存储消息信息。
137.利用cglib动态代理原始生产者对象,在发送消息的时候进行动态功能增强,主要是判断是否需要分通道、根据视频id,msgkey等信息判断视频生产应该走哪个通道、查找选择或者生成对应虚拟通道的生产者来代理消息的发送,发送到对应的虚拟通道中、上报消息信息如topic,消息id,通道信息,消息内容等到server端,便于跟踪记录,以及后续的消息重新发送。
138.通过cglib提供代理生产者工厂类,可以解决消息生产通道选择的问题,发送信息上报问题,也具有通用型、便捷性,使用者接入成本低的效果。
139.server端:视频生产通道系统的服务端,负责和client端通信,主要的功能是提供原始topic和拆分通道数量等配置信息以及维护信息的更新,接收并缓存以及持久化由client端上报的消息生产、消息消费等信息,提供视频通道信息强制调整、消息重发等补偿功能。
140.server端可以缓存一定时间内的消息发送信息,如果一个生产消息已经阻塞到队列,server端可以通过利用代理生产者重新发送这消息到其他空闲通道,完成“插队消费”。这样就完成了虚拟优先级通道搭建、启动以及应用,从而生产线将具有动态扩充优先级通道及使用不同优先级通道生产不同节目的功能。
141.server端作为独立的服务部署于服务器容器中,和业务解耦,主要实现元信息的配置维护,并存储在数据库和redis中,还有消息发送记录信息的存储,消息内容会存储在hbase作为仓库,以供查询和监控等用。另外实现了动态调整视频通道配置,重发消息,client端健康检查等功能。
142.视频优先级管理模块:生产业务系统提供的,管理并维护视频优先级的功能模块,可以给视频生产通道的选择提供视频优先级信息,来决定是不是走特定的通道生产。
143.如此,业务系统集成通道系统提供的依赖包后,配置好需要分通道的topic等元信息,然后将发送消息的生产者替换为由代理生产者工厂类生成的代理生产者,即可使用通道自动拆分等功能。且其中通过客户端将发送消息信息上报服务端,服务端存储消息信息的方式,使服务端具有消息重发、重新分通道的能力,即使消息阻塞到队列里也能够通过重新发送消息到其他通道插队消费消息。
144.图6为本发明实施例提供内容生产控制方法的一种应用示意图。参照图6,生产业务系统通过生产者mq

router

lib进行内容生产,如通过编辑、生产在、转码过程实现内容生产。
145.生产业务系统与客户端mq

router

client、服务端mq

router

server交互,且可以在redis、mysql、hbase中保存内容生产过程、与客户端mq

router

client、服务端mq

router

server交互过程中的相关数据。
146.mq

router

client用于配置信息检测;topic(通道)动态生成;动态订阅消费;动态发送;发送记录信息上报;消费记录上报;与mq

router

lib交互。
147.mq

router

server用于应用配置;topic配置;msgkey(关键字)、通道配置;通道管理、消息重发、通道调整、消息记录、消息监控。
148.图7为本发明实施例提供内容生产控制方法的另一种应用示意图。参见图7对本发明进行详细说明。
149.生产业务系统可以理解为实际进行内容生产的模块。producer通过动态代理producer

proxy检测生产者状态。、
150.视频优先级管理模块进行视频优先级配置,可以理解为确定视频的优先级信息,如qipuld+level。
151.server端,也即消息路由server启动,进行topic及通道配置,即确定配置信息(如可以包括待拆分原始生产通道和待拆分通道数量)。
152.client端,也即消息路由client启动初始化,读取配置文件或数据库topic配置,动态生成各level(等级、优先级)的topic、producer、consumer,并注册启动监听;初始化完成;读取对应topic、msgkey及通道对应关系,基于topic、msgkey及通道对应关系,判断是否需要分级;若是,则发送到对应level的topic,对应level的consumer,即consumer_level处理,即消费该level对应的虚拟通道中消息进行内容生产。若否,则发送到默认topic,默认consumer处理。在发送消息后,记录消息发送信息,可以包括消息内容,在consumer消费消息后,可以记录消息消费信息,可以包括具体消费者等信息。且可以将消息发送信息、消息消费信息发送至server端。
153.server端保存消息发送记录、消息消费记录,如此,可以对消息监控及查询,可以监控及查询内容生产过程。
154.视频优先级管理模块还可以进行视频优先级强制调整并保存调整记录,调整后,server端更新topic、msgkey及通道对应关系,且可以进行消息重新发送。
155.对应于上述实施例提供的内容生产控制方法,本发明实施例提供了一种内容生产控制装置,如图8所示,可以包括:
156.确定模块801,用于确定待生产内容的优先级信息;优先级信息表示的优先级顺序与待生产内容的重要程度正相关;
157.第一获取模块802,用于获取优先级信息对应的虚拟通道;虚拟通道是根据配置信息对原始生产通道拆分得到的;配置信息基于业务需求和/或原始生产通道的服务能力而确定;不同的虚拟通道基于原始生产通道的资源并行地进行内容生产;
158.第一发送模块803,用于利用虚拟通道中的虚拟生产者将待生产内容对应的原始数据,发送至虚拟通道对应的虚拟队列中,以使虚拟通道中的虚拟消费者根据虚拟队列中
的消息进行内容生产,虚拟队列的消息是携带待生产内容对应的原始数据的消息。
159.可选的,如图9所示,装置还包括:
160.第二获取模块901,用于获取配置信息;配置信息包括待拆分原始生产通道和待拆分通道数量;
161.拆分模块902,用于根据配置信息将待拆分原始生产通道拆分为待拆分通道数量个虚拟通道。
162.可选的,如图10所示,装置还包括:
163.第三获取模块1001,用于获取预先保存的消息发送信息,消息发送信息包括发送历史生产内容的虚拟生产者、虚拟生产通道以及基于历史生产内容进行内容生产的虚拟消费者;
164.判断模块1002,用于根据消息发送信息判断优先级信息对应的虚拟通道是否堵塞;
165.查找模块1003,用于若优先级信息对应的虚拟通道已堵塞,则查找其他空闲虚拟通道;
166.第二发送模块1004,用于利用其他空闲虚拟通道中的虚拟生产者将待生产内容对应的原始数据,发送至其他空闲虚拟通道对应的虚拟队列中,以使其他空闲虚拟通道中的虚拟消费者根据虚拟队列中的消息进行内容生产。
167.可选的,确定模块801,具体用于获取待生产内容的标识信息;基于标识信息,确定表示待生产内容的优先级顺序的优先级信息。
168.可选的,如图11所示,装置还包括:
169.保存模块1101,用于在根据配置信息将待拆分原始生产通道拆分为待拆分通道数量个虚拟通道之后,保存各个虚拟通道的通道标识,针对每一虚拟通道,通道标识包括虚拟通道所对应的原始生产通道标识和虚拟通道对应的优先级标识;
170.第一获取模块802,具体用于将优先级信息与不同虚拟通道的通道标识进行匹配,若优先级信息与一虚拟通道的通道标识匹配,则将与优先级信息匹配的通道标识对应的虚拟通道作为优先级信息对应的虚拟通道。
171.本发明实施例提供的内容生产控制装置是应用上述内容生产控制方法的装置,则上述内容生产控制方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
172.本发明实施例还提供了一种内容生产控制设备,如图12所示,包括处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201,通信接口1202,存储器1203通过通信总线1204完成相互间的通信。
173.存储器1203,用于存放计算机程序;
174.处理器1201,用于执行存储器1203上所存放的程序时,实现上述实施例中内容生产控制方法的方法步骤。
175.上述内容生产控制设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总
线。
176.通信接口用于上述内容生产控制设备与其他设备之间的通信。
177.存储器可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non

volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
178.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
179.在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中内容生产控制方法的方法步骤。
180.在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中内容生产控制方法的方法步骤。
181.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
182.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
183.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
184.以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在
本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1