本发明专利技术公开了一种对象处理方法和装置,属于计算机技术领域。所述方法包括:从接收队列中获取一个对象;从至少一个处理单元中为对象分配一个处理单元;获取为对象分配的处理单元的负载;若负载大于缓存阈值,则将对象添加至缓存队列中;根据缓存队列对对象进行延迟处理。解决了背景技术中当大量的请求同时需要某一具有Redis端口的Redis实例进行处理时,所导致的请求积压、请求超时、业务访问不可用的问题;当某一处理单元(比如具有Redis端口的Redis实例)的负载过高时,将接收队列中对应于该处理单元的对象添加至缓存队列后再对其进行延迟处理,避免了在接收队列中造成积压的问题,隔离了对应于不同处理单元的对象的相互影响,保证了处理速度。
【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种对象处理方法和装置,属于计算机
。所述方法包括:从接收队列中获取一个对象;从至少一个处理单元中为对象分配一个处理单元;获取为对象分配的处理单元的负载;若负载大于缓存阈值,则将对象添加至缓存队列中;根据缓存队列对对象进行延迟处理。解决了
技术介绍
中当大量的请求同时需要某一具有Redis端口的Redis实例进行处理时,所导致的请求积压、请求超时、业务访问不可用的问题;当某一处理单元(比如具有Redis端口的Redis实例)的负载过高时,将接收队列中对应于该处理单元的对象添加至缓存队列后再对其进行延迟处理,避免了在接收队列中造成积压的问题,隔离了对应于不同处理单元的对象的相互影响,保证了处理速度。【专利说明】对象处理方法和装置
本专利技术涉及计算机
,特别涉及一种对象处理方法和装置。
技术介绍
Redi s是一个开源、支持网络、基于内存的key-value (键值对)数据库。Redi s支 持存储的数据类型包括string (字符串)、list (链表)、set (集合)、zset (有序集合)和 hash (哈希类型)等。在对Redis数据库进行访问的过程中,大致可分为读请求和写请求两 种。 请参考图1,其示出了对Redis数据库进行访问所涉及的示意图。以读请求为例,m 个读请求存放于请求队列12中,m > 1。为了应对大规模的业务访问,需要部署多个Redis 实例14,每个Redis实例14占用一个Redis端口。请求队列12中的读请求由该请求队列 12对应的η个线程进行处理,η > 1。对于任一读请求,系统随机分配一个线程进行处理。 假设线程1对读请求m进行处理,则线程1读取读请求m的key,并通过哈希算法将key映 射到多个Redis端口中的一个,进而通过该Redis端口将读请求下发至与其对应的Redis 实例14,并通过该Redis实例14对该读请求进行处理。比如,该Redis实例14可以提供读 取数据文件的功能。 在实现本专利技术的过程中,专利技术人发现上述技术至少存在以下问题:当请求队列12 中存放的m个读请求的key哈希分布不均匀,或者在某个时间段内存在大量的具有相同的 key的读请求时,将会导致某一 Redis端口对应的Redis实例的负载过高。由于Redis实例 只支持对读请求进行单线程地串行处理,这就导致无法对大量的读请求进行及时地处理, 造成请求积压、请求超时、业务访问不可用的问题。类似的,针对写请求的处理,上述技术也 存在同样的问题。
技术实现思路
为了解决上述技术中存在的当大量的请求同时需要某一具有Redis端口的Redis 实例进行处理时,所导致的请求积压、请求超时、业务访问不可用的问题,本专利技术实施例提 供了一种对象处理方法和装置。所述技术方案如下: 第一方面,提供了一种对象处理方法,用于服务器中,所述方法包括: 从接收队列中获取一个对象;其中,所述接收队列中保存有来自至少一个客户端 的待处理的对象,所述对象为请求或者消息; 从至少一个处理单元中为所述对象分配一个处理单元; 获取为所述对象分配的所述处理单元的负载; 若所述负载大于缓存阈值,则将所述对象添加至缓存队列中; 根据所述缓存队列对所述对象进行延迟处理。 可选的,所述根据所述缓存队列对所述对象进行延迟处理,包括: 从所述缓存队列中获取所述对象; 再次获取为所述对象分配的所述处理单元的负载; 根据所述负载对所述对象进行处理或者将所述对象进行丢弃。 可选的,所述根据所述负载对所述对象进行处理或者将所述对象进行丢弃,包 括: 判断所述负载是否小于第一预定阈值; 若所述负载小于所述第一预定阈值,则通过为所述对象分配的所述处理单元对所 述对象进行处理; 若所述负载大于所述第一预定阈值,则将所述对象进行丢弃。 可选的,所述根据所述负载对所述对象进行处理或者将所述对象进行丢弃,包 括: 判断所述负载与第二预定阈值和第三预定阈值的大小关系,所述第二预定阈值小 于所述第三预定阈值; 若所述负载小于所述第二预定阈值,则通过为所述对象分配的所述处理单元对所 述对象进行处理; 若所述负载大于所述第二预定阈值但小于所述第三预定阈值,则将所述对象进行 随机性丢弃; 若所述负载大于所述第三预定阈值,则将所述对象进行丢弃。 可选的,所述将所述对象进行随机性丢弃,包括: 根据所述第二预定阈值和所述第三预定阈值计算丢弃概率P,0 < P < 1 ; 根据所述丢弃概率P确定是否将所述对象进行丢弃; 若确定将所述对象进行丢弃,则执行所述将所述对象进行丢弃的步骤。 可选的,所述根据所述第二预定阈值和所述第三预定阈值计算丢弃概率P,包括: 当所述处理单元的负载由所述处理单元的平均处理时长Tavg表示时,根据所述第 二预定阈值和所述第三预定阈值T max计算所述丢弃概率P : 【权利要求】1. 一种对象处理方法,其特征在于,用于服务器中,所述方法包括: 从接收队列中获取一个对象;其中,所述接收队列中保存有来自至少一个客户端的待 处理的对象,所述对象为请求或者消息; 从至少一个处理单元中为所述对象分配一个处理单元; 获取为所述对象分配的所述处理单元的负载; 若所述负载大于缓存阈值,则将所述对象添加至缓存队列中; 根据所述缓存队列对所述对象进行延迟处理。2. 根据权利要求1所述的方法,其特征在于,所述根据所述缓存队列对所述对象进行 延迟处理,包括: 从所述缓存队列中获取所述对象; 再次获取为所述对象分配的所述处理单元的负载; 根据所述负载对所述对象进行处理或者将所述对象进行丢弃。3. 根据权利要求2所述的方法,其特征在于,所述根据所述负载对所述对象进行处理 或者将所述对象进行丢弃,包括: 判断所述负载是否小于第一预定阈值; 若所述负载小于所述第一预定阈值,则通过为所述对象分配的所述处理单元对所述对 象进行处理; 若所述负载大于所述第一预定阈值,则将所述对象进行丢弃。4. 根据权利要求2所述的方法,其特征在于,所述根据所述负载对所述对象进行处理 或者将所述对象进行丢弃,包括: 判断所述负载与第二预定阈值和第三预定阈值的大小关系,所述第二预定阈值小于所 述第三预定阈值; 若所述负载小于所述第二预定阈值,则通过为所述对象分配的所述处理单元对所述对 象进行处理; 若所述负载大于所述第二预定阈值但小于所述第三预定阈值,则将所述对象进行随机 性丢弃; 若所述负载大于所述第三预定阈值,则将所述对象进行丢弃。5. 根据权利要求4所述的方法,其特征在于,所述将所述对象进行随机性丢弃,包括: 根据所述第二预定阈值和所述第三预定阈值计算丢弃概率P,〇 < P < 1 ; 根据所述丢弃概率P确定是否将所述对象进行丢弃; 若确定将所述对象进行丢弃,则执行所述将所述对象进行丢弃的步骤。6. 根据权利要求5所述的方法,其特征在于,所述根据所述第二预定阈值和所述第三 预定阈值计算丢弃概率P,包括: 当所述处理单元的负载由所述处理单元的平均处理本文档来自技高网...
【技术保护点】
一种对象处理方法,其特征在于,用于服务器中,所述方法包括:从接收队列中获取一个对象;其中,所述接收队列中保存有来自至少一个客户端的待处理的对象,所述对象为请求或者消息;从至少一个处理单元中为所述对象分配一个处理单元;获取为所述对象分配的所述处理单元的负载;若所述负载大于缓存阈值,则将所述对象添加至缓存队列中;根据所述缓存队列对所述对象进行延迟处理。
【技术特征摘要】
【专利技术属性】
技术研发人员:邱吉雄,林道强,
申请(专利权)人:广州华多网络科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。