直播间分配方法及装置与流程

文档序号:30085100发布日期:2022-05-18 05:28阅读:438来源:国知局
直播间分配方法及装置与流程

1.本技术涉及网络直播技术领域,特别涉及直播间分配方法。本技术同时涉及直播间分配装置,一种计算设备,以及一种计算机可读存储介质。


背景技术:

2.随着网络通信技术的进步和宽带网络的提速,直播得到了越来越多的发展和应用。在现有直播中,在用户观看直播时,直播间的人气、礼物数、拍名等信息是实时更新在页面前端的。在一些高峰时期,会有大量用户同时进入一个房间进行观看,例如:大型赛事期间,此时该房间的观看人数会达到上百万之多,为了加快加载速度和抵抗数据库承载压力,会增加一个缓存用来存储相关数据,但是在上万或者几十万人同时发弹幕、送礼物时,缓存/数据库的访问压力大,大量的数据会导致排队更新数据,从而造成无法及时更新直播间信息的现象。
3.此外,上百万用户在观看同一个直播间时,该直播间的直播流承载了百万用户的访问,当直播流发生抖动时,会给上百万正在观看的用户带来不好的观看体验。因此,如何在多人观看的情况下及时更新直播间数据信息以及因单条直播流异常导致直播间内的用户观看体验差是目前亟需解决的问题。


技术实现要素:

4.有鉴于此,本技术实施例提供了一种直播间分配方法。本技术同时涉及一种直播间分配装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的在高访问量的情况下无法及时更新直播间数据信息以及因单条直播流异常导致直播间内的用户观看体验差的问题。
5.根据本技术实施例的第一方面,提供了一种直播间分配方法,应用于直播平台,包括:
6.接收直播间创建请求,根据所述直播间创建请求生成管理直播间和所述管理直播间对应的至少两个工作直播间;
7.接收目标用户针对所述管理直播间的观看请求,根据所述观看请求确定所述目标用户对应的目标工作直播间;
8.接收所述目标用户针对所述目标工作直播间的互动请求,根据所述互动请求确定待存储信息;
9.根据所述待存储信息更新所述目标工作直播间对应的目标存储数据库。
10.根据本技术实施例的第二方面,提供了一种直播间分配装置,包括:
11.生成模块,被配置为接收直播间创建请求,根据所述直播间创建请求生成管理直播间和所述管理直播间对应的至少两个工作直播间;
12.第一确定模块,被配置为接收目标用户针对所述管理直播间的观看请求,根据所述观看请求确定所述目标用户对应的目标工作直播间;
13.第二确定模块,被配置为接收所述目标用户针对所述目标工作直播间的互动请求,根据所述互动请求确定待存储信息;
14.更新模块,被配置为根据所述待存储信息更新所述目标工作直播间对应的目标存储数据库。
15.根据本技术实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述直播间分配方法的步骤。
16.根据本技术实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现所述直播间分配方法的步骤。
17.本技术提供的直播间分配方法,应用于直播平台,包括:
18.接收直播间创建请求,根据所述直播间创建请求生成管理直播间和所述管理直播间对应的至少两个工作直播间;接收目标用户针对所述管理直播间的观看请求,根据所述观看请求确定所述目标用户对应的目标工作直播间;接收所述目标用户针对所述目标工作直播间的互动请求,根据所述互动请求确定待存储信息;根据所述待存储信息更新所述目标工作直播间对应的目标存储数据库。
19.本技术一实施例实现了通过预先创建管理直播间和管理直播间对应的至少两个工作直播间,将不同观看管理直播间的用户分别分配至多个工作直播间中,解决了原来在单个直播间中因观看用户多而出现数据更新缓慢的问题,提升直播间的承载量,同时提高观看用户的观看体验。
附图说明
20.图1是本技术一实施例提供的一种直播间分配方法的流程图;
21.图2是本技术一实施例提供的管理直播间与工作直播间的结构图;
22.图3是本技术一实施例提供的工作直播间存储数据信息的示意图;
23.图4是本技术一实施例提供的工作直播间读取数据信息的示意图;
24.图5是本技术一实施例提供的一种应用于直播比赛的直播间分配方法的处理流程图;
25.图6是本技术一实施例提供的一种直播间分配装置的结构示意图;
26.图7是本技术一实施例提供的一种计算设备的结构框图。
具体实施方式
27.在下面的描述中阐述了很多具体细节以便于充分理解本技术。但是本技术能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本技术内涵的情况下做类似推广,因此本技术不受下面公开的具体实施的限制。
28.在本技术一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术一个或多个实施例。在本技术一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本技术一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
29.应当理解,尽管在本技术一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
30.首先,对本技术一个或多个实施例涉及的名词术语进行解释。
31.直播流:直播音视频数据的传输,它能够被作为一个稳定的和连续的流通过网络传输给观众观看。
32.推流:主播通过业务服务端(即主播客户端)从直播平台获取到推流地址,将采集的流媒体通过推流地址实时的推送至直播平台的接收端。
33.拉流:拉流是指用户通过直播平台到指定的源站拉取直播流的过程。
34.直播人气:综合观看人数、弹幕连接数、礼物数等按照一定比例算出的数值,用于在直播平台按照人气的高低进行排名。
35.qps:每秒查询率(queries-per-second)是对一个特定的服务器在规定时间内所处理流量多少的衡量标准。
36.在现有直播中,晚高峰期间会出现多个用户进入一个直播间观看直播的情况,或者在举办大型活动直播期间,一个直播间内可能有上百万的观看用户通常为了加快直播间加载速度和提高数据库承载压力,会为数据库配置一个缓存,相关直播间的数据会存储至缓存中。当一个用户观看直播间时,可以从客户端的页面前端实时获取到当前直播间的人气、礼物数、排名等信息,而用户观看到的画面是当前直播间的主播推送的一条直播流,在有上百万个用户观看的情况下,该条直播流会承载上百万用户的访问。
37.用户通过页面前端获取到当前直播间的人数、礼物、弹幕数等信息即是客户端查询当前直播间的数据信息。直播间的数据信息在缓存中的存储结构均为key:value的结构,例如,直播间弹幕表为“房间号:弹幕数”。在多个用户同时观看同一直播间时,就会有大量用户同时发送弹幕的情况发生,而发送弹幕就会更新缓存、数据库,并且为了使房间内所有用户都实时的看到当前弹幕数,也需要去查询缓存,则很容易出现热key问题(一个key被大量访问)。
38.在更新缓存/数据库的过程中,为了保证数据的准确性会有锁表的动作,锁表即为在更新过程中该条数据暂时不能被其他数据更新或读取,以此产生错误数据。在高qps的情况下,大量的数据会以排队的形式更新数据,由于锁表现象会导致网络阻塞、排队时间长,使得数据查询超时以及无法及时更新弹幕数据。
39.针对上述现象及问题,目前会采用多缓存数据源备份的策略:即为同一个数据库配置多个缓存。以针对同一个数据库配置10个缓存为例,在更新数据时会先更新数据库中的数据,然后再依次更新10个缓存数据。在查询数据时,会根据用户的唯一标识,进行哈希计算并取余%10,在10个缓存中确定出对应的缓存,在该对应的缓存中查询数据。这种策略可以实现降低单个key的访问量,即降低qps为原来的1/10。并且该策略很容易出现多个缓存之间数据不同步的隐患,例如,在10个缓存中已经有9个缓存的数据更新成功,有1个缓存的数据更新未成功,这样即会出现数据不同步导致查询数据错误、数据不准确的情况。此外,每个服务都要做类似的策略,如人数服务、礼物服务、弹幕服务,改动较大,相较于原来
的结构复用性不高。
40.并且,针对单个直播间的直播流而言,该直播间的直播流需要承载大量的用户观看,假设当前有100万用户同时观看,当直播流出现抖动的情况,会影响到上百万用户的观看体验。目前是通过推多路相同画面的直播流来解决上述问题,在该方法中,观看用户会被随机分配到其中一路直播流,从而在发生问题时,减少了影响的观看用户数。但是该方法最大的问题是一台电脑只能安装一个推流软件(例如obs推流软件),一次性只能推一路直播流,如果想要推多路直播流,可能需要多台电脑,并且可能会出现不同电脑推直播流导致画面不同步的问题。
41.基于此,在本技术中提供了一种直播间分配方法,本技术同时涉及一种直播间分配装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
42.图1示出了根据本技术一实施例提供的一种直播间分配方法的流程图,具体包括以下步骤:
43.步骤102:接收直播间创建请求,根据所述直播间创建请求生成管理直播间和所述管理直播间对应的至少两个工作直播间。
44.其中,直播间创建请求可理解为在本次直播之前为本次直播创建对应的直播间,直播间创建请求中可以携带有直播间配置信息、创建信息等。直播间配置信息可以是本次直播的直播间的房间号、房间容量等信息,创建信息可以是创建时间、创建方式等信息。
45.具体地,所述管理直播间为虚拟直播间,所述工作直播间为真实直播间;
46.所述管理直播间对应的至少两个工作直播间,包括:
47.所述虚拟直播间包括至少两个真实直播间,其中,每个真实直播间的直播间属性信息相同,所述直播间属性信息包括直播间配置信息、直播间装扮信息。
48.其中,管理直播间可以理解为创建出的虚拟直播间,虚拟直播间实际上是将n个房间的配置和装扮改为完全一致,在用户进入虚拟直播间进行观看时会根据用户的唯一标识,将用户分配到对应的房间中。工作直播间可以理解为在管理直播间中的配置、装扮相同的直播间,直播间配置信息可以是直播平台信息、直播流码率信息等,直播间装扮信息可以是直播间封面信息、直播间标题信息等,工作直播间即虚拟直播间中的真实直播间。如图2所示,图2示出了本技术一实施例提供的管理直播间与工作直播间的结构图,图中当用户通过用户端点击进入管理直播间时,直播平台会根据用户的唯一标识进行哈希计算,根据计算结果将该用户分配至对应的工作直播间中进行观看。
49.在实际应用中,当有一些大型活动即将开展直播时,直播平台方则会提前为其创建一个管理直播间以及对应的n个工作直播间,以防出现大量用户进入同一个直播间造成直播间承载压力大导致用户观看体验差的问题,创建管理直播间以及对应的n个工作直播间,可以将单个key在物理层面上拆分成多个key,例如,原先只有一个直播间时,在预设存储结构为“key:value”的情况下,该直播间中弹幕数的存储数据为“房间id:弹幕数”,当有1百万用户同时观看的情况下,所有用户都会实时的看到当前的弹幕数,即所有用户都会查询弹幕数,导致该直播间的这条存储数据会出现访问量过高的情况;基于创建管理直播间以及对应的n个工作直播间,每个工作直播间都有各自的存储数据库,每个工作直播间都存储有自身直播间的存储数据,将多个用户分配至不同的工作直播间中进行观看,使得每个
房间的单个key的访问量不会过高,从而避免一个key被大量访问的情况。
50.在实际应用中,直播平台方会发出直播间创建请求,直播平台接受直播间创建请求,根据预测观看人数和工作直播间的承载量创建管理直播间对应的n个工作直播间。例如,预测观看人数为10000,每个工作直播间在最多承载1000个用户观看时不会出现异常,则可以为当前直播对应的管理直播间配置11个工作直播间,其中,10个工作直播间用于正常运行,1个工作直播间用于在人数多于10000时的备用运行。需要注意的时,在直播开启时,若实际观看人数超过预测观看人数太多,则可以临时为管理直播间创建多个工作直播间,以保证活动的正常直播以及观看用户的观看体验。
51.管理直播间配置有虚拟房间号,虚拟房间号映射到n个工作直播间的房间号。例如,管理直播间的虚拟房间号为120,用户在直播平台搜索120时,直播平台服务查询到120是虚拟房间号,并映射到a和b两个工作直播间,则根据该用户的标识信息,将该用户分配至a或b其中一个工作直播间,以为其提供观看直播服务。
52.在本技术一具体实施例中,直播平台接受直播间创建请求,根据直播间创建请求生成管理直播间a和管理直播间a对应的2个工作直播间a1和a2。
53.为了降低原有的单个直播流的承载量,可以在接受到主播推送的直播流后将直播流转发至每个工作直播间,如图2所示,在图2中,在主播通过主播端向直播平台推送直播流之后,直播平台会将直播流分别转发至每个工作直播间。具体地,所述方法还包括:
54.接收所述管理直播间的直播流;
55.根据所述直播流生成每个工作直播间对应的子直播流;
56.将每条子直播流转发至对应的工作直播间。
57.其中,直播流可以理解为主播端推送的流,主播端在开启直播后,会将直播流推送至直播平台,在正常情况下,一个直播间有一路直播流,主播推一条直播流a,用户观看实时拉取直播流a进行播放。
58.在实际应用中,由于同一个直播间内有大量用户观看,因此该直播间的直播流的观看量会很高,导致直播流承载压力大从而容易出现问题,并且,当直播流出现问题时,拉取这条直播流的观看用户都会受到影响。为了保证直播流的稳定性以及减少发送问题时影响的用户数,在上述场景下,当接收到主播的推流之后,利用nginx的转发模块,将直播流复制并转发给管理直播间映射的工作直播间,这样工作直播间都会接收到直播流,并且不会出现画面不同步的问题。
59.在本技术一具体实施例中,沿用上例,直播平台接收主播z推送的直播流z,利用nginx的转发模块根据直播流z复制生成每个工作直播间对应的子直播流,复制生成的子直播流为z1和子直播流z2,将子直播流分别转发给管理直播间对应的两个工作直播间a1和a2。
60.步骤104:接收目标用户针对所述管理直播间的观看请求,根据所述观看请求确定所述目标用户对应的目标工作直播间。
61.其中,目标用户可以理解为准备观看管理直播间的一个用户,在目标用户想要观看管理直播间之前,会向直播平台发送针对管理直播间的观看请求。观看请求可以理解为用户观看管理直播间的请求,观看请求中可以包括有待观看的房间标识信息、用户标识信息等。根据目标用户的观看请求,可以将目标用户分配至对应的直播间中。
62.在实际应用中,在管理直播间开始直播后,会有大量用户涌入直播间进行观看,此时直播平台会接收到每个用户的观看请求,根据每个用户的观看请求对用户进行分配,相较于原来都在一个直播间进行观看,将大量用户分配至不同的工作直播间,可以降低每个直播间的观看量。具体地,可以对每个用户的标识信息进行哈希计算,获得每个用户的标识哈希值,根据每个用户的标识哈希值对每个用户进行分配处理。例如,工作直播间1中设置为标识哈希值0-1000000的用户观看,工作直播间2中设置为标识哈希值1000001-2000000的用户观看,当用户u的标识哈希值为300时,会将用户u分配至工作直播间1中进行观看。
63.在本技术一具体实施例中,沿用上例,接收目标用户u针对管理直播间a的观看请求,根据观看请求确定目标用户u对应的目标工作直播间为a2,将目标用户u分配至目标工作直播间a2。
64.具体地,根据所述观看请求确定所述目标用户对应的目标工作直播间,包括:
65.获取所述观看请求中的用户标识信息;
66.根据所述用户标识信息确定所述目标用户对应的目标工作直播间。
67.其中,用户标识信息可以理解为表示用户唯一身份的信息,例如,用户的唯一id、用户的账号等,根据用户标识信息可以确定出目标用户属于哪一个工作直播间。
68.在实际应用中,为了降低每个工作直播间的承载量,将原来上百万的用户都在同一个直播间内分成多个工作直播间为用户提供观看,例如,原来观看某比赛直播时,可能会有1百万的用户进行观看,在创建一个管理直播间和对应的n个工作直播间之后,可以将1百万用户平均分配至n个工作直播间中,从而降低每个工作直播间的访问量。
69.具体分配方法可以根据每个用户的用户标识信息来进行分配,用户在点击管理直播间进行观看时,会发送一个携带有用户标识信息的观看请求,根据用户标识信息可以为用户分配对应的直播间。例如,现有3个工作直播间,1号工作直播间是用户id“1-100000”进行观看,2号工作直播间是用户id“100001-200000”进行观看,3号工作直播间是用户“200001-300000”进行观看,当用户id为123456的用户进入管理直播间时,会将其分配至2号直播间进行观看。
70.在本技术一具体实施例中,沿用上例,获取目标用户u针对管理直播间a的观看请求中的用户标识信息,目标用户u的用户标识信息为“id:76000:”,工作直播间a1是分配用户“id:1-50000”可以观看,工作直播间a2是分配用户“id:50001-100000”可以观看,则根据目标用户u的id标识信息确定目标工作直播间为工作直播间a2。
71.具体地,根据所述用户标识信息确定所述目标用户对应的目标工作直播间,包括:
72.对所述用户标识信息进行哈希计算,获取所述目标用户对应的标识哈希值;
73.根据所述标识哈希值确定所述目标用户对应的目标工作直播间。
74.其中,哈希计算是通过散列函数任意长度的输入变换成固定长度的输出,该输出就是哈希值,通过输入用户标识信息获取目标用户对应的标识哈希值,每个用户对应的标识哈希值是唯一的。
75.在实际应用中,可以设置每个工作直播间对应的用户标识哈希值区间,根据所述标识哈希值确定所述目标用户对应的目标工作直播间可以理解为根据用户的标识信息在哈希环上的映射位置确定其目标工作直播间。
76.在本技术一具体实施例中,沿用上例,对目标用户u的标识信息进行哈希计算,获
取目标用户u对应的标识哈希值“1800000”,根据标识哈希值确定目标用户对应的目标工作直播间为a2工作直播间。
77.在实际应用中,将目标用户分配至对应的目标工作直播间后,目标用户则进入目标工作直播间进行观看,目标工作直播间会将直播流发送至目标用户,使得用户能够实时拉流进行播放。
78.具体地,接收目标用户针对所述管理直播间的观看请求,根据所述观看请求确定所述目标用户对应的目标工作直播间之后,还包括:
79.根据所述目标工作直播间确定所述目标子直播流;
80.发送所述目标子直播流至所述目标用户。
81.其中,目标子直播流是目标工作直播间对应的直播流,发送目标子直播流至目标用户可以理解为目标用户拉流进行播放观看。
82.在本技术一具体实施例中,沿用上例,根据目标工作直播间a2确定目标子直播流z2,发送目标子直播流z2至目标用户。
83.步骤106:接收所述目标用户针对所述目标工作直播间的互动请求,根据所述互动请求确定待存储信息。
84.其中,目标用户针对目标工作直播间的互动请求可以理解为目标用户在目标工作直播间内发送弹幕、刷礼物等互动请求。待存储信息可以理解为在用户针对工作直播间发起互动之后,生成的互动信息。例如,用户在直播间内发送了一条弹幕,待存储信息可以是“弹幕:弹幕内容”。
85.在实际应用中,用户在工作直播间内的互动操作生成的如送礼物/发送弹幕等涉及数据更新的操作数据,存储逻辑还是与原来相同,即将待存储信息存储至直播间对应的数据库中,如此即可将原本都存储在一个数据库中的分别存储在每个工作直播间对应的数据库中,完成了数据的拆分,并且保证了数据的准确性。
86.在本技术一具体实施例中,沿用上例,目标用户u在工作直播间a2中发送了3条弹幕,直播平台接收到目标用户u针对目标工作直播间a2的互动请求,根据互动请求确定待存储信息为“弹幕:看起来不错,弹幕:666,弹幕:真厉害”。
87.确定待存储信息首先需要确定互动类型和互动信息,具体地,根据所述互动请求确定待存储信息,包括:
88.根据所述互动请求确定互动类型和互动信息;
89.根据所述互动类型和互动信息确定待存储信息。
90.其中,互动类型可以理解为用户针对工作直播间的互动方式,互动类型可以是发送弹幕、刷礼物、点击关注等类型,互动信息可以理解为每个互动类型对应的互动内容,例如,当互动类型为发弹幕时,互动信息即为弹幕内容;当互动类型为刷礼物时,互动信息为礼物种类、礼物价值等。
91.在实际应用中,在确定待存储信息之前,需要先从互动请求中确定用户针对直播间的互动操作以及操作内容,以此来生成待存储信息。
92.在本技术一具体实施例中,沿用上例,目标用户u在工作直播间a2中发送了一条弹幕“主播666”,直播平台接收到目标用户u针对工作直播间a2的互动请求,根据互动请求确定互动类型为发弹幕,互动信息为“主播666”,则根据互动类型和互动信息确定待存储信息
为“弹幕:主播666”。
93.步骤108:根据所述待存储信息更新所述目标工作直播间对应的目标存储数据库。
94.其中,目标存储数据库可以理解为目标工作直播间的数据库,为了完成数据的拆分,每个工作直播间都配置有单独的数据库,以存放每个工作直播间的数据信息,可以解决在有大量数据需要更新存储的情况下,因数据库锁表行的问题。因为根据工作直播间的数量,原本一个直播间内的更新数据会被拆分到n个工作直播间中,大大降低了每个数据库的存储冲突,实现了可以快速存储工作直播间的数据信息,保证了数据更新的准确性以及时效性。
95.在实际应用中,原本一个直播间内的所有数据信息都会存储在该直播间对应的数据库中,由于观看用户众多,大量的数据需要写入到数据库中,因此大量数据会产生排队更新数据,导致网络阻塞、数据写入不及时,从而使得数据查询超时,给用户带来不好的观看体验。而通过将用户分配至不同的工作直播间中,使得用户针对不同工作直播间的操作生成的待存储信息,可以存储到每个工作直播间对应的数据库中,大大降低了每个数据库的工作量。如图3所示,图3示出了本技术一实施例提供的工作直播间存储数据信息的示意图,其中,图3是在图2所示的管理直播间与工作直播间的结构图的基础上提供的示意图,图3中管理直播间接收到用户发送的互动请求,根据互动请求生成对应的待存储信息并存储到工作直播间对应的存储数据库中。
96.在本技术一具体实施例中,沿用上例,将待存储信息“弹幕:主播666”存储到目标工作直播间a2对于的目标存储数据库s2中,以完成数据的更新,使得之后可以查询到该数据。
97.具体地,根据所述待存储信息更新所述目标工作直播间对应的目标存储数据库,包括:
98.确定所述目标工作直播间对应的目标存储数据库;
99.将所述目标工作直播间的直播间标识和所述待存储信息存储至所述目标存储数据库中。
100.其中,目标存储数据库可以理解为目标工作直播间对应的数据库,目标用户针对目标工作直播间的互动请求产生的待存储信息都会存储到对应的目标存储数据库中,而不会存储到其他工作直播间对应的存储数据库中。直播间标识可以理解为目标工作直播间的直播间房间号,每个工作直播间都有唯一的直播间标识。
101.在实际应用中,由于n个工作直播间都有自己对应的存储数据库,每个工作直播间内的待存储信息只会存储到对应的存储数据库中,因此需要确定工作直播间对应的存储数据库。在确定出存储数据库之后,会按照预设的存储结构将目标工作直播间的直播间标识和待存储信息一起存储至存储数据库中。例如,待存储信息“弹幕数100”,直播间标识为直播间房间号“2000”,则根据预设的存储结构“key:value”,将“2000:弹幕数100”存储至该直播间对应的存储数据库中。
102.在本技术一具体实施例中,沿用上例,确定目标工作直播间a2对应的目标存储数据库为s2数据库,将目标工作直播间对应的直播间房间号和待存储信息存储至目标存储数据库s2中。
103.对于一些能够被用户观看到的数值,需要从存储数据库中读取并展示到直播间
内,以供用户观看。
104.具体地,所述方法还包括:
105.根据每个工作直播间对应的存储数据库获取展示信息;
106.将所述展示信息展示在所述目标工作直播间。
107.其中,展示信息可以理解为能够被用户直接观看到的数据信息,例如,礼物数量/人气值/弹幕数量等。将展示信息展示在目标工作直播间内可以理解为从数据库中获取到展示信息,并在工作直播间内提供给用户观看。
108.在实际应用中,原本的展示方法都是读取缓存/数据库,而现在改为通过管理直播间内的代理服务根据预设获取时间定时地从缓存/数据库中查询数据并展示。由于管理直播间内有n个工作直播间,每个工作直播间的数据信息都存储在各自的数据库中,因此在获取到每个工作直播间内的数据信息之后,需要将类型一致的数据信息进行累加,并存储在本地缓存中,通过代理服务对每个工作直播间中的存储信息进行汇总,避免了每个用户直接访问工作直播间的缓存/数据库中的存储数据,从而也可以降低单个key的访问量。如图4所示,图4示出了本技术一实施例提供的工作直播间读取数据信息的示意图,其中,图4是在图3所示的工作直播间存储数据信息的示意图的基础上提供的示意图,图4中代理服务从每个工作直播间的数据库中获取展示信息,并展示到每个工作直播间中,用户可通过用户端观看工作直播间,并获取到相关的展示信息。
109.需要注意的是,用户看到的数据信息实际上是本地缓存中的数据,而直接本地存取的速度非常快,基本是毫秒甚至纳秒级别,存取的速度取决了cpu和内存的负载,如果负载不够可直接扩展虚拟存储,直接将原本缓存/数据库的几十万或者上百万的读取,降低为m的级别,m取决于虚拟存储部署的数量。
110.在实际应用中,每个工作直播间的存储数据库还存储有管理直播间与工作直播间的直播间对应关系,直播间对应关系可以理解为房间号对应关系。例如,工作直播间a1的存储数据库中可以存储有工作直播间a1的房间号和对应的管理直播间a的房间号,即“2000-1(工作直播间a1房间号):2000(管理直播间a房间号)”,在虚拟直播间a的代理服务对每个工作直播间中的存储信息进行汇总时,会根据对应关系从所有存储数据库中选取对应的工作直播间的存储数据库,并从这些数据库中获取相应的存储信息完成汇总。在另一种可实现的方式中,工作直播间与管理直播间的对应关系也可以存储在管理直播间的代理服务的本地缓存中,直播间对应关系的具体存储方式可根据实际情况而定。
111.在本技术一具体实施例中,沿用上例,获取工作直播间a1和工作直播间a2对应的存储数据库s1和s2中的展示信息,展示信息为弹幕、弹幕数、直播人气、观看用户数,将展示信息展示在每个工作直播间中。
112.在实际应用中,部分展示信息需要进行数据累加并展示到每个工作直播间中。进行数据累加的展示信息可以是弹幕数、人数等,不需要进行数据累加的展示信息可以是弹幕内容、礼物内容等。
113.具体地,所述展示信息包括属性信息和互动信息;
114.根据每个工作直播间对应的存储数据库获取展示信息,包括:
115.获取每个存储数据库中的属性信息和互动信息;
116.统计每个属性信息并生成目标属性信息;
117.根据所述目标属性信息和每个互动信息生成展示信息。
118.具体地,所述属性信息包括观看人数信息、弹幕数量信息;所述互动信息包括弹幕内容信息、礼物内容信息。其中,属性信息可以理解为需要累加的直播间属性信息,属性信息可以是每个工作直播间的观看人数、弹幕数等信息,互动信息可以理解为不需要累加的信息,互动信息可以是弹幕内容、礼物内容等信息,目标属性信息可以理解为每个工作直播间的属性信息累加后的信息,例如,将工作直播间1的观看人数和工作直播间2的观看人数进行累加。
119.在实际应用中,代理服务获取每个存储数据库中的属性信息和互动信息之后,会将属性信息和互动信息中的工作直播间标识替换成虚拟直播间标识,例如,获取工作直播间a1的存储数据库中的属性信息“a1:观看人数200”、工作直播间a2的存储数据库中的属性信息“a2:观看人数400”,管理直播间a的代理服务获取到这两条属性信息之后,会将这两条属性信息中的观看人数进行累加,并将存储的key替换成虚拟直播间的房间号,统计后的目标属性信息为“a:观看人数600”,则后续可根据该条目标属性信息展示在工作直播间a1和a2中,以此保证两个工作直播间的信息同步,同时避免了单个key被大量用户访问而导致数据更新不及时的问题。
120.在本技术一具体实施例中,沿用上例,根据工作直播间a1和a2对应的存储数据库s1和s2获取每个工作直播间的弹幕信息、礼物信息、观看人数信息和直播人气信息,将弹幕信息中的弹幕数量进行累加、观看人数信息中的观看人数进行累加、直播人气信息中的直播人气进行累加,将上述累加完的进行展示在工作直播间a1和a2中,将弹幕信息中的弹幕内容、礼物信息中的礼物内容直接展示在工作直播间a1和a2中。
121.通过本技术提供的直播间分配方法,在读取过程中,可以保证数据的一致性:由于每个工作直播间都有对应的存储数据库,在读取过程中不会出现多个缓存存储的数据源不同步的问题。
122.可用性高:对于管理直播间下的n个工作直播间,分别使用不同的缓存/数据库,并部署在不同的物理机器上,这样n个房间中的任何一个房间的缓存/数据库出现异常时,对于整体的影响会被降低到1/n。
123.复用性大:每个工作直播间都有自己的存储数据库,不需要进行数据同步和备份,虚拟存储已经在上层业务完成好所有的功能,并最大程度的复用了原有的逻辑,改动小、可用性高。
124.本技术提供的一种直播间分配方法,应用于直播平台,包括:接收直播间创建请求,根据所述直播间创建请求生成管理直播间和所述管理直播间对应的至少两个工作直播间;接收目标用户针对所述管理直播间的观看请求,根据所述观看请求确定所述目标用户对应的目标工作直播间;接收所述目标用户针对所述目标工作直播间的互动请求,根据所述互动请求确定待存储信息;根据所述待存储信息更新所述目标工作直播间对应的目标存储数据库。通过创建管理直播间和对应的n个工作直播间,并为每个工作直播间配置有单独的存储数据库,实现了数据的拆分,降低每个工作直播间的访问量,解决了原来在单个直播间中因观看用户多而出现数据更新缓慢的问题,提高在高访问量下的可用性,并提高了用户的观看体验。
125.下述结合附图5,以本技术提供的直播间分配方法在直播比赛的应用为例,对所述
直播间分配方法进行进一步说明。其中,图5示出了本技术一实施例提供的一种应用于直播比赛的直播间分配方法的处理流程图,具体包括以下步骤:
126.步骤502:接收直播间创建请求,根据所述直播间创建请求生成管理直播间和所述管理直播间对应的至少两个工作直播间。
127.在本技术一具体实施例中,在直播比赛之前,直播平台接收到直播比赛的直播间创建请求,根据直播间创建请求生成管理直播间和管理直播间对应的10个工作直播间,每个工作直播间可接收10万的用户观看请求。
128.步骤504:接收目标用户针对所述管理直播间的观看请求,获取所述观看请求中的用户标识信息,根据所述用户标识信息确定所述目标用户对应的目标工作直播间。
129.在本技术一具体实施例中,沿用上例,接收目标用户u1针对管理直播间的观看请求,获取目标用户u1的用户标识信息,用户标识信息为目标用户u1的唯一用户id,根据目标用户u1的唯一用户id将目标用户u1分配至第3工作直播间中。
130.步骤506:接收所述目标用户针对所述目标工作直播间的互动请求,根据所述互动请求确定互动类型和互动信息,根据所述互动类型和互动信息确定待存储信息。
131.在本技术一具体实施例中,沿用上例,接收目标用户u针对第3工作直播间的互动请求,根据互动请求确定互动类型为刷礼物,互动信息为礼物名称“火箭”,根据互动类型和互动信息确定待存储信息。
132.步骤508:根据所述待存储信息更新所述目标工作直播间对应的目标存储数据库。
133.在本技术一具体实施例中,沿用上例,将待存储信息存储至第3工作直播间对应的第3存储数据库中。
134.步骤510:获取每个存储数据库中的属性信息和互动信息,统计每个属性信息并生成目标属性信息,根据所述目标属性信息和每个互动信息生成展示信息,将所述展示信息展示在所述目标工作直播间。
135.在本技术一具体实施例中,沿用上例,获取10个存储数据库中的属性信息和互动信息,对每个属性信息进行累加生成目标属性信息,根据目标属性信息和每个互动信息生成展示信息,将展示信息展示在10个工作直播间中。
136.本技术提供的一种应用于直播比赛的直播间分配方法,包括:接收直播间创建请求,根据所述直播间创建请求生成管理直播间和所述管理直播间对应的至少两个工作直播间。接收目标用户针对所述管理直播间的观看请求,获取所述观看请求中的用户标识信息,根据所述用户标识信息确定所述目标用户对应的目标工作直播间。接收所述目标用户针对所述目标工作直播间的互动请求,根据所述互动请求确定互动类型和互动信息,根据所述互动类型和互动信息确定待存储信息。根据所述待存储信息更新所述目标工作直播间对应的目标存储数据库。获取每个存储数据库中的属性信息和互动信息,统计每个属性信息并生成目标属性信息,根据所述目标属性信息和每个互动信息生成展示信息,将所述展示信息展示在所述目标工作直播间。通过在直播大型比赛之前,创建管理直播间和对应的n个工作直播间,将每个观看用户分配至不同的工作直播间中,降低工作直播间的访问量,同时为每个工作直播间配置独立的存储数据库,使得每个工作直播间的数据信息可以存储在不同的数据库中,解决了因大量数据等待更新造成的网络阻塞、数据更新不及时的问题,并且在展示信息时通过定时读取每个存储数据库中的数据信息并进行汇总,使得每个工作直播间
内的展示信息可以同步展示,提高了用户的观看体验。
137.与上述方法实施例相对应,本技术还提供了直播间分配装置实施例,图6示出了本技术一实施例提供的一种直播间分配装置的结构示意图。如图6所示,该装置包括:
138.生成模块602,被配置为接收直播间创建请求,根据所述直播间创建请求生成管理直播间和所述管理直播间对应的至少两个工作直播间;
139.第一确定模块604,被配置为接收目标用户针对所述管理直播间的观看请求,根据所述观看请求确定所述目标用户对应的目标工作直播间;
140.第二确定模块606,被配置为接收所述目标用户针对所述目标工作直播间的互动请求,根据所述互动请求确定待存储信息;
141.更新模块608,被配置为根据所述待存储信息更新所述目标工作直播间对应的目标存储数据库。
142.所述第一确定模块604,还被配置为:
143.获取所述观看请求中的用户标识信息;
144.根据所述用户标识信息确定所述目标用户对应的目标工作直播间。
145.所述第一确定模块604,还被配置为:
146.对所述用户标识信息进行哈希计算,获取所述目标用户对应的标识哈希值;
147.根据所述标识哈希值确定所述目标用户对应的目标工作直播间。
148.所述第二确定模块606,还被配置为:
149.根据所述互动请求确定互动类型和互动信息;
150.根据所述互动类型和互动信息确定待存储信息。
151.所述更新模块608,还被配置为:
152.确定所述目标工作直播间对应的目标存储数据库;
153.将所述待存储信息存储至所述目标存储数据库中。
154.所述直播间分配装置,还包括:
155.展示模块,被配置为根据每个工作直播间对应的存储数据库获取展示信息;将所述展示信息展示在所述目标工作直播间。
156.所述展示模块,还被配置为:
157.获取每个存储数据库中的属性信息和互动信息;
158.统计每个属性信息并生成目标属性信息;
159.根据所述目标属性信息和每个互动信息生成展示信息。
160.所述直播间分配装置,还包括:
161.转发模块,被配置为:
162.接收所述管理直播间的直播流;
163.根据所述直播流生成每个工作直播间对应的子直播流;
164.将每条子直播流转发至对应的工作直播间。
165.所述直播间分配装置,还包括:
166.发送模块,被配置为:根据所述目标工作直播间确定所述目标子直播流;
167.发送所述目标子直播流至所述目标用户。
168.本技术提供的一种直播间分配装置,包括:生成模块,被配置为接收直播间创建请
求,根据所述直播间创建请求生成管理直播间和所述管理直播间对应的至少两个工作直播间;第一确定模块,被配置为接收目标用户针对所述管理直播间的观看请求,根据所述观看请求确定所述目标用户对应的目标工作直播间;第二确定模块,被配置为接收所述目标用户针对所述目标工作直播间的互动请求,根据所述互动请求确定待存储信息;更新模块,被配置为根据所述待存储信息更新所述目标工作直播间对应的目标存储数据库。通过创建管理直播间和对应的n个工作直播间,并为每个工作直播间配置有单独的存储数据库,实现了数据的拆分,降低每个工作直播间的访问量,提高在高访问量下的可用性,并提高了用户的观看体验。
169.上述为本实施例的一种直播间分配装置的示意性方案。需要说明的是,该直播间分配装置的技术方案与上述的直播间分配方法的技术方案属于同一构思,直播间分配装置的技术方案未详细描述的细节内容,均可以参见上述直播间分配方法的技术方案的描述。
170.图7示出了根据本技术一实施例提供的一种计算设备700的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
171.计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
172.在本技术的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本技术范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
173.计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
174.其中,处理器720执行所述计算机指令时实现所述的直播间分配方法的步骤。
175.上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的直播间分配方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述直播间分配方法的技术方案的描述。
176.本技术一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现如前所述直播间分配方法的步骤。
177.上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的直播间分配方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述直播间分配方法的技术方案的描述。
178.上述对本技术特定实施例进行了描述。其它实施例在所附权利要求书的范围内。
在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
179.所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,randomaccess memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
180.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本技术所必须的。
181.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
182.以上公开的本技术优选实施例只是用于帮助阐述本技术。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本技术的内容,可作很多的修改和变化。本技术选取并具体描述这些实施例,是为了更好地解释本技术的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本技术。本技术仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1