CN110769290B - 一种播放事件更新方法、***和计算设备 - Google Patents
一种播放事件更新方法、***和计算设备 Download PDFInfo
- Publication number
- CN110769290B CN110769290B CN201911108856.XA CN201911108856A CN110769290B CN 110769290 B CN110769290 B CN 110769290B CN 201911108856 A CN201911108856 A CN 201911108856A CN 110769290 B CN110769290 B CN 110769290B
- Authority
- CN
- China
- Prior art keywords
- node
- time period
- play
- mapping
- playing
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000013507 mapping Methods 0.000 claims abstract description 98
- 238000009825 accumulation Methods 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims description 31
- 230000003139 buffering effect Effects 0.000 claims description 4
- 238000012216 screening Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims 2
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007723 transport mechanism Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26291—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for providing content or additional data updates, e.g. updating software modules, stored at the client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/458—Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
- H04N21/4586—Content update operation triggered locally, e.g. by comparing the version of software modules in a DVB carousel to the version stored locally
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种播放事件更新***,包括:过滤器节点,适于实时消费消息队列中的原始日志消息,将其中每个视频播放日志解析为一条包括视频标识的播放事件实例;一级缓存节点,适于将第一时间周期内的多个播放事件实例分别组装为第一和第二映射集合,这两个集合中的元素分别为视频标识与播放事件实例序列的映射关系、以及视频标识与播放次数的映射关系;二级缓存节点,适于将第二时间周期内的多个第一映射集合合并为第一累计集合后存入第一入库节点;以及二级缓冲节点,适于将第二时间周期内的多个第二映射集合合并为第二累计集后存入第二入库节点,其中第二时间周期大于第一时间周期。本发明还公开了对应的播放事件更新方法。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种播放事件更新方法、***和计算设备。
背景技术
视频播放量是小视频数据的重要组成部分,能够有效的展示一个小视频的被观看次数,以反映小视频的受欢迎程度。当客户端用户打开小视频的播放页进行视频播放时,本次播放行为就应该累计到该小视频的播放量中。
现有的播放量更新方法,一般是客户端在发生播放行为后,上报播放事件日志到大数据日志***,然后由kafka消费者线程从客户端上报到大数据***的日志中,逐条解析日志,以更新数据库中的播放量。这种方法中更新播放的所有程序逻辑都在kafka消费者线程中完成,整个流程全部走完非常耗时,且逐条消息的逐个流程处理则会更加耗时。这样无疑会导致kafka消费者消费能力不高,很容易出现消息堆积情况。而消息堆积不仅会影响kafka平台的性能,还会影响播放量更新的时效性,导致播放量更新不及时。
发明内容
鉴于上述问题,本发明提出了一种播放事件更新方法、***和计算设备,以力图解决或者至少解决上面存在的问题。
根据本发明的一个方面,提供了一种播放事件更新***,包括:过滤器节点,适于实时消费消息队列中的原始日志消息,从中筛选出视频播放日志,并将每个视频播放日志解析为一条播放事件实例,该播放事件实例包括视频标识;一级缓存节点,适于将第一时间周期内的多个播放事件实例组装为第一映射集合和第二映射集合,其中第一映射集合的每个元素为视频标识与播放事件实例序列的映射关系,第二映射集合的每个元素为视频标识与播放次数的映射关系;二级缓存节点,适于将第二时间周期内的多个第一映射集合按照视频标识合并为第一累计集合,并将该第一累计集合存储到第一入库节点;以及二级缓冲节点,适于将第二时间周期内的多个第二映射集合按照视频标识合并为第二累计集合,并将该第二累计集合存储到第二入库节点,其中第二时间周期大于第一时间周期。
可选地,在根据本发明的***中,过滤器节点适于从消息队列中获取字符串型日志,并将该字符串型日志解析为播放事件实例;一级缓存节点适于接收过滤器节点实时传递过来的播放事件实例;二级缓存节点和二级缓冲节点分别适于接收一级缓存节点每隔第一时间周期传递过来的第一映射集合和第二映射集合。
可选地,在根据本发明的***中,第一入库节点适于接收二级缓存节点每隔第二时间周期传递过来的第一累计集合;第二入库节点适于接收二级缓冲节点每隔第二时间周期传递过来的第二累计集合。
可选地,在根据本发明的***中,一级缓存节点还适于在将所缓存的映射集合发送给对应的二级缓存节点或二级缓冲节点后,清空该映射集合中的缓存内容,以缓存下一个第一时间周期内的映射集合数据。
可选地,在根据本发明的***中,二级缓存节点或二级缓冲节点还适于在将所缓存的累计集合发送给对应的入库节点后,清空该累计集合的缓存内容,以缓存下一个第二时间周期内的累计集合数据。
可选地,在根据本发明的***中,第一映射集合的播放事件实例序列为视频标识所对应的多个播放事件实例所组成的序列;第二映射集合的播放次数为视频标识所对应的播放事件实例个数。
可选地,在根据本发明的***中,播放事件实例以JSON语句表示,其还包括用户标识、设备标识、事件标识、开始播放时间和播放时长中的一种或多种。
可选地,在根据本发明的***中,过滤器节点适于根据原始日志消息的事件标识筛选出其中的播放日志。
可选地,在根据本发明的***中,消息队列为Kafka消息队列,播放事件更新***为基于Storm的实时计算***,所述节点均为Bolt节点。
可选地,在根据本发明的***中,第二入库节点还适于将第二累计集合发送到公共Kafka平台,以供各业务方使用。
可选地,在根据本发明的***中,第一时间周期为1s,第二时间周期为2s。
根据本发明的另一个方面,提供了一种日志处理***,包括:多个客户端、大数据***、消息队列、以及如上所述的播放事件更新***;其中,多个客户端适于经由大数据***向所述消息队列上报原始日志,播放事件更新***适于根据消息队列中的原始日志对视频播放次数和播放事件实例进行入库更新。
根据本发明的另一个方面,提供了一种播放事件更新方法,包括:实时消费消息队列中的原始日志消息,从中筛选出视频播放日志,并将每个视频播放日志解析为一条播放事件实例,该播放事件实例包括视频标识;将第一时间周期内的多个播放事件实例组装为第一映射集合和第二映射集合,第一映射集合的每个元素为视频标识与播放事件实例序列的映射关系,第二映射集合的每个元素为视频标识与播放次数的映射关系;将第二时间周期内的多个第一映射集合按照视频标识合并为第一累计集合,并将该第一累计集合存储到第一入库节点;以及将第二时间周期内的多个第二映射集合按照视频标识合并为第二累计集合,并将该第二累计集合存储到第二入库节点,其中第二时间周期大于第一时间周期。
根据本发明的又一方面,提供一种计算设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,该一个或多个程序被处理器执行时实现如上所述的播放事件更新方法的步骤。
根据本发明的又一方面,提供一种存储一个或多个程序的可读存储介质,该一个或多个程序包括指令,所述指令当由计算设备执行时实现如上所述的播放事件更新方法的步骤。
根据本发明的技术方案,提供了一种高吞吐量的kafka消息消费方案,能够在高并发情况下,高效的及时消费调播放日志事件消息。首先由过滤器节点过滤掉海量日志中的有用日志信息,大大降低后续节点所需处理的消息总数。一级缓存节点将同一个视频标识的播放事件进行分类汇总,并缓存一段时间的数据后再发给后续节点,降低了消息数据量和后续节点收到的事件次数。两个二级缓存节点用于分别缓存播放事件明细和播放次数,根据后续入库节点处理数据的能力动态调节缓存时间,防止消息堆积。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的日志处理***100的结构框图;
图2示出了根据本发明一个实施例的日志处理***的流程图;
图3示出了根据本发明另一个实施例的日志处理***的流程图;
图4示出了根据本发明一个实施例的播放事件更新***400的结构框图;
图5示出了根据本发明一个实施例的播放事件更新***400的处理流程图;
图6示出了根据本发明一个实施例的一级缓存节点的第一映射集合和第二映射集合的存储实例;
图7示出了根据本发明一个实施例的计算设备700的结构图;以及
图8示出了根据本发明一个实施例的播放事件更新方法800的流程图;
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的日志处理***100的示意图。如图1所示,日志处理***100中包括一个或多个客户端110、大数据***120、消息队列130和播放事件更新***140。应当指出,图1中的日志处理***100仅是示例性的,在具体的实践情况中,***100中可以有不同数量的大数据***120、消息队列130和播放事件更新***140,本发明对***100中所包括的各设备数量不做限制。
一般地,一个或多个客户端110与大数据***120连接,适于向大数据***发送该客户端上产生的日志。大数据***120可以为大数据日志***,其分别与消息队列130和一个或多个客户端110通信连接,适于接收客户端110上报的日志,并将接收到的日志发送给消息队列130。消息队列130可以为kafka消息队列,当然不限于此。
日志处理***100主要用于处理视频播放日志,如小视频的播放日志,该处理过程可划分为生产播放事件和消费播放事件。
在生产播放事件中,客户端110发生播放行为后,将视频的必要信息(如视频标识vsid、用户标识userid、播放时长等)组装成一条播放日志,并通过调用大数据***120的接口,来向该大数据***120上报该播放日志。大数据***120接收到播放日志后,将该播放日志发送给消息队列(如kafka消息平台)。当然,除了播放日志,客户端110还可以上报多种日志消息,这些日志消息均会经由大数据***120发送给消息队列130。
在消费播放事件中,在一种实现方式中,如图2所示,由消费者线程(如kafka消费者线程)来监听消息队列中的topic,并过滤所监听到的日志消息,找出其中的播放日志。之后,消费者线程通过解析该播放日志来取出视频信息,并根据解析的视频信息更新数据库中的播放量(也就是播放量加1),同时将本次播放日志事件入库作为小视频的播放明细。最后,将该视频的最新播放量消息发送到公共kafka平台,供其他业务方使用。
但在这种实现方式中,处理程序的所有逻辑都在kafka消费者线程中完成,包括过滤消息、解析消息、消息入库、播放量更新、以及发送播放量消息到公共kafka,导致整个流程走完耗时过长,且导致kafka消费者消费能力不高,很容易出现消息堆积情况。而消息堆积不仅影响kafka平台性能,还会影响播放量更新的时效性,导致播放量更新不及时。
因此,另一种实现方式中,如图3所示,本发明在消费播放事件中引入了播放事件更新***140,该播放事件更新***140与消息队列130通信连接,适于消费消息队列中的日志消息,从中筛选出视频播放日志后,根据视频标识来对播放事件进行分类汇总,并分别对播放次数和播放明细来累计批量入库,两者互不影响,提高处理效率。
图4示出了根据本发明一个实施例的播放事件更新***400的结构图。如图4所示,该***400包括过滤器节点410、一级缓存节点420、二级缓存节点430、二级缓冲节点440。当然,该***还可以包括第一入库节点450和第二入库节460。该播放事件更新***400的详细数据处理流程可参考图3和图5进行理解。
根据一个实施例,该播放事件更新***400为基于Storm的实时计算***,该***的各节点均为Storm***中的Bolt节点,也就是过滤器节点410为过滤器Bolt、一级缓存节点420为一级缓存Bolt、二级缓存节点430为二级缓存Bolt,以此类推。该Storm***中每个Bolt都工作在独立线程中,从而保证每个Bolt中的逻辑不会影响到其他的Bolt。
具体地,过滤器节点410实时消费消息队列中的原始日志消息,从中筛选出视频播放日志,并将每个视频播放日志解析为一条播放事件实例,该播放事件实例包括视频标识vsid。
根据一个实施例,过滤器节点410从消息队列中获取字符串型日志(如“env#event_sv_play#12034#1001#xdieuhfoahjes”),并将该字符串型日志解析为播放事件实例VideoPvEntity,此时其输入类型和输出类型分别为string型日志和VideoPvEntity。
过滤器节点410只负责过滤日志,解析日志文本,根据原始日志消息的事件标识eventId筛选出其中的播放日志(如小视频播放日志)。在客户端上所产生的多种行为,都有其对应的事件标识类型。若是播放日志事件,则创建VideoPvEntity对象,用于存储播放日志事件中解析的视频信息。播放事件实例以JSON语句表示,其还包括用户标识userid、设备标识deviceid、事件标识eventid、开始播放时间start_time和播放时长play_time中的一种或多种。每条播放日志都对一个播放事件实例,以下为一个单次播放日志解析后的播放事件实例示例:
一级缓存节点420将第一时间周期内的多个播放事件实例组装为第一映射集合和第二映射集合,其中第一映射集合的每个元素为视频标识与播放事件实例序列的第一映射关系,第二映射集合的每个元素为视频标识与播放次数的第二映射关系。
具体而言,一级缓存节点420的数据输入类型为上述过滤器节点的输出类型VideoPvEntity,其输出类型为以视频标识为键、以播放事件实例序列VideoPvList为值的第一映射关系,以及以视频标识为键、以播放次数PartCount为值的第二映射关系。其中,多个第一映射构成一个第一映射集合map,多个第二映射关系构成第二映射集合map。其中播放事件实例序列为同一个视频标识所对应的多个播放事件实例所组成的序列,一个VideoPvList下有多个VideoPvEntity;播放次数是同一视频标识所对应的播放事件实例个数。
基于此,一级缓存节点420在收到过滤器节点410传递过来的播放事件实例后,将该播放事件实例***视频标识对应的播放事件实例序列中,并将该视频标识对应的播放次数加1。如图6所示,若第一时间周期内共缓存了m个播放事件实例,每个实例对应的视频标识有1001、1002、1003等。因此可将这m个播放事件实例按照视频标识进行划分,得到以vsid为键、以VideoPvList为值的第一映射集合map,以及以vsid为键、以PartCount为值的第二映射集合map。
根据一个实施例,一级缓存节点420每隔第一时间周期将该第一时间周期内缓存的第一映射集合发送给二级缓存节点430,以及将第一时间周期内缓存的第二映射集合发送给二级缓冲节点440。进一步地,一级缓存节点420还适于在将所缓存的映射集合发送给对应的二级缓存节点430或二级缓冲节点440后,清空该映射集合中的缓存内容,以缓存下一个第一时间周期内的映射集合数据。
可选地,第一时间周期为1s,当然不限于此。此时,一级缓存节点420每缓存完成1s周期内的第一映射集合和第二映射集合,就会把缓存内容发送给对应的下一级节点,并在发送成功后清空该集合内容,以缓存下一个1s内的集合内容。当然,如果某个视频标识对应的某映射关系发送失败,则会将该视频标识对应的第一和第二映射关系都保留在对应的第一和第二映射集合中,以便在下一个时间周期内重新发送。
二级缓存节点430将第二时间周期内的多个第一映射集合按照视频标识合并为第一累计集合,并将该第一累计集合存储到第一入库节点,其中第二时间周期大于第一时间周期。
具体而言,二级缓存节点430接收一级缓存节点420每隔第一时间周期(如1s)传递过来的第一映射集合,并将第二时间周期(如2s,当然不限于此,也可以根据实际运行情况灵活配置该缓存时间周期)内接收到的同一视频标识的播放事件实例序列进行合并,因此其输入和输出类型均为一级缓存节点的vsid-VideoPvList输出类型,也就是第一映射关系。例如,二级缓存节点在2s周期内接收了两次数据传递,第一次数据传递中某视频标识对应a个播放事件实例,在第二数据传递中该视频标识对应b个播放事件实例,则将该b个播放事件实例***到a个播放事件实例之后,形成新的播放事件实例序列。该第一累计集合中的每个元素就是视频标识与新的播放事件实例序列的映射关系。
根据一个实施例,二级缓存节点430还可以在将所缓存的第一累计集合发送给第一入库节点450后,清空该第一累计集合中的缓存内容,以缓存下一个第二时间周期内的第一累计集合数据。其中,第一入库节点450为播放日志事件明细入库节点,其输入数据类型为二级缓存节点430的输出类型。第一入库节点450当收到二级缓存节点430每隔第二时间周期传递过来的videoPvList数据后,对其进行一次性批量入库操作。
二级缓冲节点440将第二时间周期内的多个第二映射集合按照视频标识合并为第二累计集合,并将该第二累计集合存储到第二入库节点。
具体而言,二级缓冲节点440也是一种二级缓存,其接收一级缓存节点420每隔第一时间周期(如1s)传递过来的第二映射集合,并将第二时间周期(如2s)内接收到的同一视频标识的播放次数进行累加,因此其输入和输出类型均为一级缓存节点的vsid-PartCount输出类型,也就是第二映射关系。例如,二级缓冲节点440在2s周期内接收了两次数据传递,第一次数据传递中某视频标识的播放次数为c,在第二数据传递中该视频标识对应的播放次数为d,则在第二累计集合中该视频标识对应的播放次数为c+d。
根据一个实施例,二级缓冲节点440还可以在将所缓存的第二累计集合发送给第二入库节点460后,清空该第二累计集合中的缓存内容,以缓存下一个第二时间周期内的第二累计集合数据。其中,第二入库节点460为播放次数明细入库节点,其输入数据类型为二级缓冲节点440的输出类型。第二入库节点460当收到二级缓冲节点440每隔第二时间周期传递过来的PartCount数据后,对其进行一次性批量入库操作,同时将该最新的播放量消息发送到公共kafka平台。
对于上述播放事件更新***400,每个节点运行在独立线程中,互不影响。首先通过过滤器节点410过滤掉海量日志消息中不关心的日志,大大降低后续节点所需处理的消息总数。之后,一级缓存节点420对消息分类汇总,从时间维度上,后续节点收到的消息变成1秒一次,为其提供充足的时间处理消息;从数量维度上,将同一个视频标识的播放事件汇总后作为一条数据发送,降低了后续节点的处理次数。两个二级缓存节点用于分别缓存播放日志的事件明细和播放次数,为后续的数据入库节点提供足够的时间来将数据入库,而且可根据实际运行来灵活配置缓存时间,解决消息堆积的问题。
例如,当后续入库节点的数据入库出现消息堆积时,就延长该第二时间周期;当入库节点的数据入库处理很快时,就缩短该第二时间周期。一般地,通过调整该第二时间周期,使数据入库节点(如第一或第二入库节点)在接收到当前时间周期内传递过来的数据(如第一或第二累计集合)时,恰好处理完成上一个第二时间周期内传递过来的数据时,即将累计集合入库,以及将最新播放次数发送给公共kafka平台。
根据本发明的一个实施例,上述日志处理***100中的大数据***120、消息队列130和播放事件更新***140,以及播放事件更新***400的各个节点均可以通过如下所述的计算设备700来实现。图7示出了根据本发明一个实施例的计算设备700的结构框图。
在基本的配置702中,计算设备700典型地包括***存储器706和一个或者多个处理器704。存储器总线708可以用于在处理器704和***存储器706之间的通信。
取决于期望的配置,处理器704可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器704可以包括诸如一级高速缓存710和二级高速缓存712之类的一个或者多个级别的高速缓存、处理器核心714和寄存器716。示例的处理器核心714可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器718可以与处理器704一起使用,或者在一些实现中,存储器控制器718可以是处理器704的一个内部部分。
取决于期望的配置,***存储器706可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。***存储器706可以包括操作***720、一个或者多个应用722以及程序数据724。在一些实施方式中,应用722可以布置为在操作***上利用程序数据724进行操作。程序数据724包括指令,在根据本发明的计算设备700中,程序数据724包含用于执行播放事件更新方法800的指令。
计算设备700还可以包括有助于从各种接口设备(例如,输出设备742、外设接口744和通信设备746)到基本配置702经由总线/接口控制器730的通信的接口总线740。示例的输出设备742包括图形处理单元748和音频处理单元750。它们可以被配置为有助于经由一个或者多个A/V端口752与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口744可以包括串行接口控制器754和并行接口控制器756,它们可以被配置为有助于经由一个或者多个I/O端口758和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备746可以包括网络控制器760,其可以被布置为便于经由一个或者多个通信端口764与一个或者多个其他计算设备762通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备700可以实现为服务器,例如文件服务器、数据库服务器、应用程序服务器和WEB服务器等,也可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(PDA)、无线网络浏览设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备700还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。在一些实施例中,计算设备700被配置为执行播放事件更新方法800。
图8示出了根据本发明一个实施例的播放事件更新方法800的流程示意图。方法800在播放事件更新***中执行,如在播放事件更新***400中执行,以便更新数据库中的播放量和播放事件明细。
如图8所示,该方法始于步骤S810。在步骤S810中,实时消费消息队列中的多条原始日志,从中筛选出视频播放日志,并将每个视频播放日志解析为一条播放事件实例。其中播放事件实例包括视频标识,另外还包括用户标识、设备标识、日志类型、开始播放时间和播放时长中的一种或多种,其可以JSON语句表示。该步骤的处理过程与上面在过滤器节点410中描述的处理相对应,这里不再展开赘述。
随后,在步骤S820中,将第一时间周期内的多个播放事件实例组装为第一映射集合和第二映射集合,其中第一映射集合的每个元素为视频标识与播放事件实例序列的映射关系,第二映射集合的每个元素为视频标识与播放次数的映射关系。其中,播放事件实例序列为视频标识所对应的多个播放事件实例所组成的序列,播放次数为视频标识所对应的播放事件实例个数。该步骤的处理过程与上面在一级缓存节点420中描述的处理相对应,这里不再展开赘述。
随后,在步骤S830中,将第二时间周期内的多个第一映射集合按照视频标识合并为第一累计集合,并将该第一累计集合存储到第一入库节点,第二时间周期大于所述第一时间周期。该步骤的处理过程与上面在二级缓存节点430中描述的处理相对应,这里不再展开赘述。
随后,在步骤S840中,将第二时间周期内的多个第二映射集合按照视频标识合并为第二累计集合,并将该第二累计集合存储到第二入库节点。该步骤的处理过程与上面在二级缓冲节点440中描述的处理相对应,这里不再展开赘述。
根据一个实施例,方法800还可以包括步骤:在将所缓存的映射集合发送给对应的二级缓存节点或二级缓冲节点后,清空该映射集合中的缓存内容,以缓存下一个第一时间周期内的映射集合数据。另外,在将所缓存的累计集合发送给对应的入库节点后,清空该累计集合的缓存内容,以缓存下一个第二时间周期内的累计集合数据。而且,将第二累计集合发送到公共Kafka平台,以供各业务方使用。
根据本发明的技术方案,过滤器节点只保留海量日志中的有用日志消息,一级缓存节点通过map将收到的一条条独立日志消息根据vsI进行分类汇总,并缓存一段时间的数据后再发给后续节点,从而同时降低了消息数据量和后续节点收到的事件次数。二级缓存节点根据后续数据库入库操作的处理能力,动态调节缓存时间,防止消息堆积。
A7、如A1-A6中任一项所述的***,其中所述播放事件实例以JSON语句表示,其还包括用户标识、设备标识、事件标识、开始播放时间和播放时长中的一种或多种。A8、如A1-A7中任一项所述的***,其中所述过滤器节点适于根据原始日志消息的事件标识筛选出其中的播放日志。A9、如A1-A8所述的***,其中所述消息队列为Kafka消息队列,所述播放事件更新***为基于Storm的实时计算***,所述节点均为Bolt节点。A10、如A9所述的***,其中所述第二入库节点还适于将所述第二累计集合发送到公共Kafka平台,以供各业务方使用。A11、如A1-A10中任一项所述的***,其中所述第一时间周期为1s,所述第二时间周期为2s。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的播放事件更新方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与本发明的示例一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机***的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。
Claims (15)
1.一种播放事件更新***,包括:
过滤器节点,适于实时消费消息队列中的原始日志消息,从中筛选出视频播放日志,并将每个视频播放日志解析为一条播放事件实例,所述播放事件实例包括视频标识;
一级缓存节点,适于接收过滤器节点实时传递过来的播放事件实例,将第一时间周期内的多个播放事件实例组装为第一映射集合和第二映射集合,所述第一映射集合的每个元素为视频标识与播放事件实例序列的映射关系,所述第二映射集合的每个元素为视频标识与播放次数的映射关系,所述播放事件实例序列为同一个视频标识所对应的多个播放事件实例所组成的序列,播放次数是同一视频标识所对应的播放事件实例个数;
二级缓存节点,适于接收一级缓存节点每隔第一时间周期传递过来的第一映射集合,将第二时间周期内的多个第一映射集合按照视频标识合并为第一累计集合,并将该第一累计集合存储到第一入库节点;以及
二级缓冲节点,适于接收一级缓存节点每隔第一时间周期传递过来的第二映射集合,将第二时间周期内的多个第二映射集合按照视频标识合并为第二累计集合,并将该第二累计集合存储到第二入库节点,其中所述第二时间周期大于所述第一时间周期。
2.如权利要求1所述的***,其中,
所述过滤器节点适于从消息队列中获取字符串型日志,并将该字符串型日志解析为播放事件实例。
3.如权利要求1或2所述的***,其中,
所述第一入库节点适于接收二级缓存节点每隔第二时间周期传递过来的第一累计集合;
所述第二入库节点适于接收二级缓冲节点每隔第二时间周期传递过来的第二累计集合。
4.如权利要求3所述的***,其中,
所述一级缓存节点还适于在将所缓存的映射集合发送给对应的二级缓存节点或二级缓冲节点后,清空该映射集合中的缓存内容,以缓存下一个第一时间周期内的映射集合数据。
5.如权利要求4所述的***,其中,
所述二级缓存节点或二级缓冲节点还适于在将所缓存的累计集合发送给对应的入库节点后,清空该累计集合的缓存内容,以缓存下一个第二时间周期内的累计集合数据。
6.如权利要求5所述的***,其中,
所述第一映射集合的播放事件实例序列为视频标识所对应的多个播放事件实例所组成的序列;
所述第二映射集合的播放次数为视频标识所对应的播放事件实例个数。
7.如权利要求6所述的***,其中所述播放事件实例以JSON语句表示,其还包括用户标识、设备标识、事件标识、开始播放时间和播放时长中的一种或多种。
8.如权利要求7所述的***,其中所述过滤器节点适于根据原始日志消息的事件标识筛选出其中的播放日志。
9.如权利要求8所述的***,其中所述消息队列为Kafka消息队列,所述播放事件更新***为基于Storm的实时计算***,所述节点均为Bolt节点。
10.如权利要求9所述的***,其中所述第二入库节点还适于将所述第二累计集合发送到公共Kafka平台,以供各业务方使用。
11.如权利要求10所述的***,其中所述第一时间周期为1s,所述第二时间周期为2s。
12.一种日志处理***,包括:
多个客户端、大数据***、消息队列、以及如权利要求1-11中任一项所述的播放事件更新***;
其中,所述多个客户端适于经由所述大数据***向所述消息队列上报原始日志,所述播放事件更新***适于根据所述消息队列中的原始日志对视频播放次数和播放事件实例进行入库更新。
13.一种播放事件更新方法,包括:
过滤器节点实时消费消息队列中的原始日志消息,从中筛选出视频播放日志,并将每个视频播放日志解析为一条播放事件实例,所述播放事件实例包括视频标识;
一级缓存节点接收过滤器节点实时传递过来的播放事件实例,将第一时间周期内的多个播放事件实例组装为第一映射集合和第二映射集合,所述第一映射集合的每个元素为视频标识与播放事件实例序列的映射关系,所述第二映射集合的每个元素为视频标识与播放次数的映射关系,所述播放事件实例序列为同一个视频标识所对应的多个播放事件实例所组成的序列,播放次数是同一视频标识所对应的播放事件实例个数;
二级缓存节点接收一级缓存节点每隔第一时间周期传递过来的第一映射集合,将第二时间周期内的多个第一映射集合按照视频标识合并为第一累计集合,并将该第一累计集合存储到第一入库节点;以及
二级缓冲节点接收一级缓存节点每隔第一时间周期传递过来的第二映射集合,将第二时间周期内的多个第二映射集合按照视频标识合并为第二累计集合,并将该第二累计集合存储到第二入库节点,其中所述第二时间周期大于所述第一时间周期。
14.一种计算设备,包括:
至少一个处理器;以及
包括计算机程序指令的至少一个存储器;
所述至少一个存储器和所述计算机程序指令被配置为与所述至少一个处理器一起使得所述计算设备执行如权利要求13所述的方法。
15.一种存储一个或多个程序的可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行如权利要求13所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911108856.XA CN110769290B (zh) | 2019-11-13 | 2019-11-13 | 一种播放事件更新方法、***和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911108856.XA CN110769290B (zh) | 2019-11-13 | 2019-11-13 | 一种播放事件更新方法、***和计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110769290A CN110769290A (zh) | 2020-02-07 |
CN110769290B true CN110769290B (zh) | 2021-12-07 |
Family
ID=69338017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911108856.XA Active CN110769290B (zh) | 2019-11-13 | 2019-11-13 | 一种播放事件更新方法、***和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110769290B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844210A (zh) * | 2017-01-20 | 2017-06-13 | 网易(杭州)网络有限公司 | 事件变更信息的获取方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838867A (zh) * | 2014-03-20 | 2014-06-04 | 网宿科技股份有限公司 | 日志处理方法和装置 |
US9288521B2 (en) * | 2014-05-28 | 2016-03-15 | Rovi Guides, Inc. | Systems and methods for updating media asset data based on pause point in the media asset |
CN106488256B (zh) * | 2015-08-24 | 2019-12-10 | 北京国双科技有限公司 | 一种数据处理方法及装置 |
CN105933736A (zh) * | 2016-04-18 | 2016-09-07 | 天脉聚源(北京)传媒科技有限公司 | 一种日志处理方法及装置 |
CN107634881A (zh) * | 2017-09-28 | 2018-01-26 | 苏州蜗牛数字科技股份有限公司 | 一种网络或视频业务探测***及方法 |
CN107862040B (zh) * | 2017-11-06 | 2021-07-30 | 中国银行股份有限公司 | 一种应用实例的缓存中数据的更新方法、装置及一种集群 |
-
2019
- 2019-11-13 CN CN201911108856.XA patent/CN110769290B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844210A (zh) * | 2017-01-20 | 2017-06-13 | 网易(杭州)网络有限公司 | 事件变更信息的获取方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110769290A (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271411B (zh) | 报表生成方法、装置、计算机设备及存储介质 | |
US20170264505A1 (en) | Techniques for tracking resource usage statistics per transaction across multiple layers of protocols | |
CN105068864B (zh) | 处理异步消息队列的方法及*** | |
CN111930700A (zh) | 一种分布式日志处理方法、服务器、***和计算设备 | |
CN112615907B (zh) | 一种数据同步***及方法 | |
KR20170106648A (ko) | 대용량 네트워크 데이터의 처리 기법 | |
CN111431926B (zh) | 一种数据关联分析的方法、***、设备及可读存储介质 | |
CN111782470B (zh) | 分布式容器日志数据处理方法及装置 | |
CN107147724A (zh) | 一种消息推送方法、服务器及计算机可读存储介质 | |
CN111444287B (zh) | 图数据库构建方法、关联信息查询方法、装置及计算设备 | |
CN111210340A (zh) | 一种自动任务处理方法、装置、服务器及存储介质 | |
CN111740868A (zh) | 告警数据的处理方法和装置及存储介质 | |
CN113568938A (zh) | 数据流处理方法、装置、电子设备及存储介质 | |
CN114048201A (zh) | 一种基于分布式流计算引擎Flink的关键字段实时去重方法 | |
CN111782473A (zh) | 分布式日志数据处理方法、装置及*** | |
CN111813529B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110769290B (zh) | 一种播放事件更新方法、***和计算设备 | |
US20080288572A1 (en) | Scalable presence server architecture | |
CN107203437A (zh) | 防止内存数据丢失的方法、装置和*** | |
CN111930783A (zh) | 监控方法、监控***及计算设备 | |
CN116170277A (zh) | 基于Golang的告警***、方法和装置 | |
CN116319988A (zh) | 一种数据处理方法、***、存储介质及设备 | |
WO2012047448A2 (en) | Techniques to support large numbers of subscribers to a real-time event | |
CN112235367B (zh) | 一种实体行为关系消息订阅方法、***、终端及存储介质 | |
CN115145964A (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 |