CN106202581A - 一种数据搜索方法及装置 - Google Patents
一种数据搜索方法及装置 Download PDFInfo
- Publication number
- CN106202581A CN106202581A CN201610771148.4A CN201610771148A CN106202581A CN 106202581 A CN106202581 A CN 106202581A CN 201610771148 A CN201610771148 A CN 201610771148A CN 106202581 A CN106202581 A CN 106202581A
- Authority
- CN
- China
- Prior art keywords
- target data
- search
- server
- data
- query rate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据搜索方法及装置,方法包括:接收搜索请求的目标服务器计算每秒查询率;当每秒查询率小于每秒查询率上限阈值时,目标服务器在本地数据库中搜索符合预设要求的目标数据;搜索到则返回该目标数据给目标客户端;未搜索到则使第二服务器集群在本地集群数据库中搜索目标数据;第二服务器集群反馈搜索到的目标数据给目标服务器,进而返回给目标客户端;在第二服务器集群未搜索到目标数据、且在每秒查询率小于每秒查询率下限阈值情况下,使第三服务器集群在本地集群数据库中搜索目标数据,并向目标服务器反馈目标数据;目标服务器返回目标数据给目标客户端。应用本发明实施例,能够提高搜索服务的稳定性和有效性。
Description
技术领域
本发明涉及互联网应用技术领域,特别涉及一种数据搜索方法及装置。
背景技术
在互联网技术时代,运营商通过搜索服务系统向用户提供搜索服务,用户可通过搜索服务系统搜索感兴趣的数据,随着用户需求的不断增加,使得搜索量也不断增加。接收到用户的搜索数据的请求后,搜索服务系统根据一定的策略针对所要搜索的数据在搜索服务系统的全局进行搜索,搜索到相应的数据后,会将搜索到的数据反馈给用户使用的客户端,从而实现数据的搜索。
上述这种搜索方式在具体使用时,存在较多的问题,如果搜索请求的每秒查询率过高,给搜索服务系统造成难以承受的压力,进而造成搜索服务大量的超时,现有技术中,通过设置总的每秒查询率阈值,在接收到搜索请求后,每秒查询率大于每秒查询率阈值的情况下,直接拒绝搜索请求,以缓解搜索服务系统的搜索压力。但是,这种方式会使得很多搜索请求无法得到服务,造成搜索服务的稳定性和有效性较差。
发明内容
本发明实施例的目的在于提供一种数据搜索方法及装置,以提高搜索服务的稳定性和有效性。
为达到上述目的,本发明实施例公开了一种数据搜索方法及装置。技术方案如下:
第一方面,本发明实施例提供的一种数据搜索方法,应用于搜索服务系统,所述搜索服务系统包括第一服务器集群、第二服务器集群和第三服务器集群;所述方法包括:
所述第一服务器集群中接收到目标客户端发送的针对目标数据的搜索请求的目标服务器,按照预设规则,计算每秒查询率;
在所述每秒查询率小于预设的每秒查询率上限阈值的情况下,所述目标服务器在本地数据库中搜索符合预设要求的所述目标数据;
如果搜索到,返回搜索到的目标数据给所述目标客户端;
如果未搜索到,将所述搜索请求转发给所述第二服务器集群,以使所述第二服务器集群在本地集群数据库中搜索所述目标数据;
在所述第二服务器集群搜索到所述目标数据的情况下,所述第二服务器集群反馈搜索到的目标数据给所述目标服务器,所述目标服务器返回接收到的目标数据给所述目标客户端;
在所述第二服务器集群未搜索到所述目标数据、且在所述每秒查询率小于预设的每秒查询率下限阈值情况下,将所述搜索请求转发给所述第三服务器集群,以使所述第三服务器集群在本地集群数据库中搜索所述目标数据,并向所述目标服务器反馈搜索到的目标数据;所述目标服务器返回所述目标数据给所述目标客户端。
优选的,所述按照预设规则,计算每秒查询率,包括:
确定所述目标客户端所属类型,计算所确定类型对应的客户端的每秒查询率。
优选的,所述目标服务器的本地数据库为Redis数据库,用于缓存包含所述目标数据的搜索结果;
所述第二服务器集群的本地集群数据库为couchbase数据库,用于缓存包含所述目标数据的搜索结果。
优选的,所述目标服务器在本地数据库中搜索符合预设要求的所述目标数据,包括:
所述目标服务器在本地数据库中搜索所述目标数据;
如果搜索到,根据搜索到的目标数据写入所述目标服务器的本地数据库的时间戳,判断搜索到的目标数据的存储时长是否大于预设的超时时长,如果不大于,表示搜索到的目标数据为符合预设要求的所述目标数据。
优选的,所述方法还包括:
当所述第二服务器集群和/或第三服务器集群出现异常时,增加所述超时时长;否则减少所述超时时长,直至恢复到所述超时时长的初始值。
优选的,所述方法还包括:
每隔预设时间段,判断所述搜索服务系统在所述预设时间段内的平均处理压力是否大于预设的处理压力阈值,如果大于,降低所述每秒查询率下限阈值;如果不大于,提高所述每秒查询率下限阈值,直至恢复到每秒查询率下限阈值的初始值。
第二方面,本发明实施例提供的一种数据搜索装置,应用于搜索服务系统,所述搜索服务系统包括第一服务器集群、第二服务器集群和第三服务器集群;所述装置包括:
计算模块,用于所述第一服务器集群中接收到目标客户端发送的针对目标数据的搜索请求的目标服务器,计算每秒查询率;
第一搜索模块,用于在所述每秒查询率小于预设的每秒查询率上限阈值的情况下,所述目标服务器在本地数据库中搜索符合预设要求的所述目标数据;
第一返回模块,用于当第一搜索模块搜索到所述目标数据时,返回搜索到的目标数据给所述目标客户端;
请求转发模块,用于当第一搜索模块未搜索到所述目标数据时,将所述搜索请求转发给所述第二服务器集群,以使所述第二服务器集群在本地集群数据库中搜索所述目标数据;
第二返回模块,用于在所述第二服务器集群搜索到所述目标数据的情况下,所述第二服务器集群反馈搜索到的目标数据给所述目标服务器,所述目标服务器返回接收到的目标数据给所述目标客户端;
转发与返回模块,在所述第二服务器集群未搜索到所述目标数据、且在所述每秒查询率小于预设的每秒查询率下限阈值情况下,将所述搜索请求转发给所述第三服务器集群,以使所述第三服务器集群在本地集群数据库中搜索所述目标数据,并向所述目标服务器反馈搜索到的目标数据;所述目标服务器返回所述目标数据给所述目标客户端。
优选的,所述计算模块,具体用于确定所述目标客户端所属类型,计算所确定类型对应的客户端的每秒查询率。
优选的,所述目标服务器的本地数据库为Redis数据库,用于缓存包含所述目标数据的搜索结果;
所述第二服务器集群的本地集群数据库为couchbase数据库,用于缓存包含所述目标数据的搜索结果。
优选的,所述第一搜索模块,包括:
第一搜索单元,用于所述目标服务器在本地数据库中搜索所述目标数据;
第一判断单元,用于当所述第一搜索单元搜索到目标数据时,根据搜索到的目标数据写入所述目标服务器的本地数据库的时间戳,判断搜索到的目标数据的存储时长是否大于预设的超时时长,如果所述第一判断单元的判断结果为不大于,表示搜索到的目标数据为符合预设要求的所述目标数据。
优选的,所述装置还包括:
第一调整模块,用于当所述第二服务器集群和/或第三服务器集群出现异常时,增加所述超时时长;否则减少所述超时时长,直至恢复到所述超时时长的初始值。
优选的,所述装置还包括:第二调整模块,所述第二调整模块包括第二判断单元、下调单元和上调单元;
所述第二判断单元,用于每隔预设时间段,判断所述搜索服务系统在所述预设时间段内的平均处理压力是否大于预设的处理压力阈值;
所述下调单元,用于当所述第二判断单元的判断结果为大于时,降低所述每秒查询率下限阈值;
所述上调单元,用于当所述第二判断单元的判断结果为不大于时,提高所述每秒查询率下限阈值,直至恢复到每秒查询率下限阈值的初始值。
本发明实施例提供的一种数据搜索方法及装置,根据目标客户端发来的搜索请求,计算每秒查询率,当每秒查询率小于预设的每秒查询率上限阈值时,目标服务器在本地数据库中搜索符合预设要求的目标数据;搜索到目标数据,直接返回给目标客户端;搜索不到目标数据,转向第二服务器集群进行搜索,搜索到目标数据先返回给目标服务器,再由目标服务器返回给目标客户端;在第二服务器集群搜索不到目标数据且在每秒查询率小于每秒查询率下限阈值情况下,转向第三服务器集群进行搜索,搜索到的目标数据先返回给目标服务器,再由目标服务器返回给目标客户端,搜索服务系统通过上述方法实现搜索数据的功能。
由上述的技术方案可见,通过不对每秒查询率不小于每秒查询率上限阈值的搜索请求进行搜索,从而实现直接拒绝一部分搜索请求,最高效率的缓解搜索服务系统的搜索压力;对于处于每秒查询率上限阈值和每秒查询率下限阈值之间的搜索请求,最多只在目标服务器本地数据库和第二服务器集群中进行小范围搜索,在能缓解搜索服务压力的前提下,可一定程度地保证这部分搜索请求能够得到服务,从而保证搜索服务的稳定性和有效性;对于每秒查询率小于每秒查询率上限阈值的搜索请求,在目标服务器本地搜索不到,再转向第二服务器集群中进行搜索,如果再搜索不到,再转向第三服务器集群中进行搜索,最终会使得搜索到目标数据,保证这部分搜索请求能够搜索到目标数据。相对于现有技术中,只设置每秒查询率上限阈值,直接拒绝的方法,本实施例不仅可以缓解搜索服务系统的搜索压力,还能保证搜索服务的稳定性和有效性。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据搜索方法的流程示意图;
图2为本发明实施例提供的一种数据搜索装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了提高搜索服务的稳定性和有效性,本发明实施例提供了一种数据搜索方法及装置。
需要说明的是,实施例中应用的客户端可以是安装在手机、台式机、笔记本、平板电脑上的网页或APP等等,客户端所属的类别可以是按照上述各客户端进行分类,例如,手机上的网页可以是一类,笔记本上的APP是一类。当然,客户端所属的类别也可以将这些具体的类型进行重新归类,定义不同的大类,例如,来源于手机、台式机、笔记本、平板电脑等四大类,当然,不限于此,本发明实施例在此不做具体限定。
同时,实施例用于搜索的数据是任一种用户有需求的并可由搜索服务系统提供的数据,例如,可以是视频、音频、电子书等数据中的一种,也可以是一些应用软件包等数据,当然,不限于此,本发明实施例在此不做具体限定。
下面首先针对本发明实施例提出的一种数据搜索方法进行介绍。
参照图1,图1为本发明实施例提供的一种数据搜索方法的流程示意图,该方法应用于搜索服务系统,搜索服务系统包括第一服务器集群、第二服务器集群和第三服务器集群;具体包括以下步骤:
S101、第一服务器集群中接收到目标客户端发送的针对目标数据的搜索请求的目标服务器,按照预设规则,计算每秒查询率;
其中,第一服务器集群中的目标服务器是用来接收用户的搜索服务的,同一台目标服务器可以只接收同一类客户端发来的请求,也可以接收不同类型客户端发来的请求,在此不做具体限定。
按照预设规则,计算每秒查询率,可以包括:
计算针对目标服务器的每秒查询率;
具体实施时,预先对目标服务器设置一个计数器,用于记录目标服务器所接收的搜索请求数,记录的任一秒内,目标服务器每接收一个请求,计数器的计数增加一个,每隔一秒对计数器清零一次,每一时刻计数器的计数即为目标服务器那一时刻的每秒查询率。例如,某一秒内的某一时刻,计数器的计数为100,则目标服务器该时刻的每秒查询率为100个每秒。
按照预设规则,计算每秒查询率,也可以包括:
确定目标客户端所属类型,并计算所确定类型对应的客户端的每秒查询率。
根据目标服务器中设置的关于客户端的具体划分的类型,确定目标客户端所属的类型,例如,目标服务器中关于客户端的类型有手机、台式机、笔记本、平板电脑,针对通过手机APP或网页发来的搜索请求,目标服务器可以确定出目标客户端所属的类型为手机。
具体实施时,根据目标客户端,目标服务器能够确定出目标客户端所属类型,针对目标服务器能接收其发送的搜索请求的客户端的类型,分别设置一个计数器,每个计数器每隔一秒清零一次,在任一秒内,当某一类型客户端发来一个搜索请求后,针对这一类型的计数器计数增加一个,这时,计数器记录的数就是该时刻对应该类型客户端的每秒查询率。例如,目标服务器关于手机客户端发来的一个搜索请求,当前关于手机客户端的计数器的计数为10,则接收到该搜索请求后,手机客户端请求的每秒查询率为11个每秒,即计算出所确定类型对应的客户端的每秒查询率为11个每秒。当记录时间点到达一秒时,计数器清零,重新记录。
针对本步骤中根据预设规则,计算每秒查询率就是根据预先确定的上述两种计算方式中的一种去计算每秒查询率。
S102、在每秒查询率小于预设的每秒查询率上限阈值的情况下,目标服务器在本地数据库中搜索符合预设要求的目标数据;
需要说明的是,在本步骤之前,通过判断每秒查询率与每秒查询率上限阈值的大小。本实施例中,在所述每秒查询率不小于预设的每秒查询率上限阈值时,目标服务器不对对应的搜索请求进行搜索,具体的,可以不做任何响应,也可以通过目标服务器向目标客户端反馈不进行搜索的信息,例如,直接向目标客户端反馈空结果。
如果按照预设规则,计算的是针对目标服务器的每秒查询率,则预设的每秒查询率上限阈值是针对目标服务器预设的一个总的每秒查询率上限阈值;需要说明的是,第一服务器集群中的每台服务器可以设置同样的每秒查询率上限阈值,也可以设置不同的每秒查询率上限阈值。
如果按照预设规则,计算每秒查询率,包括:确定目标客户端所属类型,并计算所确定类型对应的客户端的每秒查询率。则每秒查询率上限阈值是目标客户端所属类型对应的客户端的每秒查询率上限阈值。具体设置时,可以是多类客户端共用一个每秒查询率上限阈值,也可以根据实际使用情况单独设置,例如,实际使用中,接收笔记本发来的搜索请求一般是手机发来的两倍,则可以针对笔记本设置的每秒查询率上限阈值是针对手机设置的2倍。
目标服务器在本地数据库中搜索符合预设要求的目标数据,如果搜索到,执行步骤S103,如果未搜索到,执行步骤S104。
S103、返回搜索到的目标数据给目标客户端;
目标服务器在本地数据库中搜索到目标数据之后,将搜索到的目标数据返回给目标客户端,完成搜索。
S104、将搜索请求转发给第二服务器集群,以使第二服务器集群在本地集群数据库中搜索目标数据;
当接收到搜索请求的目标服务器在本地数据库未搜索到需要的目标数据后,需要在第二服务器集群进行搜索目标数据。
第二服务器集群在本地集群数据库中搜索目标数据,如果搜索到,执行步骤S105,如果未搜索到,执行步骤S106。
S105、第二服务器集群反馈搜索到的目标数据给目标服务器,目标服务器返回接收到的目标数据给目标客户端;
本步骤中,第二服务器集群搜索到目标数据之后,会先将搜索到的目标数据发送给目标服务器,然后再由目标服务器将接收到的目标数据返回给目标客户端。
S106、在每秒查询率小于每秒查询率下限阈值情况下,将搜索请求转发给第三服务器集群,以使第三服务器集群在本地集群数据库中搜索目标数据,并向目标服务器反馈搜索到的目标数据;目标服务器返回目标数据给目标客户端。
当每秒查询率足够小时,搜索服务系统有足够的能力对所接收的搜索请求进行全面的搜索,第三服务器集群存储全量的数据,在这里可以搜索到目标数据,同样,第三服务器集群搜索到目标数据之后,会先将搜索到的目标数据发送给目标服务器,然后再由目标服务器将接收到的目标数据返回给目标客户端。
其中,如果按照预设规则,计算的是针对目标服务器的每秒查询率,则预设的每秒查询率下限阈值是针对目标服务器预设的一个总的每秒查询率下限阈值;需要说明的是,第一服务器集群中的每台服务器可以设置同样的每秒查询率下限阈值,也可以设置不同的每秒查询率下限阈值。
如果按照预设规则,计算每秒查询率,包括:确定目标客户端所属类型,并计算所确定类型对应的客户端的每秒查询率。则每秒查询率下限阈值是目标客户端所属类型对应的客户端的每秒查询率下限阈值。具体设置时,可以是多类客户端共用一个每秒查询率下限阈值,也可以根据实际使用情况单独设置,例如,实际使用中,为了使手机接收的搜索请求优先进入第三服务器集群进行搜索,则可以针对手机设置的每秒查询率上限阈值是针对笔记本设置的1.5倍。
应用图1所示的实施例,本发明实施例提供的一种数据搜索方法,根据目标客户端发来的搜索请求,计算每秒查询率,当每秒查询率小于预设的每秒查询率上限阈值时,目标服务器在本地数据库中搜索符合预设要求的目标数据;搜索到目标数据,直接返回给目标客户端;搜索不到目标数据,转向第二服务器集群进行搜索,搜索到目标数据先返回给目标服务器,再由目标服务器返回给目标客户端;在第二服务器集群搜索不到目标数据且在每秒查询率小于每秒查询率下限阈值情况下,转向第三服务器集群进行搜索,搜索到的目标数据先返回给目标服务器,再由目标服务器返回给目标客户端,搜索服务系统通过上述方法实现搜索数据的功能。
上述方法的设置,通过不对每秒查询率不小于每秒查询率上限阈值的搜索请求进行搜索,从而实现直接拒绝一部分搜索请求,最高效率的缓解搜索服务系统的搜索压力;对于处于每秒查询率上限阈值和每秒查询率下限阈值之间的搜索请求,最多只在目标服务器本地数据库和第二服务器集群中进行小范围搜索,在能缓解搜索服务压力的前提下,可一定程度地保证这部分搜索请求能够得到服务,从而保证搜索服务的稳定性和有效性;对于每秒查询率小于每秒查询率上限阈值的搜索请求,在目标服务器本地搜索不到,再转向第二服务器集群中进行搜索,如果再搜索不到,再转向第三服务器集群中进行搜索,最终会使得搜索到目标数据,保证这部分搜索请求能够搜索到目标数据。相对于现有技术中,只设置每秒查询率上限阈值,直接拒绝的方法,本实施例不仅可以缓解搜索服务系统的搜索压力,还能保证搜索服务的稳定性和有效性。
在计算的每秒查询率是目标客户端所属类型对应的客户端的每秒查询率的情况下,可以控制对任一类客户端发来的搜索请求的最大处理量,以便给其他客户端预留搜索服务系统的处理资源,防止某一类客户端发来的搜索请求突然增加至过多,导致无法服务其他类型客户端的情况,使得搜索服务在不同类型客户端之间达到均衡,从而也可以保证搜索服务的稳定性和有效性。
本实施例中,目标服务器的本地数据库为Redis数据库,用于缓存包含目标数据的搜索结果;
第二服务器集群的本地集群数据库为couchbase数据库,用于缓存包含目标数据的搜索结果。
Redis数据库是当前互联网行业广泛使用的一种内存数据库,具体是一款开源的、网络化的、基于内存的、可进行数据持久化的Key-Value存储系统。Couchbase数据库是一种端到端的非关系型数据库,数据可自动在多个节点备份,单节点失效不影响业务;支持自动分片,很容易在线维护集群,不影响业务;而且有一个非常专业的WEB管理界面进行统一管理,并且还提供RESTful API方便跟其他自动化系统集成。Couchbase完全继承了Memcache的特性,原生支持所有Memcache操作;继承了Membase的特性,支持集群和数据持久化;继承了CouchDB的文档性质,支持通过View对数据进行操作,这个View的特性,提供了以往Memcache所不具备的便利性。
具体实施时,Redis数据库和Couchbase数据库是通过以下方式进行缓存数据的:
第三服务器集群在本地集群数据库中搜索到目标数据后,反馈目标数据给第二服务器集群,以使将目标数据连同索引等信息写入第二服务器集群的Couchbase数据库,并设置过期时间;目标服务器接收到搜索到的目标数据之后,将目标数据连同索引等信息写入本地Redis数据库,不设置过期时间;
第二服务器集群在本地集群数据库中搜索到目标数据后,目标服务器将目标数据连同索引等信息写入本地Redis数据库;这里不设置过期时间。
在目标服务器的本地Redis数据库中,通过最近最少使用(Least Recently Used,LRU)算法来做数据淘汰,以保证Redis数据库的占用存储空间小于预设的存储空间阈值;第二服务器集群的本地集群数据库自动删除过期数据;Couchbase数据库设置了过期时间,通过自动删除过期数据。
上述缓存方法,实现了Redis数据库和Couchbase数据库的不断更新。采用这两种类型的数据库缓存数据,读取速度快,能有效降低搜索服务系统的资源消耗。
本实施例中,Redis数据库在存入数据时,不设置过期时间,而是在外部预设超时时长,是为了进一步控制Redis数据库中的数据,通过对超时时长的调整来灵活地控制Redis数据库中的数据的有效性,具体地,根据数据存入的时间戳计算存储时长,如果存储时长超过超时时长,则这个数据不可用,增加超时时长,如果存储时长没有超过增加后的超时时长,这个数据被激活,是可用的。
目标服务器在本地数据库中搜索符合预设要求的目标数据;包括:
目标服务器在本地数据库中搜索所述目标数据;
如果搜索到,根据搜索到的目标数据写入目标服务器的本地数据库的时间戳,判断搜索到的目标数据的存储时长是否大于预设的超时时长,如果不大于,表示搜索到的目标数据为符合预设要求的目标数据。可以理解的是,如果大于代表数据已经过期,已是不能使用的数据,不需要返回给目标客户端。
本实施例中,搜索数据的方法还包括以下步骤:
当第二服务器集群和/或第三服务器集群出现异常时,增加超时时长;否则减少超时时长,直至恢复到超时时长的初始值。
具体实施时,依赖的第二服务器集群和/或第三服务器集群出现异常的情况有:目标服务器将搜索请求转发给第二服务器集群和/或第三服务器集群时,会出现大量超时,可以通过预设的监控时间段内搜索请求失败的比例或成功的比例来监控依赖的第二服务器集群、第三服务器集群的服务是否正常,例如,每隔20S判断一次,20S内,目标服务器向第二服务器集群转发的搜索请求有1000个,而未获得服务的只有200个,失败的比例是200/1000,与预先设置的正常比例1/10相比,失败比例太高,可判断出,第二服务器集群服务出现异常。20S内目标服务器向第三服务器集群转发的搜索请求有200个,而未获得服务的只有1个,失败的比例是1/200,与预先设置的正常比例1/500相比,失败比例很大,可判断出,第三服务器集群服务异常。
增加超时时长,Redis数据库中更多的数据被激活启用,这样设置可提高目标服务器在本地数据库中搜索到符合预设要求的目标数据的命中率,减少向第二服务器集群或第三服务器集群转发请求,从而可以保证搜索服务的稳定性和有效性。
同时,为了保持搜索系统的稳定性,在处理好异常情况之后,需要减少超时时长,直至恢复到超时时长的初始值,以使搜索服务系统恢复到正常工作状态。具体使用中,可以逐级恢复,也可以一步到位,使超时时长恢复到初始值。
本实施例中,数据搜索方法还包括以下步骤:
每隔预设时间段,判断搜索服务系统在预设时间段内的平均处理压力是否大于预设的处理压力阈值,如果大于,降低每秒查询率下限阈值;如果不大于,提高每秒查询率下限阈值,直至恢复到每秒查询率下限阈值的初始值。
具体实施时,可通过CPU和/或内存的平均消耗来监控搜索服务系统的平均处理压力,即可用CPU和/或内存的平均消耗来表示搜索系统的处理压力,例如,设置CPU或内存消耗的上限值为80%,预设时间段为50S,如果监控的50S内,CPU或内存的平均消耗为90%,判断出90%大于80%,则认为搜索服务系统在预设时间段内的平均处理压力大于预设的处理压力阈值,如果监控的50S内,CPU或内存的平均消耗为50%,判断出50%小于80%,则认为搜索服务系统在预设时间段内的平均处理压力小于预设的处理压力阈值,这里的80%就相当于预设的处理压力阈值,90%和50%就是某一监控的50S内,搜索服务系统的平均处理压力。采用CPU和内存的平均消耗来表示平均处理压力,具体可通过加权求和的方式计算CPU和内存的平均消耗,比较方式与前两种类似,在此不做赘述。
为了使搜索服务系统更好的进行搜索服务,当搜索请求到来时,可采用同步的方式去目标服务器的本地Redis数据库中搜索,采用异步的方式去第二服务器集群的couchbase数据库去搜索。
在上述数据搜索方法的基础上,本实施例还提供了一种数据搜索装置,应用于搜索服务系统,搜索服务系统包括第一服务器集群、第二服务器集群和第三服务器集群;参照图2,图2为本发明实施例提供的一种数据搜索装置的结构示意图,该装置包括:
计算模块21,用于第一服务器集群中接收到目标客户端发送的针对目标数据的搜索请求的目标服务器,按照预设规则,计算每秒查询率;
第一搜索模块22,用于在每秒查询率小于预设的每秒查询率上限阈值时,目标服务器在本地数据库中搜索符合预设要求的目标数据;
第一返回模块23,用于当第一搜索模块22搜索到目标数据时,返回搜索到的目标数据给目标客户端;
请求转发模块24,用于当第一搜索模块22未搜索到目标数据时,将搜索请求转发给第二服务器集群,以使第二服务器集群在本地集群数据库中搜索目标数据;
第二返回模块25,用于在第二服务器集群搜索到目标数据的情况下,第二服务器集群反馈搜索到的目标数据给目标服务器,目标服务器返回接收到的目标数据给目标客户端;
转发与返回模块26,在第二服务器集群未搜索到目标数据、且在每秒查询率小于预设的每秒查询率下限阈值情况下,将搜索请求转发给第三服务器集群,以使第三服务器集群在本地集群数据库中搜索目标数据,并向目标服务器反馈搜索到的目标数据;目标服务器返回目标数据给目标客户端。
应用图2所示的实施例,本发明实施例提供的一种数据搜索方法,根据目标客户端发来的搜索请求,计算每秒查询率,当每秒查询率小于预设的每秒查询率上限阈值时,目标服务器在本地数据库中搜索符合预设要求的目标数据;搜索到目标数据,直接返回给目标客户端;搜索不到目标数据,转向第二服务器集群进行搜索,搜索到目标数据先返回给目标服务器,再由目标服务器返回给目标客户端;在第二服务器集群搜索不到目标数据且在每秒查询率小于每秒查询率下限阈值情况下,转向第三服务器集群进行搜索,搜索到的目标数据先返回给目标服务器,再由目标服务器返回给目标客户端,搜索服务系统通过上述方法实现搜索数据的功能。
上述方法的设置,通过不对每秒查询率不小于每秒查询率上限阈值的搜索请求进行搜索,从而实现直接拒绝一部分搜索请求,最高效率的缓解搜索服务系统的搜索压力;对于处于每秒查询率上限阈值和每秒查询率下限阈值之间的搜索请求,最多只在目标服务器本地数据库和第二服务器集群中进行小范围搜索,在能缓解搜索服务压力的前提下,可一定程度地保证这部分搜索请求能够得到服务,从而保证搜索服务的稳定性和有效性;对于每秒查询率小于每秒查询率上限阈值的搜索请求,在目标服务器本地搜索不到,再转向第二服务器集群中进行搜索,如果再搜索不到,再转向第三服务器集群中进行搜索,最终会使得搜索到目标数据,保证这部分搜索请求能够搜索到目标数据。相对于现有技术中,只设置每秒查询率上限阈值,直接拒绝的方法,本实施例不仅可以缓解搜索服务系统的搜索压力,还能保证搜索服务的稳定性和有效性。
本实施例中,计算模块21,具体用于确定目标客户端所属类型,并计算所确定类型对应的客户端的每秒查询率;
其中,每秒查询率上限阈值具体为针对目标客户端所属类型对应的客户端的每秒查询率上限阈值;
每秒查询率下限阈值具体为针对目标客户端所属类型对应的客户端的每秒查询率下限阈值。
本实施例中,目标服务器的本地数据库为Redis数据库,用于缓存包含目标数据的搜索结果;
第二服务器集群的本地集群数据库为couchbase数据库,用于缓存包含目标数据的搜索结果。
本实施例中,第一搜索模块22,包括:
第一搜索单元(图中未示出),用于目标服务器在本地数据库中搜索目标数据;
第一判断单元(图中未示出),用于当第一搜索单元搜索到目标数据时,根据搜索到的目标数据写入目标服务器的本地数据库的时间戳,判断搜索到的目标数据的存储时长是否大于预设的超时时长,如果第一判断单元的判断结果为不大于,表示搜索到的目标数据为符合预设要求的目标数据。
本实施例中,数据搜索装置还包括:
第一调整模块(图中未示出),用于当第二服务器集群和/或第三服务器集群出现异常时,增加超时时长;否则,减少超时时长,直至恢复到超时时长的初始值。
本实施例中,数据搜索装置还包括:第二调整模块(图中未示出),第二调整模块包括第二判断单元(图中未示出)、下调单元(图中未示出)和上调单元(图中未示出);
第二判断单元,用于每隔预设时间段,判断搜索服务系统在预设时间段内的平均处理压力是否大于预设的处理压力阈值;
下调单元,用于当第二判断单元的判断结果为大于时,降低每秒查询率下限阈值;
上调单元,用于当第二判断单元的判断结果为不大于时,提高每秒查询率下限阈值,直至恢复到每秒查询率下限阈值的初始值。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种数据搜索方法,其特征在于,应用于搜索服务系统,所述搜索服务系统包括第一服务器集群、第二服务器集群和第三服务器集群;所述方法包括:
所述第一服务器集群中接收到目标客户端发送的针对目标数据的搜索请求的目标服务器,按照预设规则,计算每秒查询率;
在所述每秒查询率小于预设的每秒查询率上限阈值的情况下,所述目标服务器在本地数据库中搜索符合预设要求的所述目标数据;
如果搜索到,返回搜索到的目标数据给所述目标客户端;
如果未搜索到,将所述搜索请求转发给所述第二服务器集群,以使所述第二服务器集群在本地集群数据库中搜索所述目标数据;
在所述第二服务器集群搜索到所述目标数据的情况下,所述第二服务器集群反馈搜索到的目标数据给所述目标服务器,所述目标服务器返回接收到的目标数据给所述目标客户端;
在所述第二服务器集群未搜索到所述目标数据、且在所述每秒查询率小于预设的每秒查询率下限阈值情况下,将所述搜索请求转发给所述第三服务器集群,以使所述第三服务器集群在本地集群数据库中搜索所述目标数据,并向所述目标服务器反馈搜索到的目标数据;所述目标服务器返回所述目标数据给所述目标客户端。
2.根据权利要求1所述的方法,其特征在于,所述按照预设规则,计算每秒查询率,包括:
确定所述目标客户端所属类型,计算所确定类型对应的客户端的每秒查询率。
3.根据权利要求1或2所述的方法,其特征在于,所述目标服务器的本地数据库为Redis数据库,用于缓存包含所述目标数据的搜索结果;
所述第二服务器集群的本地集群数据库为couchbase数据库,用于缓存包含所述目标数据的搜索结果。
4.根据权利要求3所述的方法,其特征在于,所述目标服务器在本地数据库中搜索符合预设要求的所述目标数据,包括:
所述目标服务器在本地数据库中搜索所述目标数据;
如果搜索到,根据搜索到的目标数据写入所述目标服务器的本地数据库的时间戳,判断搜索到的目标数据的存储时长是否大于预设的超时时长,如果不大于,表示搜索到的目标数据为符合预设要求的所述目标数据。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述第二服务器集群和/或第三服务器集群出现异常时,增加所述超时时长;否则减少所述超时时长,直至恢复到所述超时时长的初始值。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
每隔预设时间段,判断所述搜索服务系统在所述预设时间段内的平均处理压力是否大于预设的处理压力阈值,如果大于,降低所述每秒查询率下限阈值;如果不大于,提高所述每秒查询率下限阈值,直至恢复到每秒查询率下限阈值的初始值。
7.一种数据搜索装置,其特征在于,应用于搜索服务系统,所述搜索服务系统包括第一服务器集群、第二服务器集群和第三服务器集群;所述装置包括:
计算模块,用于所述第一服务器集群中接收到目标客户端发送的针对目标数据的搜索请求的目标服务器,计算每秒查询率;
第一搜索模块,用于在所述每秒查询率小于预设的每秒查询率上限阈值的情况下,所述目标服务器在本地数据库中搜索符合预设要求的所述目标数据;
第一返回模块,用于当第一搜索模块搜索到所述目标数据时,返回搜索到的目标数据给所述目标客户端;
请求转发模块,用于当第一搜索模块未搜索到所述目标数据时,将所述搜索请求转发给所述第二服务器集群,以使所述第二服务器集群在本地集群数据库中搜索所述目标数据;
第二返回模块,用于在所述第二服务器集群搜索到所述目标数据的情况下,所述第二服务器集群反馈搜索到的目标数据给所述目标服务器,所述目标服务器返回接收到的目标数据给所述目标客户端;
转发与返回模块,在所述第二服务器集群未搜索到所述目标数据、且在所述每秒查询率小于预设的每秒查询率下限阈值情况下,将所述搜索请求转发给所述第三服务器集群,以使所述第三服务器集群在本地集群数据库中搜索所述目标数据,并向所述目标服务器反馈搜索到的目标数据;所述目标服务器返回所述目标数据给所述目标客户端。
8.根据权利要求7所述的装置,其特征在于,所述计算模块,具体用于确定所述目标客户端所属类型,计算所确定类型对应的客户端的每秒查询率。
9.根据权利要求7或8所述的装置,其特征在于,所述目标服务器的本地数据库为Redis数据库,用于缓存包含所述目标数据的搜索结果;
所述第二服务器集群的本地集群数据库为couchbase数据库,用于缓存包含所述目标数据的搜索结果。
10.根据权利要求9所述的装置,其特征在于,所述第一搜索模块,包括:
第一搜索单元,用于所述目标服务器在本地数据库中搜索所述目标数据;
第一判断单元,用于当所述第一搜索单元搜索到目标数据时,根据搜索到的目标数据写入所述目标服务器的本地数据库的时间戳,判断搜索到的目标数据的存储时长是否大于预设的超时时长,如果所述第一判断单元的判断结果为不大于,表示搜索到的目标数据为符合预设要求的所述目标数据。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第一调整模块,用于当所述第二服务器集群和/或第三服务器集群出现异常时,增加所述超时时长;否则减少所述超时时长,直至恢复到所述超时时长的初始值。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:第二调整模块,所述第二调整模块包括第二判断单元、下调单元和上调单元;
所述第二判断单元,用于每隔预设时间段,判断所述搜索服务系统在所述预设时间段内的平均处理压力是否大于预设的处理压力阈值;
所述下调单元,用于当所述第二判断单元的判断结果为大于时,降低所述每秒查询率下限阈值;
所述上调单元,用于当所述第二判断单元的判断结果为不大于时,提高所述每秒查询率下限阈值,直至恢复到每秒查询率下限阈值的初始值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610771148.4A CN106202581B (zh) | 2016-08-30 | 2016-08-30 | 一种数据搜索方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610771148.4A CN106202581B (zh) | 2016-08-30 | 2016-08-30 | 一种数据搜索方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106202581A true CN106202581A (zh) | 2016-12-07 |
CN106202581B CN106202581B (zh) | 2019-06-14 |
Family
ID=58088968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610771148.4A Active CN106202581B (zh) | 2016-08-30 | 2016-08-30 | 一种数据搜索方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106202581B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603695A (zh) * | 2016-12-28 | 2017-04-26 | 北京奇艺世纪科技有限公司 | 一种每秒查询率的调整方法及装置 |
CN107181788A (zh) * | 2017-03-31 | 2017-09-19 | 北京奇艺世纪科技有限公司 | 一种任务处理方法及装置 |
CN108573013A (zh) * | 2017-12-08 | 2018-09-25 | 北京金山云网络技术有限公司 | 请求处理方法、装置、电子设备及计算机可读存储介质 |
CN108924213A (zh) * | 2018-06-27 | 2018-11-30 | 北京金山安全软件有限公司 | 一种服务器的qps控制方法、装置及电子设备 |
CN109933585A (zh) * | 2019-02-22 | 2019-06-25 | 京东数字科技控股有限公司 | 数据查询方法和数据查询系统 |
CN110147368A (zh) * | 2017-11-27 | 2019-08-20 | 北京京东尚科信息技术有限公司 | 用于服务器的数据获取方法和装置 |
CN112181755A (zh) * | 2019-07-02 | 2021-01-05 | 腾讯科技(深圳)有限公司 | 一种确定搜索服务中参数阈值的方法及相关设备 |
CN113158002A (zh) * | 2021-04-28 | 2021-07-23 | 北京达佳互联信息技术有限公司 | 搜索方法、装置、电子设备和存储介质 |
CN113760982A (zh) * | 2021-01-18 | 2021-12-07 | 西安京迅递供应链科技有限公司 | 一种数据处理方法和装置 |
CN114238037A (zh) * | 2022-02-28 | 2022-03-25 | 北京金堤科技有限公司 | 高并发服务请求结果存储方法和装置、以及电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023938A (zh) * | 2011-09-26 | 2013-04-03 | 阿里巴巴集团控股有限公司 | 一种服务器集群的服务能力控制方法和系统 |
EP2833272A1 (en) * | 2013-07-29 | 2015-02-04 | Amadeus S.A.S. | Processing information queries in a distributed information processing environment |
CN104794228A (zh) * | 2015-04-30 | 2015-07-22 | 北京奇艺世纪科技有限公司 | 一种搜索结果提供方法及装置 |
US20150341455A1 (en) * | 2013-08-28 | 2015-11-26 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for monitoring website access data |
CN105554085A (zh) * | 2015-12-10 | 2016-05-04 | 北京奇虎科技有限公司 | 一种基于服务器连接的动态超时处理方法和装置 |
-
2016
- 2016-08-30 CN CN201610771148.4A patent/CN106202581B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023938A (zh) * | 2011-09-26 | 2013-04-03 | 阿里巴巴集团控股有限公司 | 一种服务器集群的服务能力控制方法和系统 |
EP2833272A1 (en) * | 2013-07-29 | 2015-02-04 | Amadeus S.A.S. | Processing information queries in a distributed information processing environment |
US20150341455A1 (en) * | 2013-08-28 | 2015-11-26 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for monitoring website access data |
CN104794228A (zh) * | 2015-04-30 | 2015-07-22 | 北京奇艺世纪科技有限公司 | 一种搜索结果提供方法及装置 |
CN105554085A (zh) * | 2015-12-10 | 2016-05-04 | 北京奇虎科技有限公司 | 一种基于服务器连接的动态超时处理方法和装置 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603695A (zh) * | 2016-12-28 | 2017-04-26 | 北京奇艺世纪科技有限公司 | 一种每秒查询率的调整方法及装置 |
CN107181788A (zh) * | 2017-03-31 | 2017-09-19 | 北京奇艺世纪科技有限公司 | 一种任务处理方法及装置 |
CN110147368A (zh) * | 2017-11-27 | 2019-08-20 | 北京京东尚科信息技术有限公司 | 用于服务器的数据获取方法和装置 |
CN108573013A (zh) * | 2017-12-08 | 2018-09-25 | 北京金山云网络技术有限公司 | 请求处理方法、装置、电子设备及计算机可读存储介质 |
CN108924213B (zh) * | 2018-06-27 | 2021-06-18 | 北京金山安全软件有限公司 | 一种服务器的qps控制方法、装置及电子设备 |
CN108924213A (zh) * | 2018-06-27 | 2018-11-30 | 北京金山安全软件有限公司 | 一种服务器的qps控制方法、装置及电子设备 |
CN109933585B (zh) * | 2019-02-22 | 2021-11-02 | 京东数字科技控股有限公司 | 数据查询方法和数据查询系统 |
CN109933585A (zh) * | 2019-02-22 | 2019-06-25 | 京东数字科技控股有限公司 | 数据查询方法和数据查询系统 |
CN112181755A (zh) * | 2019-07-02 | 2021-01-05 | 腾讯科技(深圳)有限公司 | 一种确定搜索服务中参数阈值的方法及相关设备 |
CN112181755B (zh) * | 2019-07-02 | 2024-05-10 | 腾讯科技(深圳)有限公司 | 一种确定搜索服务中参数阈值的方法及相关设备 |
CN113760982A (zh) * | 2021-01-18 | 2021-12-07 | 西安京迅递供应链科技有限公司 | 一种数据处理方法和装置 |
CN113760982B (zh) * | 2021-01-18 | 2024-05-17 | 西安京迅递供应链科技有限公司 | 一种数据处理方法和装置 |
CN113158002A (zh) * | 2021-04-28 | 2021-07-23 | 北京达佳互联信息技术有限公司 | 搜索方法、装置、电子设备和存储介质 |
CN114238037A (zh) * | 2022-02-28 | 2022-03-25 | 北京金堤科技有限公司 | 高并发服务请求结果存储方法和装置、以及电子设备和存储介质 |
CN114238037B (zh) * | 2022-02-28 | 2022-04-29 | 北京金堤科技有限公司 | 高并发服务请求结果存储方法和装置、以及电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106202581B (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106202581A (zh) | 一种数据搜索方法及装置 | |
CN104933114A (zh) | 一种海量日志管理云平台 | |
CN102307234A (zh) | 基于移动终端的资源检索方法 | |
US9594848B2 (en) | Load balancing for multi-tiered querying | |
WO2016134628A1 (en) | Hybrid data distribution in a massively parallel processing architecture | |
CN111966887B (zh) | 动态缓存方法及装置、电子设备、存储介质 | |
CN108512768B (zh) | 一种访问量的控制方法及装置 | |
CN104462285A (zh) | 一种移动服务查询系统的隐私保护方法 | |
CN110413978B (zh) | 数据分页导出方法、装置、计算机设备和存储介质 | |
CN109165096B (zh) | web集群的缓存利用系统及方法 | |
CN108874806A (zh) | 数据查询方法、装置及数据存储系统 | |
AU2018354550A1 (en) | Systems and methods for intelligently grouping financial product users into cohesive cohorts | |
WO2020094064A1 (zh) | 性能优化方法、装置、设备及计算机可读存储介质 | |
US20080270483A1 (en) | Storage Management System | |
CN105635278A (zh) | 一种管理存储系统的元数据的方法以及元数据服务器 | |
US9985980B1 (en) | Entropy-based beaconing detection | |
CN109844723B (zh) | 使用基于服务的统计信息进行主控建立的方法和系统 | |
CN108241639B (zh) | 一种数据去重方法 | |
US9513839B2 (en) | Management system and management method for computer system comprising remote copy system for performing asynchronous remote copy | |
CN111274029A (zh) | 集群调度方法及装置 | |
Kumar et al. | Cache based query optimization approach in distributed database | |
CN105162837A (zh) | 海量数据存储环境下提升i/o吞吐率的方法及系统 | |
CN113672652A (zh) | 一种数据访问方法、装置、设备及存储介质 | |
CN112395453B (zh) | 一种自适应分布式遥感影像缓存及检索方法 | |
CN116955271A (zh) | 一种数据副本存储的方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |