一种长连接请求数据的方法及终端技术

技术编号:36186502 阅读:41 留言:0更新日期:2022-12-31 20:51
本发明专利技术公开了一种长连接请求数据的方法及终端,在缓存代理层中创建第一数量的第一缓存对象,并在创建长连接时为长连接和第一缓存对象建立映射关系,在长连接对应的第一缓存对象中进行本地缓存数据的请求和加锁。因此,通过缓存代理层来操作本地缓存数据,并且将缓存代理层细分成多个缓存对象,在对本地缓存数据进行加锁处理时,就不需要对整个缓存代理层进行加锁,而是针对其中的缓存对象进行加锁,不会对其他的缓存对象造成影响,从而在实现资源加锁的同时,保证数据的快速访问;进一步地,由于对缓存代理层中的缓存对象进行加锁,因此不需要部署多个实例,从而减少额外的机器资源。从而减少额外的机器资源。从而减少额外的机器资源。

【技术实现步骤摘要】
一种长连接请求数据的方法及终端


[0001]本专利技术涉及数据内存
,特别涉及一种长连接请求数据的方法及终端。

技术介绍

[0002]移动互联网蓬勃发展的今天,大部分手机APP都提供了消息推送功能,如新闻客户端的热点新闻推荐、IM工具的聊天消息提醒、电商产品促销信息、企业应用的通知和审批流程等。推送对于提高产品活跃度、提高功能模块使用率、提升用户粘性、提升用户留存率起到了重要作用。
[0003]现在很多的推送应用中都有一个多集群部署的接入服务,客户端每次都是与这个集群中的某一个接入应用建立长连接,建立后,服务端与客户端会保持有一个长连接,所有的消息收发都是通过这个长连接来进行的。而这样的长连接有很多,一般每一个接入应用基本上都会有几万的长连接保持。
[0004]在现在的接入应用中,针对这些长连接的信息都是保存在本地内存中的,一般是以客户端唯一标识作为key,其他的相关信息作为一个value对象存放在本地内存中。此时,因为这个对象是一个共享对象,如果有多个连接都试图尝试操作这个共享对象时,则有可能会造成数据错乱。目前为了保证推送的连接快速建立,一般系统都是对此对象不加锁,以此来提高系统性能。但是超高并发场景下,则可能存在数据错乱的问题。对于要求较高的系统,则会进行加锁处理,因此会限制一定的性能,所以服务端需要部署多个应用实例,才能够分摊这样的性能损失,但是就需要额外的机器资源,提高成本。

技术实现思路

[0005]本专利技术所要解决的技术问题是:提供一种长连接请求数据的方法及终端,能够实现资源加锁的同时,保证数据的快速访问,并减少额外的机器资源。
[0006]为了解决上述技术问题,本专利技术采用的技术方案为:
[0007]一种长连接请求数据的方法,包括步骤:
[0008]在缓存代理层中创建第一数量的第一缓存对象;
[0009]创建长连接时为所述长连接和所述第一缓存对象建立映射关系;
[0010]在所述长连接对应的第一缓存对象中进行本地缓存数据的请求和加锁。
[0011]为了解决上述技术问题,本专利技术采用的另一种技术方案为:
[0012]一种长连接请求数据的终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0013]在缓存代理层中创建第一数量的第一缓存对象;
[0014]创建长连接时为所述长连接和所述第一缓存对象建立映射关系;
[0015]在所述长连接对应的第一缓存对象中进行本地缓存数据的请求和加锁。
[0016]本专利技术的有益效果在于:在缓存代理层中创建第一数量的第一缓存对象,并在创建长连接时为长连接和第一缓存对象建立映射关系,在长连接对应的第一缓存对象中进行
本地缓存数据的请求和加锁。因此,通过缓存代理层来操作本地缓存数据,并且将缓存代理层细分成多个缓存对象,在对本地缓存数据进行加锁处理时,就不需要对整个缓存代理层进行加锁,而是针对其中的缓存对象进行加锁,不会对其他的缓存对象造成影响,从而在实现资源加锁的同时,保证数据的快速访问;进一步地,由于对缓存代理层中的缓存对象进行加锁,因此不需要部署多个实例,从而减少额外的机器资源。
附图说明
[0017]图1为本专利技术实施例的一种长连接请求数据的方法的流程图;
[0018]图2为本专利技术实施例的一种长连接请求数据的终端的示意图;
[0019]标号说明:
[0020]1、一种长连接请求数据的终端;2、存储器;3、处理器。
具体实施方式
[0021]为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0022]请参照图1,本专利技术实施例提供了一种长连接请求数据的方法,包括步骤:
[0023]在缓存代理层中创建第一数量的第一缓存对象;
[0024]创建长连接时为所述长连接和所述第一缓存对象建立映射关系;
[0025]在所述长连接对应的第一缓存对象中进行本地缓存数据的请求和加锁。
[0026]从上述描述可知,本专利技术的有益效果在于:在缓存代理层中创建第一数量的第一缓存对象,并在创建长连接时为长连接和第一缓存对象建立映射关系,在长连接对应的第一缓存对象中进行本地缓存数据的请求和加锁。因此,通过缓存代理层来操作本地缓存数据,并且将缓存代理层细分成多个缓存对象,在对本地缓存数据进行加锁处理时,就不需要对整个缓存代理层进行加锁,而是针对其中的缓存对象进行加锁,不会对其他的缓存对象造成影响,从而在实现资源加锁的同时,保证数据的快速访问;进一步地,由于对缓存代理层中的缓存对象进行加锁,因此不需要部署多个实例,从而减少额外的机器资源。
[0027]进一步地,在所述长连接对应的第一缓存对象中进行本地缓存数据的请求和加锁包括:
[0028]在所述长连接请求进行数据读取操作时,则直接通过第一缓存对象获取本地缓存数据;
[0029]在所述长连接请求进行写入读取操作时,若第一缓存对象处于空闲状态,则通过第一缓存对象进行本地缓存数据的写入,并将所述第一缓存对象加锁,若第一缓存对象不处于空闲状态,则将所述长连接请求分配至其他缓存对象中处理。
[0030]由上述描述可知,通过第一缓存对象对本地缓存数据进行写操作时,此时若第一缓存对象处于空闲状态,则会对第一缓存对象进行加锁处理,否则将长连接请求分配至其他缓存对象中处理,提高数据访问效率。
[0031]进一步地,为所述长连接和所述第一缓存对象建立映射关系包括:
[0032]为所述长连接设置唯一标识,对所述唯一标识进行哈希计算,得到哈希计算结果;
[0033]根据所述哈希计算结果在所述缓存代理层中确定与所述长连接对应的第一缓存
对象,并建立映射关系。
[0034]由上述描述可知,通过长连接的唯一标识的哈希计算结果确定长连接对应的第一缓存对象,能够确定长连接与第一缓存对象的一一对应关系,便于后续直接根据第一缓存对象进行长连接的数据请求处理。
[0035]进一步地,还包括:
[0036]判断长连接的数量是否达到第一预设数量,若是,则在所述缓存代理层中创建第二数量的第二缓存对象,重新建立长连接与第二缓存对象的映射关系;
[0037]将长连接请求从对应的第一缓存对象切换至对应的第二缓存对象中,并删除所述第一缓存对象;
[0038]所述第一数量小于所述第二数量。
[0039]由上述描述可知,当长连接的数量达到第一预设数量时,对缓存代理层中的缓存对象进行动态扩容,能够提高请求效率。
[0040]进一步地,还包括:
[0041]判断长连接的数量是否小于第二预设数量,若是,则在所述缓存代理层中创建第三数量的第三缓存对象,重新建立长连接与第三缓存对象的映射关系;
[0042]将长连接请求从对应的第二缓存对象切换至对应的第三缓存对象中,并删除所述第二缓存对象;
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种长连接请求数据的方法,其特征在于,包括步骤:在缓存代理层中创建第一数量的第一缓存对象;创建长连接时为所述长连接和所述第一缓存对象建立映射关系;在所述长连接对应的第一缓存对象中进行本地缓存数据的请求和加锁。2.根据权利要求1所述的一种长连接请求数据的方法,其特征在于,在所述长连接对应的第一缓存对象中进行本地缓存数据的请求和加锁包括:在所述长连接请求进行数据读取操作时,则直接通过第一缓存对象获取本地缓存数据;在所述长连接请求进行写入读取操作时,若第一缓存对象处于空闲状态,则通过第一缓存对象进行本地缓存数据的写入,并将所述第一缓存对象加锁,若第一缓存对象不处于空闲状态,则将所述长连接请求分配至其他缓存对象中处理。3.根据权利要求1所述的一种长连接请求数据的方法,其特征在于,为所述长连接和所述第一缓存对象建立映射关系包括:为所述长连接设置唯一标识,对所述唯一标识进行哈希计算,得到哈希计算结果;根据所述哈希计算结果在所述缓存代理层中确定与所述长连接对应的第一缓存对象,并建立映射关系。4.根据权利要求1所述的一种长连接请求数据的方法,其特征在于,还包括:判断长连接的数量是否达到第一预设数量,若是,则在所述缓存代理层中创建第二数量的第二缓存对象,重新建立长连接与第二缓存对象的映射关系;将长连接请求从对应的第一缓存对象切换至对应的第二缓存对象中,并删除所述第一缓存对象;所述第一数量小于所述第二数量。5.根据权利要求4所述的一种长连接请求数据的方法,其特征在于,还包括:判断长连接的数量是否小于第二预设数量,若是,则在所述缓存代理层中创建第三数量的第三缓存对象,重新建立长连接与第三缓存对象的映射关系;将长连接请求从对应的第二缓存对象切换至对应的第三缓存对象中,并删除所述第二缓存对象;所述第三数量小于所述第二数量。6.一种长连接请求数据的终端,包括存储器、处理器以及存储在所述存储器...

【专利技术属性】
技术研发人员:刘德建郭孟祺郭凤英林斯陈娟陈宏
申请(专利权)人:福建天泉教育科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1