一种基于特定策略降低搜索复杂度以应对超负荷搜索请求的方法技术

技术编号:20075198 阅读:27 留言:0更新日期:2019-01-15 00:40
本发明专利技术公开了一种基于特定策略降低搜索复杂度以应对超负荷搜索请求的方法,其特征在于,包括步骤1:标识搜索请求;步骤2:区分请求和附加处理策略标志;步骤3:分策略处理请求;步骤4:返回结果;步骤5:定期监控动态调整策略;步骤6:记录过程评估影响。达到将有损服务的涉及范围控制在最小影响程度下,让搜索复杂度降低的程度也跟随搜索请求并发负荷情况进行动态的调整的效果。

A Method of Reducing Search Complexity to Deal with Overload Search Request Based on Specific Strategy

The invention discloses a method for reducing search complexity to respond to overload search requests based on specific strategies, which is characterized by step 1: identifying search requests; step 2: distinguishing requests from additional processing strategy marks; step 3: processing requests by strategy; step 4: returning results; step 5: periodically monitoring dynamic adjustment strategies; step 6: recording process to evaluate impact. \u3002 To achieve the goal of minimizing the scope of damaged services, and to reduce the search complexity with the dynamic adjustment of the concurrent load of search requests.

【技术实现步骤摘要】
一种基于特定策略降低搜索复杂度以应对超负荷搜索请求的方法
本专利技术涉及数据搜索
,特别是涉及一种基于特定策略降低搜索复杂度以应对超负荷搜索请求的方法;
技术介绍
搜索系统是高负荷计算系统,需要占用大量的CPU计算时间和内存资源,同时线上的搜索系统又需要保持高可用性,并且响应时间要求在毫秒级,因此其占用的系统资源和其能处理的最大搜索请求并发一定是成一定范围比例的;公司运营需要考虑经济效益,所花费的硬件成本是有限的;对于搜索平台来说,在整个业务系统中属于后台服务提供者,其开放给所有接入的业务系统使用,其承担的总处理能力是相对有限的;当出现超负荷搜索请求,即搜索请求并发数量超过系统最大负荷时,搜索平台会容易出现实例内存溢出或负载过高导致应用崩溃无法提供服务的情况;为了在有限的硬件成本下,可以应对这种超负荷搜索请求出现;需要搜索平台系统能够有一种基于某种特定策略来降低搜索复杂程度,通过有损服务的思想来实现应对超负荷请求;有损服务思想是公认的基于有限资源下,通过牺牲部分不重要或者非核心的用户体验来最大程度满足基本服务需求;搜索平台提供的是一个搜索服务,本身即含有一定的模糊性,其天然区分于数据库系统的一致性要求,对于同样的搜索词,可以给出不同的搜索结果集合,只要搜索结果集合满足一定的精准性和相关性即可;而电子商务中搜索平台其搜索业务的复杂度是非常高的,搜索计算不仅仅包括基于Lucene打分的召回排序,还要加入很多复杂的业务定制逻辑,例如考虑其搜索域中包含的商品信息质量、商家会员级别、历史成交情况、用户点击情况、并对集中在同一会员商家名下的商品还要做适量的衰减;其处理逻辑消耗的计算资源和内存资源很多,尤其例如接入了个性化搜索,还要考虑搜索用户画像中的相关搜索行为偏好,兴趣网络等等;通过降低搜索复杂度,可以使搜索平台在同样的搜索硬件资源下提升其处理搜索请求的并发能力,这是一种高效实用的技术应用场景;
技术实现思路
本专利技术所要解决的技术问题是克服现有技术的不足,提供一种基于特定策略降低搜索复杂度以应对超负荷搜索请求的方法,通过对收到的所有搜索请求进行不同的策略划分不同的用户群体,将其中对业务价值影响不大的搜索请求进行搜索复杂度的降低,降低的方法是去除搜索查询请求中的排序,降低召回量,从而降低其对搜索服务器性能的占用和提高搜索服务集群的吞吐能力,使其避免因大量突发的超负荷搜索请求导致整个服务集群无法服务。超负荷搜索请求是指搜索平台遇到超过其最大处理负荷的搜索并发请求导致系统负载LoadAverage指标增高。为解决上述技术问题,本专利技术提供一种基于特定策略降低搜索复杂度以应对超负荷搜索请求的方法,包括如下步骤:步骤1:标识搜索请求,即所有发往搜索服务集群的搜索请求都需要带上特定的用户标识,标识包括用户来源IP,用户登录的Cookie信息,Spider(爬虫引擎)标志位,所有搜索请求都会首先提交给一个搜索集群转发器(Dispatcher)处理;步骤2:区分请求和附加处理策略标志,即搜索集群转发器(Dispatcher)会根据管理员配置好的策略规则,将这些搜索请求进行用户优先级区分,同时判断当前的搜索请求数量和服务器负载是否达到了触发浪涌应对的标准,区分不同的用户搜索请求并附加上特定的搜索处理策略标志,然后由Dispatcher转发给集群中某个搜索服务实例(Searcher)处理;步骤3:分策略处理请求,即搜索集群中的某个搜索服务实例(Searcher)负责收到该搜索处理策略标志位的搜索请求后,根据该策略标志的不同进行相应的处理;步骤4:返回结果,即搜索服务实例(Searcher)将处理完的搜索结果返回给搜索集群转发器(Dispatcher),搜索集群转发器再返回结果给对应发起请求的搜索客户端;步骤5:定期监控动态调整策略,即当搜索集群转发器(Dispatcher)定期扫描发现超负荷搜索请求减缓或加重的时候(负载和访问量的相关指标在界限值波动时),则根据特定处理逻辑,进行波动处理,直至超负荷搜索请求结束,所有指标恢复正常;步骤6:记录过程评估影响,即搜索系统会记录所有处理流程和涉及到的搜索请求信息,并在浪涌结束后,后台通过邮件的方式自动通知相关业务干系人,以评估降低搜索复杂度的影响范围。所述步骤2中,还包括:步骤2-1:设置策略规则,包括设定策略级别指标和设定区分用户处理规则;所述设定策略级别指标是指:管理员会配置策略分为四个级别,从级别1到级别4,根据当前搜索请求数量和服务器负载来进行不同级别的调用,每个级别的数据阈值是可以由管理员根据策略级别指标进行人工配置;策略级别指标包括:当前对应索引的每秒搜索请求并发数,当前搜索集群中服务器的5分钟平均服务器负载(以Linux操作系统的LoadAverage的参数值为参照);所述设定区分用户处理规则是指:管理员会区分用户设定不同的级别规则,将用户分为爬虫标识Spidername和用户标识Username,并设置在不同的策略级别上;步骤2-2:1级策略处理,即当定期扫描搜索服务器负载后,如果当搜索请求数量超过系统预设最大容量值或搜索服务器负载的5分钟LoadAverage值大于服务器CPU总核数,即启动级别1级应对策略,该策略会在Dispatcher收到的所有用户标识中识别出带有Spidername的搜索请求,将带有OtherSpider标志位的搜索请求过滤出来,然后在将这些请求后加入特定搜索处理策略标志位再交给相应的搜索集群服务实例进行处理,此时加入的搜索处理策略标志位为*A*;步骤2-3:2级策略处理,即在定期扫描后,当搜索请求数量超过系统预设最大容量值或搜索服务器负载的5分钟LoadAverage值仍然大于服务器CPU总核数时,即启动级别2级应对策略,该策略会在Dispatcher收到的所有用户标识中识别出所有带有爬虫标记的搜索请求,不再区分Spidername的优先级;然后在将这些请求后加入特定搜索处理策略标志位再交给相应的搜索集群服务实例进行处理,此时加入的搜索处理策略标志位为*A*,同时将步骤2-2中的原对应添加的搜索标志位改为*B*;步骤2-4:3级策略处理,即在定期扫描后,Dispatcher发现当搜索请求数量超过系统预设最大容量值或当搜索服务器负载的5分钟LoadAverage值仍然大于服务器CPU总核数时,即启动级别3级应对策略,该策略会在Dispatcher收到的用户Cookie信息中判断该用户是否属于对应业务平台的注册用户,如果判断该请求中用户并非平台注册用户,则该用户的Username标识为Other,将这些请求后加入特定搜索处理策略标志位再交给相应的搜索集群服务实例进行处理,此时加入的搜索处理策略标志位为*A*,同时逐级升级将步骤2-3中的原对应添加的搜索标志位改为*B*,同时将步骤2-2中的原对应添加的搜索标志位改为*C*;步骤2-5:4级策略处理,即在定期扫描后,Dispatcher发现当搜索请求数量超过系统预设最大容量值或当搜索服务器负载的5分钟LoadAverage值仍然大于服务器CPU总核数时,即启动级别4级应对策略,该策略会在Dispatcher收到的所有用户请求后,将注册用户标识,也就是Username=Login的用户请求中加入本文档来自技高网
...

【技术保护点】
1.一种基于特定策略降低搜索复杂度以应对超负荷搜索请求的方法,其特征在于,包括如下步骤:步骤1:标识搜索请求,即所有发往搜索服务集群的搜索请求都需要带上特定的用户标识,标识包括用户来源IP,用户登录的Cookie信息,Spider(爬虫引擎)标志位,所有搜索请求都会首先提交给一个搜索集群转发器(Dispatcher)处理;步骤2:区分请求和附加处理策略标志,即搜索集群转发器(Dispatcher)会根据管理员配置好的策略规则,将这些搜索请求进行用户优先级区分,同时判断当前的搜索请求数量和服务器负载是否达到了触发浪涌应对的标准,区分不同的用户搜索请求并附加上特定的搜索处理策略标志,然后由Dispatcher转发给集群中某个搜索服务实例(Searcher)处理;步骤3:分策略处理请求,即搜索集群中的某个搜索服务实例(Searcher)负责收到该搜索处理策略标志位的搜索请求后,根据该策略标志的不同进行相应的处理;步骤4:返回结果,即搜索服务实例(Searcher)将处理完的搜索结果返回给搜索集群转发器(Dispatcher),搜索集群转发器再返回结果给对应发起请求的搜索客户端;步骤5:定期监控动态调整策略,即当搜索集群转发器(Dispatcher)定期扫描发现超负荷搜索请求减缓或加重的时候(负载和访问量的相关指标在界限值波动时),则根据特定处理逻辑,进行波动处理,直至超负荷搜索请求结束,所有指标恢复正常;步骤6:记录过程评估影响,即搜索系统会记录所有处理流程和涉及到的搜索请求信息,并在浪涌结束后,后台通过邮件的方式自动通知相关业务干系人,以评估降低搜索复杂度的影响范围。...

【技术特征摘要】
1.一种基于特定策略降低搜索复杂度以应对超负荷搜索请求的方法,其特征在于,包括如下步骤:步骤1:标识搜索请求,即所有发往搜索服务集群的搜索请求都需要带上特定的用户标识,标识包括用户来源IP,用户登录的Cookie信息,Spider(爬虫引擎)标志位,所有搜索请求都会首先提交给一个搜索集群转发器(Dispatcher)处理;步骤2:区分请求和附加处理策略标志,即搜索集群转发器(Dispatcher)会根据管理员配置好的策略规则,将这些搜索请求进行用户优先级区分,同时判断当前的搜索请求数量和服务器负载是否达到了触发浪涌应对的标准,区分不同的用户搜索请求并附加上特定的搜索处理策略标志,然后由Dispatcher转发给集群中某个搜索服务实例(Searcher)处理;步骤3:分策略处理请求,即搜索集群中的某个搜索服务实例(Searcher)负责收到该搜索处理策略标志位的搜索请求后,根据该策略标志的不同进行相应的处理;步骤4:返回结果,即搜索服务实例(Searcher)将处理完的搜索结果返回给搜索集群转发器(Dispatcher),搜索集群转发器再返回结果给对应发起请求的搜索客户端;步骤5:定期监控动态调整策略,即当搜索集群转发器(Dispatcher)定期扫描发现超负荷搜索请求减缓或加重的时候(负载和访问量的相关指标在界限值波动时),则根据特定处理逻辑,进行波动处理,直至超负荷搜索请求结束,所有指标恢复正常;步骤6:记录过程评估影响,即搜索系统会记录所有处理流程和涉及到的搜索请求信息,并在浪涌结束后,后台通过邮件的方式自动通知相关业务干系人,以评估降低搜索复杂度的影响范围。2.如权利要求1所述的一种基于特定策略降低搜索复杂度以应对超负荷搜索请求的方法,其特征在于:所述步骤2中,还包括:步骤2-1:设置策略规则,包括设定策略级别指标和设定区分用户处理规则;所述设定策略级别指标是指:管理员会配置策略分为四个级别,从级别1到级别4,根据当前搜索请求数量和服务器负载来进行不同级别的调用,每个级别的数据阈值是可以由管理员根据策略级别指标进行人工配置;策略级别指标包括:当前对应索引的每秒搜索请求并发数,当前搜索集群中服务器的5分钟平均服务器负载(以Linux操作系统的LoadAverage的参数值为参照);所述设定区分用户处理规则是指:管理员会区分用户设定不同的级别规则,将用户分为爬虫标识Spidername和用户标识Username,并设置在不同的策略级别上;步骤2-2:1级策略处理,即当定期扫描搜索服务器负载后,如果当搜索请求数量超过系统预设最大容量值或搜索服务器负载的5分钟LoadAverage值大于服务器CPU总核数,即启动级别1级应对策略,该策略会在Dispatcher收到的所有用户标识中识别出带有Spidername的搜索请求,将带有OtherSpider标志位的搜索请求过滤出来,然后在将这些请求后加入特定搜索处理策略标志位再交给相应的搜索集群服务实例进行处理,此时加入的搜索处理策略标志位为*A*;步骤2-3:2级策略处理,即在定期扫描后,当搜索请求数量超过系统预设最大容量值或搜索服务器负载的5分钟LoadAverage值仍然大于服务器CPU总核数时,即启动级别2级应对策略,该策略会在Dispatcher收到的所有用户标识中识别出所有带有爬虫标记的搜索请求,不再区分Spidername的优先级;然后在将这些请求后加入特定搜索处理策略标志位再交给相应的搜索集群服务实例进行处理,此时加入的搜索处理策略标志位为*A*,同时将步骤2-2中的原对应添加的搜索标志位改为*B*;步骤2-4:3级策略处理,即在定期扫描后,Dispatcher发现当搜索请求数量超过系统预设最大容量值或当搜索服务器负载的5分钟LoadAverage值仍然大于服务器CPU总核数时,即启动级别3级应对策略,该策略会在Dispatcher收到的用户Cookie信息中判断该用户是否属于对应业务平台的注册用户,如果判断该请求中用户并非平台注册用户,则该用户的Username标识为Other,将这些请求后加入特定搜索处理策略标志位再交给相应的搜索集群服务实例进行处理,此时加入的搜索处理策略标志位为*A*,同时逐级升级将步骤2-3中的原对应添加的搜索标志位改为*B*,同时将步骤2-2中的原对应添加的搜索标志位改为*C*;步骤2-5:4级策略处理,即在定期扫描后,Dispatcher发现当搜索请求数量超过系统预设最大容量值或当搜索服务器负载的5分钟LoadAverage值仍然大于服务器CPU总核数时,即启动级别4级应对策略,该策略会在Dispatcher收到的所有用户请求后,将注册用户标识,也就是Username=Login的用户请求中加入特定搜索处理策略标志位再交给相应的搜索集群服务实例进行处理,此时加入的搜索处理策略标志位为*A*,同时将步骤2-4中的原对应添加的搜索标志位改为*B...

【专利技术属性】
技术研发人员:姜平
申请(专利权)人:焦点科技股份有限公司
类型:发明
国别省市:江苏,32

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

1