首页 / 专利库 / 软件 / 数据处理 / 数据推送及数据接收的方法、装置、设备及系统

数据推送及数据接收的方法、装置、设备及系统

阅读:709发布:2024-01-09

专利汇可以提供数据推送及数据接收的方法、装置、设备及系统专利检索,专利查询,专利分析的服务。并且本公 开关 于一种数据推送及数据接收的方法、装置、设备及系统,所述数据推送的方法包括:响应于客户端发送的 请求 ,从预先创建的多个分组中确定目标分组,其中,各分组中包括多个不同来源的websocket服务实例,各分组具有对应的域名地址;确定所述目标分组对应的目标域名地址,并将所述目标域名地址返回所述客户端,以使得所述客户端基于所述目标域名地址向所述目标分组中的websocket服务实例请求建立长连接,并在所述长连接建立以后接收所述websocket服务实例推送的数据。本 实施例 可以避免用户请求集中在同一websocket服务实例造成该服务实例压 力 过大的情况,达到负载均衡的目的。,下面是数据推送及数据接收的方法、装置、设备及系统专利的具体信息内容。

1.一种数据推送方法,其特征在于,所述数据推送的方法包括:
响应于客户端发送的请求,从预先创建的多个分组中确定目标分组,其中,各分组中包括多个不同来源的websocket服务实例,各分组具有对应的域名地址;
确定所述目标分组对应的目标域名地址,并将所述目标域名地址返回所述客户端,以使得所述客户端基于所述目标域名地址向所述目标分组中的websocket服务实例请求建立长连接,并在所述长连接建立以后接收所述websocket服务实例推送的数据。
2.根据权利要求1所述的数据推送方法,其特征在于,所述响应于客户端发送的请求,从预先创建的多个分组中确定目标分组的步骤包括:
提取所述请求中的特征标识;
按照预设的分组划分策略对所述特征标识进行分组划分计算,并将所述计算的结果命中的分组作为目标分组。
3.根据权利要求2所述的数据推送方法,其特征在于,所述特征标识包括用户标识;
所述按照预设的划分策略对所述特征标识进行分组划分计算,并将所述计算结果命中的分组作为目标分组的步骤包括:
对所述用户标识进行哈希计算,获得第一哈希值;
将所述第一哈希值与所述多个分组的分组数量进行取余运算,将得到的取余结果命中的分组为作为目标分组。
4.根据权利要求3所述的数据推送方法,其特征在于,所述请求包括加入指定直播间的请求;所述特征标识还包括直播间标识或主播标识;
所述按照预设的划分策略对所述特征标识进行分组划分计算,并将所述计算结果命中的分组作为目标分组的步骤包括:
判断所述指定直播间为大直播间或小直播间,其中,当直播间中的观众用户的数量大于或等于预设数量阈值时,则所述直播间为大直播间;若所述数量小于预设数量阈值时,则所述直播间为小直播间;
若所述直播间为小直播间,则对所述直播间标识或主播标识进行哈希计算,获得第二哈希值;将所述第二哈希值与所述多个分组的分组数量进行取余运算,将得到的取余结果命中的分组为作为目标分组;
若所述直播间为大直播间,则对所述用户标识进行哈希计算,获得第一哈希值,将所述第一哈希值与所述多个分组的分组数量进行取余运算,将得到的取余结果命中的分组为作为目标分组。
5.一种数据接收的方法,其特征在于,所述方法应用于客户端中,所述数据接收的方法包括:
在向后台服务器发送请求后,接收所述后台服务器根据所述请求返回的目标域名地址,所述目标域名地址为目标分组的域名地址,所述目标分组为所述后台服务器基于所述请求从多个分组中选择的分组,其中,各分组中包括不同来源的websocket服务实例,各分组具有对应的域名地址;
基于所述目标域名地址向所述目标分组中的websocket服务实例请求建立长连接,并在所述长连接建立以后接收所述websocket服务实例推送的数据。
6.一种数据推送装置,其特征在于,所述数据推送的装置包括:
目标分组确定模,被配置为响应于客户端发送的请求,从预先创建的多个分组中确定目标分组,其中,各分组中包括多个不同来源的websocket服务实例,各分组具有对应的域名地址;
目标域名地址确定模块,被配置为确定所述目标分组对应的目标域名地址;
目标域名地址发送模块,被配置为并将所述目标域名地址返回所述客户端,以使得所述客户端基于所述目标域名地址向所述目标分组中的websocket服务实例请求建立长连接,并在所述长连接建立以后接收所述websocket服务实例推送的数据。
7.一种数据接收的装置,其特征在于,所述装置应用于客户端中,所述数据接收的装置包括:
目标域名地址接收模块,被配置为在向后台服务器发送请求后,接收所述后台服务器根据所述请求返回的目标域名地址,所述目标域名地址为目标分组的域名地址,所述目标分组为所述后台服务器基于所述请求从多个分组中选择的分组,其中,各分组中包括不同来源的websocket服务实例,各分组具有对应的域名地址;
长连接请求模块,被配置为基于所述目标域名地址向所述目标分组中的websocket服务实例请求建立长连接;
数据接收模块,被配置为在所述长连接建立以后接收所述websocket服务实例推送的数据。
8.一种数据处理系统,其特征在于,所述数据处理系统包括:客户端、后台服务器及websocket服务实例集群,其中,所述websocket服务实例集群被划分到多个分组中,各分组中包括多个不同来源的websocket服务实例,各分组具有对应的域名地址;
所述客户端被配置为在向后台服务器发送请求后,接收所述后台服务器根据所述请求返回的目标域名地址,基于所述目标域名地址向对应的目标分组中的websocket服务实例请求建立长连接,并在所述长连接建立以后接收所述websocket服务实例推送的数据;
所述后台服务器被配置为响应于客户端发送的请求,从预先创建的多个分组中确定目标分组;确定所述目标分组对应的目标域名地址,并将所述目标域名地址返回所述客户端;
所述websocket服务实例被配置为基于所述客户端发送的建立长连接的请求,建立与所述客户端的长连接,并通过所述长连接向所述客户端推送数据。
9.一种设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器
其中,所述处理器被配置为执行所述指令,以实现如权利要求1-4或5中任一项所述的方法。
10.一种存储介质,当所述存储介质中的指令由所述设备的处理器执行时,使得所述设备能够执行如权利要求1-4或5中任一项所述的方法。

说明书全文

数据推送及数据接收的方法、装置、设备及系统

技术领域

[0001] 本公开涉及数据处理技术领域,尤其涉及数据推送及数据接收的方法、装置、设备及系统。

背景技术

[0002] WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。例如,在直播场景中,客户端可以通过WebSocket接收从服务器推送下来的直播间消息,WebSocket长连接在直播场景里不但可以提升直播间消息实时性,更极大的减轻了服务器的压
[0003] 基于HTTPS的web站点而言,其要求使用WebSocket的wss协议,因此需要给WebSocket申请wss域名,如图1的架构示意图所示,当用户通过wss域名连接到nginx集群以后,nginx反向代理随机与一台WebSocket服务器建立连接,这会出现多个用户均连接到某一台WebSocket服务器上的情况,使得该服务器负载过大的。例如,假设当前有10万个主播正在直播,如果不作任何策略,任由用户随机连接WebSocket服务器,会导致10w个直播间的观看用户都有可能连接到同一台WebSocket服务器上,因此会使单WebSocket服务器维护10w个直播间状态,给服务器带来巨大压力,影响数据处理实时性。
发明内容
[0004] 本公开提供一种数据推送及数据接收的方法、装置、设备及系统,以至少解决相关技术中单个服务器数据处理压力过大的问题。本公开的技术方案如下:
[0005] 根据本公开实施例的第一方面,提供一种数据推送方法,所述数据推送的方法包括:
[0006] 响应于客户端发送的请求,从预先创建的多个分组中确定目标分组,其中,各分组中包括多个不同来源的websocket服务实例,各分组具有对应的域名地址;
[0007] 确定所述目标分组对应的目标域名地址,并将所述目标域名地址返回所述客户端,以使得所述客户端基于所述目标域名地址向所述目标分组中的websocket服务实例请求建立长连接,并在所述长连接建立以后接收所述websocket服务实例推送的数据。
[0008] 根据本公开实施例的第二方面,提供一种数据接收的方法,所述方法应用于客户端中,所述数据接收的方法包括:
[0009] 在向后台服务器发送请求后,接收所述后台服务器根据所述请求返回的目标域名地址,所述目标域名地址为目标分组的域名地址,所述目标分组为所述后台服务器基于所述请求从多个分组中选择的分组,其中,各分组中包括不同来源的websocket服务实例,各分组具有对应的域名地址;
[0010] 基于所述目标域名地址向所述目标分组中的websocket服务实例请求建立长连接,并在所述长连接建立以后接收所述websocket服务实例推送的数据。
[0011] 根据本公开实施例的第三方面,提供一种数据推送装置,所述数据推送的装置包括:
[0012] 目标分组确定模,被配置为响应于客户端发送的请求,从预先创建的多个分组中确定目标分组,其中,各分组中包括多个不同来源的websocket服务实例,各分组具有对应的域名地址;
[0013] 目标域名地址确定模块,被配置为确定所述目标分组对应的目标域名地址;
[0014] 目标域名地址发送模块,被配置为并将所述目标域名地址返回所述客户端,以使得所述客户端基于所述目标域名地址向所述目标分组中的websocket服务实例请求建立长连接,并在所述长连接建立以后接收所述websocket服务实例推送的数据。
[0015] 根据本公开实施例的第四方面,提供一种数据接收的装置,所述装置应用于客户端中,所述数据接收的装置包括:
[0016] 目标域名地址接收模块,被配置为在向后台服务器发送请求后,接收所述后台服务器根据所述请求返回的目标域名地址,所述目标域名地址为目标分组的域名地址,所述目标分组为所述后台服务器基于所述请求从多个分组中选择的分组,其中,各分组中包括不同来源的websocket服务实例,各分组具有对应的域名地址;
[0017] 长连接请求模块,被配置为基于所述目标域名地址向所述目标分组中的websocket服务实例请求建立长连接;
[0018] 数据接收模块,被配置为在所述长连接建立以后接收所述websocket服务实例推送的数据。
[0019] 根据本公开实施例的第五方面,提供一种数据处理系统,所述数据处理系统包括:客户端、后台服务器及websocket服务实例集群,其中,所述websocket服务实例集群被划分到多个分组中,各分组中包括多个不同来源的websocket服务实例,各分组具有对应的域名地址;
[0020] 所述客户端被配置为在向后台服务器发送请求后,接收所述后台服务器根据所述请求返回的目标域名地址,基于所述目标域名地址向对应的目标分组中的websocket服务实例请求建立长连接,并在所述长连接建立以后接收所述websocket服务实例推送的数据;
[0021] 所述后台服务器被配置为响应于客户端发送的请求,从预先创建的多个分组中确定目标分组;确定所述目标分组对应的目标域名地址,并将所述目标域名地址返回所述客户端;
[0022] 所述websocket服务实例被配置为基于所述客户端发送的建立长连接的请求,建立与所述客户端的长连接,并通过所述长连接向所述客户端推送数据。
[0023] 根据本公开实施例的第六方面,提供一种设备,包括:
[0024] 处理器;
[0025] 用于存储所述处理器可执行指令的存储器
[0026] 其中,所述处理器被配置为执行所述指令,以实现上述的方法。
[0027] 根据本公开实施例的第七方面,提供一种存储介质,当所述存储介质中的指令由所述设备的处理器执行时,使得所述设备能够执行上述的方法。
[0028] 根据本公开实施例的第八方面,提供一种计算机程序产品,包括可执行程序代码,其中,所述程序代码在通过上述装置执行时实施上述的方法。
[0029] 本公开的实施例提供的技术方案至少带来以下有益效果:
[0030] 在本实施例中,响应于客户端发送的请求,本实施例可以首先从预先创建的多个分组中确定目标分组,并确定该目标分组对应的目标域名地址,然后将该目标域名地址返回所述客户端,以使得客户端定向向该目标域名地址对应的目标分组中的websocket服务实例请求建立长连接,并在长连接建立以后接收该websocket服务实例推送的数据。避免用户请求集中在同一websocket服务实例造成该服务实例压力过大的情况,达到负载均衡的目的。对于websocket服务实例而言,无需处理所有客户端的请求,减轻了单服务维护的直播间数量,从而减轻了服务器压力。
[0031] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明
[0032] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
[0033] 图1是本公开的背景技术中提及的数据处理的架构示意图。
[0034] 图2是根据一示例性实施例示出的一种数据推送的方法实施例的流程图
[0035] 图3是根据一示例性实施例示出的本公开的数据处理的架构示意图。
[0036] 图4是根据一示例性实施例示出的一种数据接收的方法实施例的流程图。
[0037] 图5是根据一示例性实施例示出的一种数据推送装置框图
[0038] 图6是根据一示例性实施例示出的一种数据接收的装置框图。
[0039] 图7是根据一示例性实施例示出的一种数据处理系统的框图。
[0040] 图8是根据一示例性实施例示出的一种用于执行上述方法实施例的装置的框图。

具体实施方式

[0041] 为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
[0042] 需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0043] 图2是根据一示例性实施例示出的一种数据推送的方法实施例的流程图,本实施例可以应用于后台服务器中,可以包括以下步骤。
[0044] 在步骤S11中,响应于客户端发送的请求,从预先创建的多个分组中确定目标分组,其中,各分组中包括多个不同来源的websocket服务实例,各分组具有对应的域名地址。
[0045] 在一种例子中,可以按照预设的分组策略将websocket服务实例集群划分到不同的分组中,从而得到多个分组。其中,各分组中可以包括多个不同来源的websocket服务实例。作为一种示例,不同来源的websocket服务实例可以包括来源于不同机房不同机器的websocket服务实例。
[0046] 本实施例对具体的分组策略不作限定,只要可以使得同一分组中的websocket服务实例的来源不同即可,例如,可以使得同一机器的不同websocket服务实例不会进入同一分组、每个分组都包括各个机房的机器实例。
[0047] 例如,假设有Group1及Group2两个分组,机房1中包括机器1和机器2,机房2中包括机器3和机器4,每台机器分别安装有websocket服务实例1和websocket服务实例2,则在分组时可以进行如表1所述的分组:
[0048]Group1 Group2
机房1.机器1.websocket服务实例1 机房1.机器1.websocket服务实例2
机房1.机器2.websocket服务实例1 机房1.机器2.websocket服务实例2
机房2.机器3.websocket服务实例1 机房2.机器3.websocket服务实例2
机房2.机器4.websocket服务实例1 机房2.机器4.websocket服务实例2
[0049] 表1
[0050] 又如,如图3所示,websocket 1及websocket 3位于第一分组,websocket 2及websocket 4位于第二分组,其中,websocket 1与websocket 3来自不同的机房,websocket2与websocket 4来自不同的机房.
[0051] 需要说明的是,分组的数量可以根据各websocket服务实例的压力或者具体的业务确定,如果单个websocket服务实例的压力较大,则可以增加分组数量。例如,在开始分组时可以先分为两组,若两组内的存在某个websocket服务实例的压力依然比较大,则可以增加一个分组,以此类推来平衡不同websocket服务实例的压力。当然也可以按照经验一次性确定需要的分组数量并进行分组,本实施例对此不作限制。
[0052] 在一种实施方式中,还可以分别为每个分组申请配置对应的域名地址,作为一种示例,该域名地址可以为wss域名。例如,针对图3的例子,可以为第一分组申请配置wss域名为Host 1,为第二分组申请配置wss域名为Host 2,即第一分组对外暴露Host 1域名,第二分组对外暴露Host 2域名。
[0053] 在本公开的一种可能的实施方式中,步骤S11可以包括如下步骤:提取所述请求中的特征标识;按照预设的分组划分策略对所述特征标识进行分组划分计算,并将所述计算的结果命中的分组作为目标分组。
[0054] 在一种可能的实施方式中,特征标识可以包括用户标识。上述按照预设的分组划分策略对所述特征标识进行分组划分计算,并将所述计算的结果命中的分组作为目标分组的步骤可以包括如下步骤:对所述用户标识进行哈希计算,获得第一哈希值;将所述第一哈希值与所述多个分组的分组数量进行取余运算,将得到的取余结果命中的分组为作为目标分组。
[0055] 例如,计算hash(userId)%groupSize的值,并将该值命中的分组标识对应的分组作为目标分组,其中,userId为用户标识,groupSize为分组数量。
[0056] 在一种可能的实施场景中,当本实施例应用于直播场景时,则上述请求可以为加入指定直播间的请求;特征标识还可以包括直播间标识或主播标识。上述按照预设的划分策略对所述特征标识进行分组划分计算,并将所述计算结果命中的分组作为目标分组的步骤可以包括如下步骤:
[0057] 判断所述指定直播间为大直播间或小直播间;若所述直播间为小直播间,则对所述直播间标识或主播标识进行哈希计算,获得第二哈希值;将所述第二哈希值与所述多个分组的分组数量进行取余运算,将得到的取余结果命中的分组为作为目标分组;若所述直播间为大直播间,则对所述用户标识进行哈希计算,获得第一哈希值,将所述第一哈希值与所述多个分组的分组数量进行取余运算,将得到的取余结果命中的分组为作为目标分组。
[0058] 在该实施例中,可以首先判断该指定直播间为大直播间或小直播间,其中,当直播间中的观众用户的数量大于或等于预设数量阈值时,则该直播间为大直播间;若直播间中的观众用户的数量小于预设数量阈值时,则该直播间为小直播间。
[0059] 如果指定直播间为大直播间,则可以对用户标识进行哈希计算,并根据计算得到的第一哈希值与多个分组的分组数量进行取余运算,以及将取余运算的运算结果命中的分组作为目标分组,例如,计算hash(userId)%groupSize的值,并将该值命中的分组标识对应的分组作为目标分组,其中,userId为用户标识,groupSize为分组数量。由于大直播间的观众人数比较多,为了避免该直播间的用户都集中由同一分组进行处理给分组的服务实例过大压力的情况,则使用用户标识来确定各用户的目标分组,以分流大直播间的用户流量到各分组中进行负载均衡。例如,假设某个大直播间有100万人观看直播,共有10个分组,则可以将userId 1分配给分组1处理、userId 2分配给分组2处理、…、userId 10分配给分组10处理,userId 11分配给分组1处理等,使得各分组分别负责10万用户的请求,大大降低了服务实例的压力。
[0060] 如果指定直播间为小直播间,则可以对直播间标识进行哈希计算,并根据计算得到的第二哈希值与多个分组的分组数量进行取余运算,以及将取余运算的运算结果命中的分组作为目标分组,例如,计算hash(authorId)%groupSize的值,并将该值命中的分组标识对应的分组作为目标分组,其中,authorId为直播间标识,groupSize为分组数量。由于小直播间的观众人数比较少,因此以直播间标识确定目标分组,可以使得同一直播间的用户都由同一个分组进行处理,例如,将进入直播间1的观众用户都分配给Group1进行处理。
[0061] 当然,若指定直播间为小直播间,除了可以使用直播间标识进行哈希计算以外,还可以使用主播标识进行哈希计算,本实施例对此不作限制。
[0062] 在步骤S12中,确定所述目标分组对应的目标域名地址,并将所述目标域名地址返回所述客户端,以使得所述客户端基于所述目标域名地址向所述目标分组中的websocket服务实例请求建立长连接,并在所述长连接建立以后接收所述websocket服务实例推送的数据。
[0063] 在该步骤中,当确定目标分组以后,则可以根据该目标分组查找该目标分组对应的目标域名地址,然后将该目标域名地址返回客户端中。例如,在图3中,针对用户1及用户2可以为其分配域名地址Host 1,针对用户3可以为其分配域名地址Host 2。
[0064] 针对客户端而言,当其接收到目标域名地址以后,可以根据该目标域名地址向对应的目标分组中的websocket服务实例请求建立长连接。例如,在直播领域中,客户端可以基于目标域名地址向目标分组发送加入指定直播间的请求。在该目标分组中,可以选择其中一个websocket服务实例来处理该请求。在实现时,从目标分组中选择websocket服务实例的方式可以为随机选择或者按照负载均衡原则选择负载少的websocket服务实例,本实施例对此不作限制。
[0065] 负责处理当前用户的请求的websocket服务实例,可以基于上述请求,可以建立与用户对应的客户端之间的长连接,其中,基于websocket建立长连接的方式可以采用通用的方式,本实施例对此不作限制。
[0066] 根据建立的长连接,websocket服务实例可以对客户端进行主动的数据推送,例如,当直播间产生新数据时,将该新数据推送至客户端中。
[0067] 例如,在图3中,用户1可以通过wss域名Host 1连接到反向代理nginx,nginx将该用户1发送的进入直播间的请求发送至Host 1对应的第一分组,然后由第一分组中的websocket,如websocket 1处理客户端的请求,websocket 1首先与用户1对应的客户端建立长连接,然后根据该长连接向该客户端推送直播数据,以由客户端播放该直播数据。
[0068] 在本实施例中,响应于客户端发送的请求,本实施例可以首先从预先创建的多个分组中确定目标分组,并确定该目标分组对应的目标域名地址,然后将该目标域名地址返回所述客户端,以使得客户端定向向该目标域名地址对应的目标分组中的websocket服务实例请求建立长连接,并在长连接建立以后接收该websocket服务实例推送的数据。避免用户请求集中在同一websocket服务实例造成该服务实例压力过大的情况,达到负载均衡的目的。对于websocket服务实例而言,无需处理所有客户端的请求,减轻了单服务维护的直播间数量,从而减轻了服务器压力。
[0069] 图4是根据一示例性实施例示出的一种数据接收的方法实施例的流程图,本实施例可以应用于客户端中,可以包括以下步骤。
[0070] 在步骤S21中,在向后台服务器发送请求后,接收所述后台服务器根据所述请求返回的目标域名地址,所述目标域名地址为目标分组的域名地址,所述目标分组为所述后台服务器基于所述请求从多个分组中选择的分组,其中,各分组中包括不同来源的websocket服务实例,各分组具有对应的域名地址。
[0071] 在本实施例中,客户端向后台服务器发送的请求的作用是请求后台服务器为本客户端分配目标分组。当客户端向后台服务器发送请求以后,等待后台服务器返回目标域名地址。
[0072] 在步骤S22中,基于所述目标域名地址向所述目标分组中的websocket服务实例请求建立长连接,并在所述长连接建立以后接收所述websocket服务实例推送的数据。
[0073] 在本公开的一种可能的实施方式中,步骤S22进一步可以包括如下步骤:基于所述目标域名地址向所述目标分组发送加入指定直播间的请求,以由所述目标分组中的其中一个websocket服务实例根据所述请求建立与本客户端的长连接。
[0074] 当其接收到目标域名地址以后,可以根据该目标域名地址向对应的目标分组中的websocket服务实例请求建立长连接。例如,在直播领域中,客户端可以基于目标域名地址向目标分组发送加入指定直播间的请求。在该目标分组中,可以选择其中一个websocket服务实例来处理该请求。在实现时,从目标分组中选择websocket服务实例的方式可以为随机选择或者按照负载均衡原则选择负载少的websocket服务实例,本实施例对此不作限制。
[0075] 在本公开的一种可能的实施方式中,客户端接收到的推送的数据可以包括直播数据,则客户端在接收到该数据以后可以播放该直播数据。
[0076] 在本实施例中,客户端在向后台服务器发送请求后,可以根据接收的该后台服务器根据上述请求返回的目标域名地址,向该目标分组中的websocket服务实例请求建立长连接,并在长连接建立以后接收所述websocket服务实例推送的数据,以实现客户端请求的定向发送,避免用户请求集中在同一websocket服务实例造成该服务实例压力过大的情况,达到负载均衡的目的。
[0077] 图5是根据一示例性实施例示出的一种数据推送装置框图。参照图5,该装置包括目标分组确定模块501、目标域名地址确定模块502和目标域名地址发送模块503。
[0078] 目标分组确定模块501,被配置为响应于客户端发送的请求,从预先创建的多个分组中确定目标分组,其中,各分组中包括多个不同来源的websocket服务实例,各分组具有对应的域名地址;
[0079] 目标域名地址确定模块502,被配置为确定所述目标分组对应的目标域名地址;
[0080] 目标域名地址发送模块503,被配置为并将所述目标域名地址返回所述客户端,以使得所述客户端基于所述目标域名地址向所述目标分组中的websocket服务实例请求建立长连接,并在所述长连接建立以后接收所述websocket服务实例推送的数据。
[0081] 在本公开的一种可能的实施方式中,所述目标分组确定模块501可以包括:
[0082] 特征标识提取子模块,被配置为提取所述请求中的特征标识;
[0083] 分组划分子模块,被配置为按照预设的分组划分策略对所述特征标识进行分组划分计算,并将所述计算的结果命中的分组作为目标分组。
[0084] 在本公开的一种可能的实施方式中,所述特征标识包括用户标识;
[0085] 所述分组划分子模块具体被配置为:
[0086] 对所述用户标识进行哈希计算,获得第一哈希值;
[0087] 将所述第一哈希值与所述多个分组的分组数量进行取余运算,将得到的取余结果命中的分组为作为目标分组。
[0088] 在本公开的一种可能的实施方式中,所述请求包括加入指定直播间的请求;所述特征标识还包括直播间标识或主播标识;
[0089] 所述分组划分子模块具体被配置为:
[0090] 判断所述指定直播间为大直播间或小直播间,其中,当直播间中的观众用户的数量大于或等于预设数量阈值时,则所述直播间为大直播间;若所述数量小于预设数量阈值时,则所述直播间为小直播间;
[0091] 若所述直播间为小直播间,则对所述直播间标识或主播标识进行哈希计算,获得第二哈希值;将所述第二哈希值与所述多个分组的分组数量进行取余运算,将得到的取余结果命中的分组为作为目标分组;
[0092] 若所述直播间为大直播间,则对所述用户标识进行哈希计算,获得第一哈希值,将所述第一哈希值与所述多个分组的分组数量进行取余运算,将得到的取余结果命中的分组为作为目标分组。
[0093] 在本公开的一种可能的实施方式中,所述数据推送装置还包括:
[0094] 分组模块,被配置为按照预设的分组策略将websocket服务实例集群划分到不同的分组中;
[0095] 域名地址配置模块,被配置为分别为所述分组配置对应的域名地址。
[0096] 图6是根据一示例性实施例示出的一种数据接收的装置框图,所述装置应用于客户端中,参照图6,该装置包括目标域名地址接收模块601、长连接请求模块602和数据接收模块603。
[0097] 目标域名地址接收模块601,被配置为在向后台服务器发送请求后,接收所述后台服务器根据所述请求返回的目标域名地址,所述目标域名地址为目标分组的域名地址,所述目标分组为所述后台服务器基于所述请求从多个分组中选择的分组,其中,各分组中包括不同来源的websocket服务实例,各分组具有对应的域名地址;
[0098] 长连接请求模块602,被配置为基于所述目标域名地址向所述目标分组中的websocket服务实例请求建立长连接;
[0099] 数据接收模块603,被配置为在所述长连接建立以后接收所述websocket服务实例推送的数据。
[0100] 在本公开的一种可能的实施方式中,所述长连接请求模块602具体被配置为:
[0101] 基于所述目标域名地址向所述目标分组发送加入指定直播间的请求,以由所述目标分组中的其中一个websocket服务实例根据所述请求建立与本客户端的长连接。
[0102] 图7是根据一示例性实施例示出的一种数据处理系统的框图,如图7所示,所述数据处理系统包括:客户端10、后台服务器20及websocket服务实例集群30,其中,所述websocket服务实例集群被划分到多个分组中,各分组中包括多个不同来源的websocket服务实例,各分组具有对应的域名地址;
[0103] 所述客户端10被配置为在向后台服务器发送请求后,接收所述后台服务器根据所述请求返回的目标域名地址,基于所述目标域名地址向对应的目标分组中的websocket服务实例请求建立长连接,并在所述长连接建立以后接收所述websocket服务实例推送的数据;
[0104] 所述后台服务器20被配置为响应于客户端发送的请求,从预先创建的多个分组中确定目标分组;确定所述目标分组对应的目标域名地址,并将所述目标域名地址返回所述客户端;
[0105] 所述websocket服务实例30被配置为基于所述客户端发送的建立长连接的请求,建立与所述客户端的长连接,并通过所述长连接向所述客户端推送数据。
[0106] 关于上述实施例中的装置及系统,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0107] 图8是根据一示例性实施例示出的一种用于执行上述方法实施例的装置的框图。
[0108] 在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述图2或图4的方法实施例。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
[0109] 本公开实施例还提供一种设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现上述图2或图4的方法。
[0110] 本公开实施例还提供一种存储介质,当所述存储介质中的指令由所述设备的处理器执行时,使得所述设备能够执行上述图2或图4的方法。
[0111] 本公开实施例还提供一种计算机程序产品,包括可执行程序代码,其中,所述程序代码在通过上述装置执行时实施根据图2或图4的方法实施例。
[0112] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0113] 应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈