一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种直播聊天信息分发方法及系统与流程

2021-12-01 00:47:00 来源:中国专利 TAG:


1.本发明涉及云计算技术领域,特别是涉及一种直播聊天信息分发方法及系统。


背景技术:

2.视频直播随着线上业务的普及越来越多的被广大用户所青睐,相对于录播视频旨在为观众提供内容信息,录播视频的双方完全打破时间限制,进行制作视频或者观看视频,而在视频直播过程中,可以提供给直播者和观众进行实时互动以及聊天的机会。
3.直播聊天信息便在直播场景下应运而生,成为一种用于在直播者和观众进行现场沟通的重要手段。通常情况下,直播者会在直播过程中关注直播聊天信息,例如弹幕留言,或在某些直播内容播放完毕时邀请观众用弹幕的方式提问,以便直播者可以及时对疑难点进行解答。区别于视频下方评论,弹幕是对课程内容的即时反馈,相较于下方评论发布量也更大。
4.弹幕作为即时的反馈工具,虽然能够提供一种非常有价值的信息,但是伴随业务发展,视频直播技术也碰到不少难题,例如,目前的直播聊天技术实现是基于长连接技术,将直播间的聊天信息集中存储在服务器中,通过建立和保持客户端与服务器端的消息通道,向服务器请求聊天信息,来实现各端点之间的消息交互,但是建立和保持长连接需要较大资源开销。


技术实现要素:

5.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种直播聊天信息分发方法及系统,用于解决现有技术中建立和保持长连接需要较大资源开销的问题。
6.为实现上述目的及其他相关目的,本发明提供一种直播聊天信息分发方法,包括:
7.接收来自于直播间的聊天信息,并将所述聊天信息分散存储在各个子服务器中;
8.根据来自于所述直播间的所述资源请求,确定所述资源请求的用户以及所述用户的互联网协议地址,根据所述互联网协议地址确定请求距离,通过所述请求距离选择所述子服务器,所述请求距离包括所述用户与所述子服务器的距离,被选择的所述子服务器存储有与所述资源请求相匹配的所述聊天信息,设置所述聊天信息的查询周期,随机获取所述查询周期内的聊天信息,并设置所述聊天信息的丢失率,通过所述丢失率对随机获取的所述查询周期内的聊天信息进行丢失处理;
9.被选择的所述子服务器将进行丢失处理后的所述聊天信息发送给所述直播间,以使所述客户端显示所述聊天信息。
10.可选的,被选择的所述子服务器存储有与所述资源请求相匹配的所述聊天信息,还包括:
11.判断所述子服务器是否存在与所述资源请求相匹配的聊天信息,若是,则被选择的所述子服务器将所述聊天信息进行发送,若否,则所述子服务器向上一级的子服务器请求所述聊天信息,并将所述聊天信息进行发送。
12.可选的,通过所述请求距离选择所述子服务器之前,包括:
13.查询各个所述子服务器的负载情况,将低于负载阈值的所述子服务器用于所述子服务器的选择。
14.可选的,所述子服务器向上一级的子服务器请求所述聊天信息,并将所述聊天信息进行发送,还包括:
15.向上一级的子服务器请求所述聊天信息存储在所述子服务器中,通过所述子服务器将所述聊天信息发送给所述直播间。
16.可选的,判断所述子服务器是否存在与所述资源请求相匹配的聊天信息,包括:
17.所述资源请求包括所述聊天信息的内容名称;
18.根据所述内容名称判断所述子服务器是否存在与所述资源请求相匹配的聊天信息。
19.可选的,所述丢失率的数学表达为:
[0020][0021]
其中,q为丢失率,w为单位时间内在直播间展示的信息数量,k
·
y
x
为在线人数,p为在线人数发出所述聊天信息的平均比例,其中,x、y、k和p为常数,且y>k>1,x>1,1≥p>0。
[0022]
可选的,所述查询周期的数学表达为:
[0023][0024]
其中,t为查询周期,k
·
y
x
为在线人数,p为在线人数发出所述聊天信息的平均比例,其中,x、y、k和p为常数,且y>k>1,x>1,1≥p>0,m为第一参数且m>1,z为第二参数且(x-z)>1。
[0025]
一种直播聊天信息分发方法,包括:
[0026]
将来自于直播间的聊天信息发送给服务器,以使所述服务器将所述聊天信息分散存储在各个子服务器中;
[0027]
将来自于所述直播间的资源请求发送给所述服务器,以使所述服务器确定所述资源请求的用户以及所述用户的互联网协议地址,根据所述互联网协议地址确定请求距离,通过所述请求距离选择所述子服务器,所述请求距离包括所述用户与所述子服务器的距离,被选择的所述子服务器存储有与所述资源请求相匹配的所述聊天信息,设置所述聊天信息的查询周期,随机获取所述查询周期内的聊天信息,并设置所述聊天信息的丢失率,通过所述丢失率对随机获取的所述查询周期内的聊天信息进行丢失处理;
[0028]
接收并显示来自于所述子服务器将进行丢失处理后的所述聊天信息。
[0029]
一种直播聊天信息分发系统,包括:
[0030]
第一接收模块,用于接收来自于直播间的聊天信息,并将所述聊天信息分散存储在各个子服务器中;
[0031]
处理模块,用于根据来自于所述直播间的所述资源请求,确定所述资源请求的用
户以及所述用户的互联网协议地址,根据所述互联网协议地址确定请求距离,通过所述请求距离选择所述子服务器,所述请求距离包括所述用户与所述子服务器的距离,被选择的所述子服务器存储有与所述资源请求相匹配的所述聊天信息,设置所述聊天信息的查询周期,随机获取所述查询周期内的聊天信息,并设置所述聊天信息的丢失率,通过所述丢失率对随机获取的所述查询周期内的聊天信息进行丢失处理;
[0032]
第二发送模块,用于将被选择的所述子服务器进行丢失处理后的所述聊天信息发送给所述直播间,以使所述客户端显示所述聊天信息。
[0033]
一种直播聊天信息分发系统,包括:
[0034]
第三发送模块,用于将来自于直播间的聊天信息发送给服务器,以使所述服务器将所述聊天信息分散存储在各个子服务器中;
[0035]
第四发送模块,用将来自于所述直播间的资源请求发送给所述服务器,以使所述服务器确定所述资源请求的用户以及所述用户的互联网协议地址,根据所述互联网协议地址确定请求距离,通过所述请求距离选择所述子服务器,所述请求距离包括所述用户与所述子服务器的距离,被选择的所述子服务器存储有与所述资源请求相匹配的所述聊天信息,设置所述聊天信息的查询周期,随机获取所述查询周期内的聊天信息,并设置所述聊天信息的丢失率,通过所述丢失率对随机获取的所述查询周期内的聊天信息进行丢失处理;
[0036]
显示模块,用于接收并显示来自于所述子服务器进行丢失处理后的所述聊天信息。
[0037]
本发明提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述直播聊天信息分发方法的步骤。
[0038]
本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述的直播聊天信息分发方法的步骤。
[0039]
如上所述,本发明的直播聊天信息分发方法及系统,具有以下有益效果:
[0040]
将所述聊天信息分散存储在各个子服务器中,避免聊天信息集中存储于服务器端,也避免因客户端请求聊天消息需要与服务器端保持长连接的问题;
[0041]
将多个所述子服务器组成的服务器端,可以根据来自不同直播间的客户端的请求,在服务器端选择合适的子服务器,避免服务器端一直处于高可用度状态以及出现无法回收资源的问题,降低了服务器端的运维压力和计算量。
附图说明
[0042]
图1显示为本发明实施例提供的直播聊天信息分发方法的流程示意图。
[0043]
图2显示为本发明实施例提供的选择子服务器的流程示意图。
[0044]
图3显示为本发明实施例提供的丢失聊天消息的流程示意图。
[0045]
图4显示为本发明实施例提供的直播聊天信息分发的流程示意图。
[0046]
图5显示为本发明实施例提供的直播聊天信息分发方法的流程示意图。
[0047]
图6显示为本发明实施例提供的直播聊天信息分发系统的结构示意图。
[0048]
图7显示为本发明实施例提供的直播聊天信息分发系统的结构示意图。
[0049]
图8显示为本发明实施例提供的电子设备的结构示意图。
具体实施方式
[0050]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0051]
需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
[0052]
在互联网时代,尤其是在移动互联网时代,在线直播行业迎来高速发展,已逐步成为娱乐、游戏、电商、医疗等行业的基本配置。伴随业务发展,直播技术也碰到不少难题,其中直播聊天信息的分发和展示面临巨大的挑战,例如弹幕的显示和交互,在一个热门的视频直播间内,在线人数可能达到几十万甚至上百万人,对服务器端的云计算能力、过载能力、资源配置能力都提出了较大的挑战,然而,传统的直播聊天技术实现是基于长连接技术来实现,例如,通过基于传输控制协议(tcp/transmission control protocol)的长连接技术来实现,建立客户端与服务器端的消息通道,来实现各端点之间的消息交互,但是由于建立和保持tcp连接需要较大资源开销。因为信息通道的链路较为复杂,一条聊天消息需要被大量计算,如:判断用户是否在线、用户所在物理机位置等,才能进行转发或者传输,对服务器的性能提出了较大的考验。服务器端管理和保持着客户端的长连接,导致服务器必须保持长期高可用,每一次升级或者重启都必然会造成用户的断线、重连或者消息丢失,加重服务器端的运维负担。除此之外,服务器成本昂贵,由于长连接技术的制约,处于高可用状态的服务器维护着大量的在线用户,即便大部分用户下线,也不能回收服务器的资源。而直播业务在时段上存在比较明显的波峰和低谷,这就导致在直播非高峰时段,有大量的服务器资源被变相浪费。为此,提出了一种直播聊天信息分发方法,对服务器端的信号通道以及信号回馈进行控制,并在服务器端实现直播聊天信息的分发,例如,利用分布在不同区域的子服务器群组成服务器端,并将聊天信息分散存储和缓存在各个子服务器中,根据用户的资源请求,将所述聊天信息从对应的子服务器中下载至客户端。请参阅图1,本发明提供一种直播聊天信息分发方法,包括:
[0053]
s1:接收来自于直播间的聊天信息,该聊天信息来自于各个客户端的直播间,并将所述聊天信息分散存储在各个子服务器中,避免聊天信息集中存储于服务器端,也避免因客户端请求聊天消息需要与服务器端保持长连接的问题;
[0054]
s2:根据来自于所述直播间的所述资源请求,确定所述资源请求的用户以及所述用户的互联网协议地址,根据所述互联网协议地址确定请求距离,通过所述请求距离选择
所述子服务器,所述请求距离包括所述用户与所述子服务器的距离,被选择的所述子服务器存储有与所述资源请求相匹配的所述聊天信息,设置所述聊天信息的查询周期,随机获取所述查询周期内的聊天信息,并设置所述聊天信息的丢失率,通过所述丢失率对随机获取的所述查询周期内的聊天信息进行丢失处理,多个所述子服务器组成的服务器端,可以根据来自不同直播间的客户端的请求,在服务器端选择合适的子服务器,选择合适子服务器的方式可以通过请求距离来选择,避免较长的请求距离导致的信息迟滞、通信数据丢失、信息队列阻塞等情况的发生,也避免服务器端一直处于高可用度状态以及引起的无法回收资源的问题,降低了服务器端的运维压力和计算量,为了对应直播业务的高峰期由于较多的在线人数导致的聊天消息高并发情况,通过设置查询周期并在查询周期内随机获取聊天信息,保障了聊天信息话题性的多样性以及离散性,避免单一话题的聊天信息瞬时爆发导致其他关键聊天信息的遗漏,在直播聊天场景下保证聊天信息具有良好的交互特性,采用先在查询周期内随机选择聊天信息,再进行丢失处理,或者,先进行丢失处理,再在查询周期内随机选择聊天信息;
[0055]
s3:被选择的所述子服务器将进行丢失处理后的所述聊天信息发送给所述直播间,以使所述客户端显示所述聊天信息。
[0056]
通过云计算技术来实现分散存储聊天信息,具体的,所述云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展。通过建立云计算资源池(简称云平台,一般称为iaas(infrastructure as a service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。将聊天信息进行内容分发至合适的子服务器的方式,可将聊天消息的服务压力从业务后端转移至子服务器上,例如,可以在业务后端的基础上建设一层新的网络架构,该网络架构可以采用子服务器组成的内容分发网络(cdn/content delivery network),cdn中的子服务器的成本较低,在实施过程中,还可将聊天消息存储于服务器端的源站中,确保了聊天消息的完整性,当直播间的用户触发资源请求时,将源站中子服务器中的聊天信息下发至cdn中的子服务器中,并在cdn中的子服务器中缓存所述聊天信息,最终通过cdn中的子服务器将所述聊天信息传输给直播间,整个资源请求过程中,仅仅会产生必要的、低频次的回源,较大地降低了长连接产生的运营带宽成本,而且服务器端也不再直接提供与客户端的tcp连接,运维也仅需维护少量子服务器即可满足业务需求,无需部署大规模集群,即便服务升级,重启后服务器端恢复cdn的重试回源,对产品体验不会造成较大影响。节约了服务器的资源,还能够解决客户端与服务器端的消息通道受网络宽带、在线人数、服务器分布不均导致的响应速度慢以及聊天信息传输不畅的问题,而且服务器端的架构更加稳定可靠。
[0057]
为了选择合适的子服务器进行聊天消息的分发,还可以根据来自于所述直播间的资源请求,选择所述子服务器,请参阅图2,图2为选择子服务器的流程示意图,其步骤包括:
[0058]
s21:根据来自于所述直播间的所述资源请求,确定所述资源请求的用户以及所述用户的互联网协议地址(ip/internet protocol),所述资源请求可以选择超文本传输协议(http/hyper text transfer protocol)请求;
[0059]
s22:根据所述互联网协议地址确定请求距离,通过所述请求距离选择所述子服务器,所述请求距离包括所述用户与所述子服务器的距离,例如,选择请求距离较近的子服务器的集合,从该集合中选择子服务器,又例如,选择请求距离最近的子服务器,降低子服务器与客户端之间的连接距离以及由此引起时延,提高了资源请求的相应速度;
[0060]
s23:判断所述子服务器是否存在与所述资源请求相匹配的聊天信息;
[0061]
s24:若是,则被选择的所述子服务器将所述聊天信息发送给所述直播间,例如,域名系统(dns/domain name system)服务器去请求cdn中的全局负载均衡器解析域名或者互联网协议地址,全局负载均衡器会为用户/直播间选择一台合适的子服务器用于缓存并提供聊天信息下载服务,而且全局负载均衡器还会返回给用户/直播间一台合适的子服务器的互联网协议地址,域名系统服务器缓存这个互联网协议地址,然后将其返回给客户端,客户端再根据所述互联网协议地址去访问对应的子服务器,下载聊天信息;
[0062]
s25:若否,则所述子服务器向上一级的子服务器请求所述聊天信息,并将所述聊天信息发送给所述直播间,如果上一级的子服务器也没有所述聊天信息,继续追溯,直至将源站中的聊天信息下载至所述直播间。
[0063]
为了避免子服务器的负载较大,造成的资源请求阻塞以及请求时延较大或者导致的聊天信息通信不畅,在通过所述请求距离选择所述子服务器之前,包括:
[0064]
查询各个所述子服务器的负载情况,将低于负载阈值的所述子服务器用于所述子服务器的选择,避免将高于负载阈值的所述子服务器在作为聊天消息分发的子服务器,降低了子服务器分布不均导致的子服务器负载不均衡。
[0065]
为了避免资源请求中的聊天信息重复下载,所述子服务器向上一级的子服务器请求所述聊天信息,并将所述聊天信息发送给所述直播间,还包括:
[0066]
向上一级的子服务器请求所述聊天信息存储在所述子服务器中,当其他客户端再对同一聊天消息进行资源请求时,则该子服务器存储有所述聊天信息,直接将所述聊天信息发送至客户端并在直播间进行显示,避免了不必要的回源,减少源站请求压力,也降低了同一聊天信息的交互的信息通道数量以及计算压力。
[0067]
为了精准地匹配来自直播间的资源请求与匹配的子服务器,在一些实施过程中,判断所述子服务器是否存在与所述资源请求相匹配的聊天信息,包括:
[0068]
所述资源请求包括所述聊天信息的内容名称,例如,资源请求中包括统一资源定位系统(url/uniform resource locator),所述url中包含内容名称,通过内容名称查询子服务器缓存的聊天信息,又例如,还可以通过自然语言处理技术来识别或者提取存储于所述子服务器中的聊天信息,同样的,通过自然语言处理技术能够识别和提取资源请求中的内容名称;
[0069]
根据所述内容名称判断所述子服务器是否存在与所述资源请求相匹配的聊天信息。
[0070]
当在线人数少或者聊天信息少的情况下,可将用户的聊天信息以弹幕的形式在直播间进行展示,但是当在线人数多或者聊天信息多的情况下,将聊天信息进行全部或者大量展示,不仅对客户端的设备性能和直播间当前的网络带宽提出了很高的要求,而且直播间展示的海量弹幕信息容易产生视觉上混乱,也不便于用户从中获取有价值的交互信息,失去了在直播聊天中进行信息获取以及交互的价值,因此需要设定一定的直播信息丢失机
制,筛选一定量的聊天信息在直播间展示,来应对低并发的业务场景,例如直播业务的波谷,也可以来应对高并发的业务场景,例如直播业务的高峰,请参阅图3,图3为丢失聊天消息的流程示意图,被选择的所述子服务器将所述聊天信息发送给所述直播间,以使所述客户端显示所述聊天信息,包括:
[0071]
s31:设置所述聊天信息的丢失率,并通过所述丢失率对所述聊天信息进行处理,该丢失率与在线人数相关联,或者,该丢失率与在线人数发出所述聊天信息的平均比例相关联,通过设置丢失率避免在直播业务的波谷丢失较多的聊天信息,也避免在直播业务的高峰展示过多的聊天信息;
[0072]
s32:将处理后的所述聊天信息发送给所述直播间,以使所述客户端显示所述聊天信息,通过丢失率处理所述聊天信息,既保证在直播业务的波谷能够充分展示聊天信息,又能在直播业务的高峰设定能够被直播间接受的聊天信息的数量。
[0073]
由于视频直播的业务场景,视频直播的高峰和低谷具有明显的时间段分布特性以及随机性,导致直播间的在线人数和聊天信息数量呈现离散性和随机性的特点,通过传统的调度算法不能对聊天信息实现较为理想的展示,可以在实施过程中采用人工智能算法或者人工智能模型进行管理、调度或者监测,人工智能技术(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。在一些实施过程中,以丢失率或者其数学表达作为人工智能算法的算法模型,根据直播业务的场景要求,设置直播间所能允许展示的最多的聊天信息或者弹幕的数量,例如,设置单位时间内在直播间展示的信息数量w,基于单位时间内在直播间展示的信息数量来获取丢失率,所述丢失率的数学表达为:
[0074][0075]
其中,q为丢失率,w为单位时间内在直播间展示的信息数量,k
·
y
x
为在线人数,p为在线人数发出所述聊天信息的平均比例,其中,x、y、k和p为常数,且y>k>1,x>1,1≥p>0。
[0076]
由于子服务器与客户端之间消息通道的请求和计算,或者聊天信息的分发和调度,产生一定的时延,当在线人数较多时,容易产生在直播间展示的当前聊天信息滞后的问题,也因为在线人数时,聊天信息的话题性呈多元化、多维化、离散化分布的特点,因此,需要采取一定措施从子服务器提取一定比例的聊天信息,避免集中提取聊天信息导致的聊天信息呈现单一性、低维度和集中性的状况,也有助于增加聊天信息的交互内容量。在一些实施过程中,被选择的所述子服务器将所述聊天信息发送给所述直播间,以使所述客户端显
示所述聊天信息,还包括:
[0077]
s40:设定所述聊天信息的查询周期,获取所述查询周期内的聊天信息;
[0078]
s50:将所述查询周期内的聊天信息按照单位时间随机发送给所述直播间,以使所述客户端显示所述聊天信息。通过设定查询周期,并通过随机提取聊天信息的方式,增加了聊天信息的多元性、多维性和离散性,所述查询周期内随机的聊天信息能够体现广大在线人数的当前话题、关心重点等交互信息,避免瞬时的聊天信息单一性强、维度交底和内容较为集中的问题。
[0079]
为了更好地在直播间展示聊天信息,可以根据在线人数灵活设置不同的查询周期,所述查询周期的数学表达为:
[0080][0081]
其中,t为查询周期,k
·
y
x
为在线人数,p为在线人数发出所述聊天信息的平均比例,其中,x、y、k和p为常数,且y>k>1,x>1,1≥p>0,m为第一参数且m>1,z为第二参数且(x-z)>1。
[0082]
例如,在直播业务的低并发场景下,当在线人数少于或者达到1000人时,例如,在线人数为1000人,按估算,消息并发1~100条/秒区间,在线人数发出所述聊天信息的平均比例最大为0.1,每隔1s通过http方式从子服务器上查询获取10片聊天消息,每片10条,单位时间1秒内最多在直播间展示100条聊天信息,由于在线人数较少,因此可以通过调用较少的cdn,适当增加cdn回源频次并不会影响各个子服务器的性能,单一子服务器可以满足性能,确保聊天消息触达客户端的处于高比率状态,消息不丢失;例如,p=0.1,y=10,x=3,w=100,查询周期为t=1,z=3,m=5,丢失率q=0;
[0083]
例如,在直播业务的高并发场景下,当在线人数大于1000人至10000人时,例如,在线人数为10000人,按估算,消息并发100~1000条/秒区间,同理,在线人数发出所述聊天信息的平均比例最大为0.1,可以设置查询周期为5s,每隔5s通过http方式从选择的子服务器上查询获取10片聊天信息,每片100条,最多取1000条聊天信息,单位时间1秒内最多在直播间展示100条聊天信息,直播间的用户所在cdn较多,通过减少cdn回源频次的策略,单一子服务器也能满足性能,同时较多聊天信息,用户在视觉上也无法消化,因此容忍消息一定丢失率q;例如,p=0.1,y=10,x=4,w=100,查询周期t=5,z=3,m=5,丢失率q=0.9;
[0084]
又例如,在直播业务的超高并发场景下,当在线人数大于1万人,例如,在线人数10万人,按估算,消息并发大于10000条/秒,同理,在线人数发出所述聊天信息的平均比例最大为0.1,可以设置查询周期为10s,每隔10s通过http方式从子服务器上查询获取消息10片数据,每片1000条,最多取10000条,单位时间1秒内最多在直播间展示100条聊天信息,消息丢失率<90%,此时为保障偏远地区边缘节点的用户覆盖,需要进行多cdn部署;其中,p=0.1,y=10,x=5,w=100,t=10,z=3,m=5,消息丢失率q=0.99。
[0085]
而直播业务在时段上存在比较明显的波峰和低谷,在直播非高峰时段,直播业务中的聊天信息较少,在直播高峰时段,直播业务中的聊天信息比较多,而客户端将聊天信息发送给服务器,由服务器进行响应和处理,将反馈的聊天信息显示在客户端中,为此,提出了一种直播聊天信息分发方法,通过客户端对服务器端的信号通道以及信号回馈进行控制,并接收和显示来自于服务器端的聊天信息的分发,请参阅图5,本发明提供一种直播聊
天信息分发方法,包括:
[0086]
s10:将来自于直播间的聊天信息发送给服务器,以使所述服务器将所述聊天信息分散存储在各个子服务器中,避免聊天信息集中存储于服务器端,也避免因客户端请求聊天消息需要与服务器端保持长连接的问题;
[0087]
s20:将来自于所述直播间的资源请求发送给所述服务器,以使所述服务器确定所述资源请求的用户以及所述用户的互联网协议地址,根据所述互联网协议地址确定请求距离,通过所述请求距离选择所述子服务器,所述请求距离包括所述用户与所述子服务器的距离,被选择的所述子服务器存储有与所述资源请求相匹配的所述聊天信息,设置所述聊天信息的查询周期,随机获取所述查询周期内的聊天信息,并设置所述聊天信息的丢失率,通过所述丢失率对随机获取的所述查询周期内的聊天信息进行丢失处理,多个所述子服务器组成的服务器端,可以根据来自不同直播间的客户端的请求,在服务器端选择合适的子服务器,避免服务器端一直处于高可用度状态以及无法回收资源的问题,降低了服务器端的运维压力和计算量;
[0088]
s30:接收并显示来自于所述子服务器将进行丢失处理后的所述聊天信息,被选择的所述子服务器将聊天信息分发给对应的客户端,解决客户端与服务器端的消息通道受网络宽带、在线人数、服务器分布不均导致的响应速度慢以及聊天信息传输不畅的问题。
[0089]
在一些实施过程中,被选择的所述子服务器存储有与所述资源请求相匹配的所述聊天信息,还包括:
[0090]
判断所述子服务器是否存在与所述资源请求相匹配的聊天信息,若是,则被选择的所述子服务器将所述聊天信息进行发送,若否,则所述子服务器向上一级的子服务器请求所述聊天信息,并将所述聊天信息进行发送。
[0091]
在一些实施过程中,通过所述请求距离选择所述子服务器之前,包括:
[0092]
查询各个所述子服务器的负载情况,将低于负载阈值的所述子服务器用于所述子服务器的选择。
[0093]
在一些实施过程中,所述子服务器向上一级的子服务器请求所述聊天信息,并将所述聊天信息进行发送,还包括:
[0094]
向上一级的子服务器请求所述聊天信息存储在所述子服务器中,通过所述子服务器将所述聊天信息发送给所述直播间。
[0095]
在一些实施过程中,判断所述子服务器是否存在与所述资源请求相匹配的聊天信息,包括:
[0096]
所述资源请求包括所述聊天信息的内容名称;
[0097]
根据所述内容名称判断所述子服务器是否存在与所述资源请求相匹配的聊天信息。
[0098]
在一些实施过程中,所述丢失率的数学表达为:
[0099][0100]
其中,q为丢失率,w为单位时间内在直播间展示的信息数量,k
·
y
x
为在线人数,p为在线人数发出所述聊天信息的平均比例,其中,x、y、k和p为常数,且y>k>1,x>1,1≥p
>0。
[0101]
在一些实施过程中,所述查询周期的数学表达为:
[0102][0103]
其中,t为查询周期,k
·
y
x
为在线人数,p为在线人数发出所述聊天信息的平均比例,其中,x、y、k和p为常数,且y>k>1,x>1,1≥p>0,m为第一参数且m>1,z为第二参数且(x-z)>1。
[0104]
请参阅图4,图4为直播聊天信息分发的流程示意图,其中,10为客户端,20为服务器端,当直播业务开始时,来自直播间的用户在直播间进行聊天信息的交互,将聊天信息发送给服务器端20,所述服务器端20可以采用多个子服务器的分布式布局形式,例如,可将聊天信息保存于源站的子服务器上,并分布式布局cdn,将cdn中的子服务器作为边缘节点的子服务器,例如,在s1中:服务器端接收来自于直播间的聊天信息,该聊天信息来自于各个客户端的直播间,并将所述聊天信息分散存储在各个子服务器中;
[0105]
s21:根据来自于所述直播间的所述资源请求,确定所述资源请求的用户以及所述用户的互联网协议地址(ip/internet protocol),所述资源请求可以选择超文本传输协议(http/hyper text transfer protocol)请求;
[0106]
s22:根据所述互联网协议地址确定请求距离,通过所述请求距离选择所述子服务器,所述请求距离包括所述用户与所述子服务器的距离,例如,选择请求距离较近的子服务器的集合,从该集合中选择子服务器,又例如,选择请求距离最近的子服务器,降低子服务器与客户端之间的连接距离以及时延,提高了资源请求的相应速度;
[0107]
还可以根据一定的子服务器选择逻辑,选择该直播间的客户端所合适的子服务器,选择逻辑包括:
[0108]
1、所述请求距离;
[0109]
2、用户所处的网络运营商或者网络波动状态;
[0110]
3、子服务器上是否存在与直播间的用户所需的聊天信息;
[0111]
4、各个子服务器的负载情况。
[0112]
例如,在s23:判断所述子服务器是否存在与所述资源请求相匹配的聊天信息;
[0113]
s24:若是,则被选择的所述子服务器将所述聊天信息发送给所述直播间,例如,域名系统(dns/domain name system)服务器去请求cdn中的全局负载均衡器解析域名或者互联网协议地址,全局负载均衡器会为用户/直播间选择一台合适的子服务器用于缓存并提供聊天信息下载服务,而且全局负载均衡器还会返回给用户/直播间一台合适的子服务器的互联网协议地址,域名系统服务器缓存这个互联网协议地址,然后将其返回给客户端,客户端再根据所述互联网协议地址去访问对应的子服务器,下载聊天信息;
[0114]
s25:若否,则所述子服务器向上一级的子服务器请求所述聊天信息,并将所述聊天信息发送给所述直播间,如果上一级的子服务器也没有所述聊天信息,进入步骤s26:继续向上一级进行追溯直至追溯到源站;
[0115]
当上一级的子服务器具有该聊天信息时,则将进入步骤s261:将所述聊天信息下载至上一级子服务器中,再由步骤s251将聊天信息下载至子服务器,步骤s251包括:将来自于上一级子服务器的聊天信息下载至子服务器中。
[0116]
请参阅图6,本发明提供一种直播聊天信息分发系统,该直播聊天信息分发系统可以服务器端的形式存在,所述直播聊天信息分发系统包括:
[0117]
第一接收模块,用于接收来自于直播间的聊天信息,并将所述聊天信息分散存储在各个子服务器中;
[0118]
处理模块,用于根据来自于所述直播间的所述资源请求,确定所述资源请求的用户以及所述用户的互联网协议地址,根据所述互联网协议地址确定请求距离,通过所述请求距离选择所述子服务器,所述请求距离包括所述用户与所述子服务器的距离,被选择的所述子服务器存储有与所述资源请求相匹配的所述聊天信息,设置所述聊天信息的查询周期,随机获取所述查询周期内的聊天信息,并设置所述聊天信息的丢失率,通过所述丢失率对随机获取的所述查询周期内的聊天信息进行丢失处理;
[0119]
第二发送模块,用于将被选择的所述子服务器进行丢失处理后的所述聊天信息发送给所述直播间,以使所述客户端显示所述聊天信息。
[0120]
请参阅图7,本发明提供一种直播聊天信息分发系统,该直播聊天信息分发系统可以客户端的形式存在,所述直播聊天信息分发系统包括:
[0121]
第三发送模块,用于将来自于直播间的聊天信息发送给服务器,以使所述服务器将所述聊天信息分散存储在各个子服务器中;
[0122]
第四发送模块,用将来自于所述直播间的资源请求发送给所述服务器,以使所述服务器确定所述资源请求的用户以及所述用户的互联网协议地址,根据所述互联网协议地址确定请求距离,通过所述请求距离选择所述子服务器,所述请求距离包括所述用户与所述子服务器的距离,被选择的所述子服务器存储有与所述资源请求相匹配的所述聊天信息,设置所述聊天信息的查询周期,随机获取所述查询周期内的聊天信息,并设置所述聊天信息的丢失率,通过所述丢失率对随机获取的所述查询周期内的聊天信息进行丢失处理;
[0123]
显示模块,用于接收并显示来自于所述子服务器进行丢失处理后的所述聊天信息。
[0124]
本发明的实施例还提供了一种能够实现上述方法的电子设备。所属技术领域的技术人员能够理解,本发明的执行主体包括但不限于系统、方法或程序产品。因此,本发明的执行主体可以具体实现为以下执行或者实施形式,即:硬件实施方式、软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”、“系统”、“设备”或者“装置”。
[0125]
下面参照图8来描述根据本发明的这种实施方式的电子设备600。图8显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图8所示,电子设备600以通用计算机设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630。其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“直播聊天信息分发方法”部分中描述的根据本发明各种示例性实施方式的步骤。存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)621和/或高速缓存存储单元622,还可以进一步包括只读存储单元(rom)623。存储单元620还可以包括具有一组(至少一个)程序模块625的程序/实用工具624,这样的程序模块625包括但不限于:操作系统、一个或者多个
应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。电子设备600也可以与一个或多个外部设备800(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口650进行,比如与显示单元640通信。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid(redundant arrays of independent disks/磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
[0126]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算机设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
[0127]
本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,当所述计算机可读指令被计算机执行时,使计算机执行本说明书上述的直播聊天信息分发方法。
[0128]
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
[0129]
在本发明中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。可以以一种或多
种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0130]
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献