在线直播榜单生成方法及装置
技术领域
本发明涉及计算机网络技术领域,特别涉及一种在线直播榜单生成方法及装置。
背景技术
在线直播是指利用互联网及流媒体技术进行直播,主播客户端(即主播用户)可以通过互联网在网站上建立在线直播间(或者线直播频道),向接入该在线直播频道的观众客户端(即观众用户)进行在线直播。在在线直播时,主播客户端通过摄像装置、麦克风等外部设备获取主播用户(也称为内容提供者)输入的视频和语音信息,并在经过音视频信息的融合之后向服务器发送直播内容,再由服务器向接入主播客户端所在频道中的观众客户端推送直播内容。
随着在线直播技术以及业务的不断发展,主播类型日益丰富,用户数量也不断呈现规模式增长,在此基础上,按照各方面不同的标准对主播以及海量用户进行划分,从而分成了各种不同的类别,从而形成了各种各样、形式丰富的主播榜单和用户榜单,例如按性别(例如男榜单、女榜单)、按主播的内容(例如(唱歌榜单、聊天榜单)、按主播的形象(例如可爱、清新),同时,在线直播业务的服务者还会组织各种比赛,退出花样百出的活动榜单,比如头条小时榜、日榜、周榜等。目前针对在线直播技术而言,一般都是针对各榜单分别划分相应的存储区域,以存储相应的在线直播数据以及便于及时能够对相应的榜单进行更新。例如某一条在线直播数据同时涉及到榜单A(例如女榜单)以及榜单B(例如唱歌榜单),则需要将该在线直播数据同时存储到与榜单A对应的存储区域和与榜单B对应的存储区域。在榜单数量较少的情况下,可以有助于及时对相应的榜单进行更新。然而,随着形式多样、内容丰富的海量式直播榜单的出现,会使得同一条直播元数据需要同时存储到很多个存储区域,从而使存储空间急剧减少,严重增加提供在线直播的榜单业务服务的服务器的数据存储压力,进而影响到海量高并发的榜单查询服务的实时性。
发明内容
基于此,本发明实施例的目的在于提供一种在线直播榜单生成方法以及一种在线直播榜单生成装置,其可以合理使用存储空间,提供海量并发的榜单查询服务的实时性。
为达到上述目的,本发明实施例采用以下技术方案:
一种在线直播榜单生成方法,包括步骤:
在监听到满足元数据更新条件时,采集榜单元数据,并根据所述榜单元数据更新元数据总榜单;
判断更新后的元数据总榜单与更新前的元数据总榜单的排列顺序是否一致;
若不一致,根据榜单配置信息、所述更新后的元数据总榜单,对相应的子榜单进行更新,所述榜单配置信息包括所述元数据总榜单的配置信息以及各子榜单的配置信息。
一种在线直播榜单生成装置,包括:
元数据采集模块,用于在监听到满足元数据更新条件时,采集榜单元数据;
元数据总榜单生成模块,用于根据所述榜单元数据更新元数据总榜单;
子榜单生成模块,用于判断更新后的元数据总榜单与更新前的元数据总榜单的排列顺序是否一致,并在判定结果为不一致时,根据榜单配置信息、所述更新后的元数据总榜单,对相应的子榜单进行更新,所述榜单配置信息包括所述元数据总榜单的配置信息以及各子榜单的配置信息。
根据如上所述的本发明实施例的方案,其是基于榜单元数据生成一个元数据总榜单,得到一个整体榜单,再基于元数据总榜单以及各子榜单的配置信息衍生出不同类别的子榜单,从而针对不同类型的子榜单,不需要分别存储对应的元数据,只需要一个元数据总榜单以及所设置的榜单配置信息就可以生成各种不同类别的子榜单,从而实现了仅一个数据源就可以满足对不同榜单的实时更新,从而可以合理使用存储空间,加大地减轻了数据存储压力,可以据此提供海量并发的实时的榜单查询服务。
附图说明
图1是本发明实施例方案的应用环境的示意图;
图2是一个实施例中的本发明的在线直播榜单生成方法的流程示意图;
图3是一个简单具体示例中的元数据总榜单的示意图;
图4是图3所示简单具体示例中更新后的元数据总榜单的示意图;
图5是一个实施例中的本发明的在线直播榜单生成装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
图1中示出了基于本发明实施例的应用环境的示意图,本发明实施例方案应用于在线直播技术,在进行在线直播时,各终端101与服务器100之间可以通过任何可能的方式进行通信,终端101可以作为主播客户端,将直播内容通过网络传输给服务器100,通过100将该直播内容推送给其他的观众客户端,终端101也可以作为观众客户端,从服务器100获取在线直播的相关数据,例如在线直播的直播榜单、进入相应的主播直播间以获取相关的主播直播间的相关信息(例如接收主播客户端推送的直播内容等)。服务器100基于各终端(包括主播客户端和观众客户端)在直播业务中的相关行为,生成和维持各种相关类型的直播业务的榜单。本发明实施例涉及的是服务器100上的生成在线直播榜单的方案。
图2中示出了一个实施例中的本发明的在线直播榜单生成方法的流程示意图。如图2所示,本实施例中的方法包括步骤:
步骤S211:监听是否满足元数据更新条件,若满足,进入步骤S212;
步骤S212:采集榜单元数据,并根据所述榜单元数据更新元数据总榜单,进入步骤S213;
步骤213:判断更新后的元数据总榜单与更新前的元数据总榜单的排列顺序是否一致,若一致,则可以返回步骤S211,继续对元数据更新条件进行监听,若不一致,则进入步骤S214;
步骤S214:根据榜单配置信息、所述更新后的元数据总榜单,对相应的子榜单进行更新,所述榜单配置信息包括所述元数据总榜单的配置信息以及各子榜单的配置信息。
根据如上所述的本发明实施例的方案,其是基于榜单元数据生成一个元数据总榜单,得到一个整体榜单,再基于元数据总榜单以及各子榜单的配置信息衍生出不同类别的子榜单,从而针对不同类型的子榜单,不需要分别存储对应的元数据,只需要一个元数据总榜单以及所设置的榜单配置信息就可以生成各种不同类别的子榜单,从而实现了仅一个数据源就可以满足对不同榜单的实时更新,从而可以合理使用存储空间,加大地减轻了数据存储压力,可以据此提供海量并发的实时的榜单查询服务。
在上述基于更新的元数据对元数据总榜单进行更新之前,需要先生成原始的元数据总榜单,据此,如图2所示,在步骤S211之前,还可以包括步骤:
步骤S201:获取并加载所储存的榜单元数据;
步骤S202:根据所述加载的榜单元数据、元数据总榜单的配置信息生成元数据总榜单;
步骤S203:根据所述元数据总榜单、各子榜单的配置信息生成分别与各子榜单的配置信息相对应的各子榜单。
上述榜单配置信息可以结合实际需要进行设置,在一个具体示例中,该榜单配置信息可以包括:元数据来源、排序规则、开始时间、榜单数量、更新频率、附加信息。
在本发明的另一个具体示例中,还可以根据基于榜单配置信息的设置主动对子榜单进行更新,而无需依赖于元数据总榜单。据此,如图2所示,本实施例中的方法还包括步骤:
步骤211:根据所述榜单配置信息判断是否满足子榜单更新条件,若不满足,则结束当前的子榜单更新过程,继续对是否满足子榜单更新条件进行判断,若满足,则进入步骤S212;
步骤S212:根据最新的元数据总榜单、与所述子榜单更新条件对应的子榜单配置信息,对与所述子榜单更新条件对应的子榜单进行更新。
在上述步骤S214、步骤S222中得到更新后的子榜单之后,还可以进一步进入步骤S215:对更新后的子榜单进行数据静态化处理。通过对榜单数据进行数据静态化处理,可以便于各种终端只需访问榜单数据文件就可以获得最新的榜单数据。
这里的数据静态化处理可以结合实际需要进行设置,在本发明实施例的一个具体示例中,该数据静态化处理包括下述各项中的任意一项:
对更新后的子榜单进行压缩处理;
对更新后的子榜单添加属性信息后,写入缓存文件;
对更新后的子榜单进行压缩处理并添加属性信息后,写入缓存文件。
基于如上所述的实施例,以下结合其中一个具体示例进行详细说明。在本发明实施例的方案中,榜单元数据是最终统计计算排序的包含最基本属性的数据,根据实际业务需要的不同,可以对榜单元数据任意粒度细化。例如在某个具体的直播业务系统中,榜单元数据可以包括主播的得分、礼物数、开播次数、用户送礼物数等。榜单元数据的采集可以通过流水号和计量的方式收集,即每触发一次在线直播业务的相关信息,就保存一份流水记录,同时计量数加1。例如,用户送主播一个礼物,触发元数据采集,记录下主播ID、礼物ID、送礼物时间这样一个礼物流水记录,同时该主播的该礼物总数加1。这里的礼物流水记录和礼物总数就是榜单元数据,为后续的榜单生成提供直接数据支持。这种细粒度的元数据可以提供给多个榜单作为依据,以达到一份数据、多榜使用的目的。
基于榜单类型的多样性,榜单元数据所包含的信息类型可以结合实际需要进行丰富,图3中示出了一个简单具体示例中的元数据总榜单的示意图,出于简要说明的目的,为了便于理解,图3所示的示例比较简单。本领域技术人员可以理解的是,基于直播业务的要求的不同,榜单元数据、以及元数据总榜单中所包含的信息类型还可以做各种各样不同的扩展和变形,因此,本发明实施例的图3的说明仅仅是一种示例性说明,并不用以对本发明方案构成限定。
结合图3所示的元数据总榜单,假设相应设置有两个子榜单:针对礼物ID为LW1的数量的子榜单、针对接收到礼物ID为LW1的时间的子榜单。
如图3所示,针对主播ZB1、ZB2、ZB3,由于他们所接收到的LW1的数量相同,因此,元数据总榜单可以基于他们接收到礼物ID为LW1的时间的由近到远的顺序进行排列。需要说明的是,在本发明实施例的元数据总榜单中,还可以基于信息类型的不同,对其在元数据总榜单进行排序时可以设置不同的优先级,例如某类型A的数据与某类型B的数据均发生变化、而它们之间的变化趋势不一致时,从而在排序时,可以设置优先按照类型A的数据(或者类型B的数据)进行排序。结合图3、4中所示的简单具体示例中的元数据总榜单的示意图为例,是以接收到LW1的数量的优先级高于接收LW1的时间的优先级为例进行说明。本领域技术人员可以理解,图3、图4中的优先级设置方式仅仅是一种便于举例的示意性说明,并不用以对本发明实施例方案进行限定。
通过对用户行为进行监听,在监听到用户行为时,例如主播ZB3又接收到一个礼物LW1,触发对榜单数据的更新,从而对榜单元数据进行更新,在经过这次的元数据更新后,数据发生了变化,主播ZB3接收到礼物LW1的数量大于主播ZB1、ZB2接收到礼物LW1的数量,而基于礼物LW1的排序优于基于时间的排序,从而使得元数据总榜单的排列顺序发生变化,顺序变化后的元数据总榜单的示意图如图4所示。犹豫元数据总榜单的排列顺序发生变化,从而需要对针对礼物ID为LW1的数量的子榜单、针对接收到礼物ID为LW1的时间的子榜单分别进行更新,从而生成新的榜单数据。
基于与上述在线直播榜单生成方法相同的思想,本发明实施例还提供一种在线直播榜单生成装置。图5中示出了一个实施例中的在线直播榜单生成装置的结构示意图。
如图5所述,本实施例中的装置包括:
元数据采集模块301,用于在监听到满足元数据更新条件时,采集榜单元数据;
元数据总榜单生成模块302,用于根据所述榜单元数据更新元数据总榜单;
子榜单生成模块303,用于判断更新后的元数据总榜单与更新前的元数据总榜单的排列顺序是否一致,并在判定结果为不一致时,根据榜单配置信息、所述更新后的元数据总榜单,对相应的子榜单进行更新,所述榜单配置信息包括所述元数据总榜单的配置信息以及各子榜单的配置信息。
根据如上所述的本发明实施例的方案,其是基于榜单元数据生成一个元数据总榜单,得到一个整体榜单,再基于元数据总榜单以及各子榜单的配置信息衍生出不同类别的子榜单,从而针对不同类型的子榜单,不需要分别存储对应的元数据,只需要一个元数据总榜单以及所设置的榜单配置信息就可以生成各种不同类别的子榜单,从而实现了仅一个数据源就可以满足对不同榜单的实时更新,从而可以合理使用存储空间,加大地减轻了数据存储压力,可以据此提供海量并发的实时的榜单查询服务。
在上述基于更新的元数据对元数据总榜单进行更新之前,需要先生成原始的元数据总榜单,据此:
上述元数据总榜单生成模块302,还用于获取并加载所储存的榜单元数据,并根据所述加载的榜单元数据、元数据总榜单的配置信息生成所述元数据总榜单;
上述子榜单生成模块303,还用于根据所述元数据总榜单生成模块生成的元数据总榜单、各子榜单的配置信息,生成分别与各子榜单的配置信息相对应的各子榜单。
上述榜单配置信息可以结合实际需要进行设置,如图5所示,在一个具体示例中,本实施例的装置还可以包括:
榜单配置模块304,用于接收用户设置指令,根据用户设置指令设置所述榜单配置信息,其中,该榜单配置信息可以包括:元数据来源、排序规则、开始时间、榜单数量、更新频率、附加信息。
其中,这里的元数据来源、排序规则和榜单数量可用于快速计算生成元数据总榜单,更新频率可用于控制元数据总榜单多久重新更新一次;开始时间和结束时间可以控制榜单的有效期;附加信息可以用于完善丰富原生榜单数据属性,例如可以包含主播信息、直播状态信息、图像视频信息。这些信息都以榜单元数据的索引主键管理,从而可以据此直接获取信息来生成最后的榜单数据。
在本发明的另一个具体示例中,还可以根据基于榜单配置信息的设置主动对子榜单进行更新,而无需依赖于元数据总榜单。据此:
上述子榜单生成模块303,还用于根据所述榜单配置信息判断是否满足子榜单更新条件,并在判定满足时,根据最新的元数据总榜单、与所述子榜单更新条件对应的子榜单配置信息,对与所述子榜单更新条件对应的子榜单进行更新。
如图5所示,本实施例中的装置还可以包括有;
榜单数据处理模块305,用于对对更新后的子榜单进行数据静态化处理。
据此,通过对榜单数据进行数据静态化处理,可以便于各种终端只需访问榜单数据文件就可以获得最新的榜单数据。
这里的数据静态化处理可以结合实际需要进行设置,在本发明实施例的一个具体示例中,该数据静态化处理包括下述各项中的任意一项:
对更新后的子榜单进行压缩处理;
对更新后的子榜单添加属性信息后,写入缓存文件;
对更新后的子榜单进行压缩处理并添加属性信息后,写入缓存文件。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。