一种基于路由表的搜索系统集群服务管理的方法及系统技术方案

技术编号:14774693 阅读:61 留言:0更新日期:2017-03-09 12:10
一种基于路由表的搜索系统集群服务管理的方法,通过对搜索服务器进行逻辑集群划分,将划分所得的集群信息存在路由表模块中,并构建多个对外提供集群服务的搜索应用请求转发器,这些请求转发器能统一从路由表信息中获取集群服务的分布,并面向搜索客户端提供服务结果应答和搜索请求转发;搜索客户端提出的搜索服务的索引数据被复制多份,分配在不同的搜索服务应用中;通过搜索路由表系统记录搜索服务在搜索服务应用的分配情况,同时记录所有搜索服务应用和由他们组合而成的搜索集群;搜索请求分发系统接收客户端发出的搜索服务请求,将搜索请求转发给相应的搜索服务应用,得到结果后回发给搜索客户端。

【技术实现步骤摘要】

本专利技术属于海量数据搜索
,具体涉及一种针对多搜索集群对外提供搜索服务的管理方法及系统。
技术介绍
搜索系统从海量数据中检索相匹配的目标数据提供给用户浏览,是目前主流电子商务平台(B2B,B2C等)的主要应用场景。在数据日趋庞大,搜索匹配规则日趋复杂的今天,单靠一个搜索应用的集群对外服务,在追求高可用服务的今天,已经不能满足用户的需求。构建搜索系统集群服务,能够解决国内目前实际上网络分为电信,网通两个不同网络下的访问速度,尤其针对多数据中心(简称DC)部署的业务系统,搜索系统天然就面临一个跨DC部署应用的现实环境。物理DC的区分如果还能够人工进行搜索系统集群服务管理的话,那么由于逻辑功能上的区分集群的需求,则不可能单单依靠根据网络硬件条件所划分的几个固定集群即可满足。例如搜索业务是随着用户需求可能随时需要调整搜索的匹配规则,包括不同的匹配规则可能需要在线上进行并行的用户实际应用试验,根据搜索结果和用户行为的反馈,再动态进行搜索规则和参数的调整。再例如搜索除了用户实际使用外,各大搜索引擎的爬虫也会自动进行爬虫抓取网站内容,而当这种抓取量对搜索服务器造成极大负荷的时候,我们想要人为的区分爬虫触发的搜索请求和真实用户访问的搜索请求,将两种请求进行不同的服务对待的时候。这都需要我们能够灵活的通过配置不同的搜索系统集群服务来满足这种管理要求。而本专利技术就是为了针对这种现实的技术应用场景,通过路由表技术的方式,将搜索集群对外服务的路由进行管理,达到集群服务调度的目的。目前一般的搜索系统,都是通过将搜索服务对外服务的地址,配置在固化的搜索客户端中,一般会配置多个对外服务地址,作为提高可用性的保证。但如果这些地址都不可用时,搜索客户端会直接报错。另外一般的搜索系统,在对外服务中是不允许同时存在两个同名的搜索服务,会出现同名错误。而本专利技术支持对外服务中的可以存在任意多个重名的搜索业务,且可以通过配置不同的访问策略,支持多个同名搜索业务的不同集群按照不同的业务逻辑对外提供搜索服务,并且本专利技术通过客户端缓存路由表信息的方式,即使客户端配置的服务地址全部出错,仍然能够与可用服务器建立连接,检索得到正常的搜索结果。
技术实现思路
为了解决搜索客户端配置的搜索地址出错和满足搜索需要同名搜索服务同时存在的问题,本专利技术目的在于,提供一种基于路由表的搜索系统集群服务管理的方法及系统,旨在提高搜索系统集群服务的可用性,即使客户端配置的搜索集群的服务节点出现故障,客户端仍然能够通过路由表找到其他可用的搜索集群服务节点;同时通过路由表存放不同集群的服务信息,使搜索系统可以根据不同访问策略调用若干集群下的同名搜索服务。同时本专利技术也能改良后应用与其他分布式应用系统的集群服务管理。本专利技术技术方案如下:一种基于路由表的搜索系统集群服务管理的方法,通过对搜索服务器进行逻辑集群划分,将划分所得的集群信息存在路由表模块中,并构建多个对外提供集群服务的搜索应用请求转发器,这些请求转发器能统一从路由表信息中获取集群服务的分布,并面向搜索客户端提供服务结果应答和搜索请求转发;搜索客户端client提出的搜索服务的索引数据被复制多份,分配在不同的搜索服务应用中;通过搜索路由表系统记录搜索服务在搜索服务应用的分配情况,同时记录所有搜索服务应用和由他们组合而成的搜索集群;搜索请求分发系统接收客户端发出的搜索服务请求,根据请求内容查询路由表系统router中关于本次搜索服务的路由信息,将搜索请求转发给相应的搜索服务应用replica-searchserver,得到结果后再把结果回发给搜索客户端,具体步骤包括:步骤1:在搜索服务器上构建多个能备份搜索服务信息的搜索服务应用(replica-searhServer),并将实际的搜索服务(collection)分配在这些搜索服务器(replica-SearhServer)上;步骤2:若干个搜索服务应用(replica-SearhServer)集合,组成一个搜索系统集群(cluster);步骤3:在路由表系统(router)中注册、记录及管理所有搜索系统集群内的搜索服务分布的信息;步骤4:配置与搜索客户端(client)指定连接的搜索请求分发系统,当客户端发出搜索请求时,能直接与搜索请求分发系统Dispatcher通信;当客户端与该指定连接的搜索请求分发系统成功建立通信后,客户端同时从路由表系统中自动获取其他可用的搜索请求分发系统的地址信息;所述搜索服务信息会复制多个备份,并被分配到不同的搜索服务应用replica-searchserver中;所述搜索路由表系统router包含搜索服务应用replica-searchserver和其内搜索服务的属性信息及分布信息;所述搜索请求转发系统dispatcher接收客户端发出的搜索服务请求,并根据请求中的信息,通过根据在router查询所需搜索服务的地址信息,将搜索服务请求转发至相应的搜索服务集群及其内的搜索服务应用,获取到结果后经由搜索请求转发系统dispatcher返回给客户端;步骤5:搜索请求分发系统(dispatcher)收到来自搜索客户端Client的搜索服务请求后,检索路由表系统(router)内有关该搜索服务的搜索集群配置信息;所述搜索服务请求中包含cookie信息、指定的搜索集群、搜索服务名称,在没有启用搜索流量集群分发策略时,dispatcher将根据搜索服务请求中的信息决定搜索服务请求转发至哪一个搜索集群内;步骤6:根据本次搜索请求中搜索服务在router内的集群配置信息,包括搜索服务对应的集群名称、搜索服务名称、是否启用搜索流量集群分发策略、集群内的搜索服务器名称及地址信息,进而确定dispatcher将client的搜索服务请求转发具体至哪一个集群和集群内的搜索服务应用replica-searchserver进行搜索服务;步骤7:搜索服务应用(replica-searchserver)根据收到的搜索请求,得到搜索服务结果,并将该结果返回给client端。步骤5搜索客户端client通过初始化配置可用的搜索请求分发dispatcher访问信息,初始化连接第一个可用的搜索请求分发系统dispatcher后,进入步骤5-1;步骤5-1:搜索客户端client成功连接dispatcher后,获取与该dispatcher相连的Router内其他所有dispatcher的信息,并持久化存储在客户端本地,作为与dispatcher连接的备用信息;步骤5-2:client发送搜索请求给已建立连接的dispatcher,搜索请求中包含用户的cookie信息、是否指定搜索集群cluster、所请求的搜索服务名称。搜索请求中的信息被作为dispatcher执行路由检索的参考信息;步骤5-3:dispatcher收到来自客户端client的请求信息,并根据请求信息检查router内是否有请求中的搜索服务的地址信息和已指定的搜索集群,如果上述两个信息都没有被找到,抛出异常,通知客户端client搜索失败;如果查询到相关信息,转步骤4;步骤5-4:搜索请求分发系统dispatcher在Router中已查询到客户端请求的搜索服务,但若客户端请求指定的集群信息为空或找不到对应的集本文档来自技高网
...
一种基于路由表的搜索系统集群服务管理的方法及系统

【技术保护点】
一种基于路由表的搜索系统集群服务管理的方法,其特征在于,通过对搜索服务器进行逻辑集群划分,将划分所得的集群信息存在路由表模块中,并构建多个对外提供集群服务的搜索应用请求转发器,这些请求转发器能统一从路由表信息中获取集群服务的分布,并面向搜索客户端提供服务结果应答和搜索请求转发;搜索客户端client提出的搜索服务的索引数据被复制多份,分配在不同的搜索服务应用中;通过搜索路由表系统记录搜索服务在搜索服务应用的分配情况,同时记录所有搜索服务应用和由他们组合而成的搜索集群;搜索请求分发系统接收客户端发出的搜索服务请求,根据请求内容查询路由表系统router中关于本次搜索服务的路由信息,将搜索请求转发给相应的搜索服务应用replica‑searchserver,得到结果后再把结果回发给搜索客户端,具体步骤包括:步骤1:在搜索服务器上构建多个能备份搜索服务信息的搜索服务应用(replica‑searh Server),并将实际的搜索服务(collection)分配在这些搜索服务器(replica‑Searh Server)上;步骤2:若干个搜索服务应用(replica‑Searh Server)集合,组成一个搜索系统集群(cluster);步骤3:在路由表系统(router)中注册、记录及管理所有搜索系统集群内的搜索服务分布的信息;步骤4:配置与搜索客户端(client)指定连接的搜索请求分发系统,当客户端发出搜索请求时,能直接与搜索请求分发系统Dispatcher通信;当客户端与该指定连接的搜索请求分发系统成功建立通信后,客户端同时从路由表系统中自动获取其他可用的搜索请求分发系统的地址信息;所述搜索服务信息会复制多个备份,并被分配到不同的搜索服务应用replica‑search server中;所述搜索路由表系统router包含搜索服务应用replica‑search server和其内搜索服务的属性信息及分布信息;所述搜索请求转发系统dispatcher接收客户端发出的搜索服务请求,并根据请求中的信息,通过根据在router查询所需搜索服务的地址信息,将搜索服务请求转发至相应的搜索服务集群及其内的搜索服务应用,获取到结果后经由搜索请求转发系统dispatcher返回给客户端;步骤5:搜索请求分发系统(dispatcher)收到来自搜索客户端Client的搜索 服务请求后,检索路由表系统(router)内有关该搜索服务的搜索集群配置信息;所述搜索服务请求中包含cookie信息、指定的搜索集群、搜索服务名称,在没有启用搜索流量集群分发策略时,dispatcher将根据搜索服务请求中的信息决定搜索服务请求转发至哪一个搜索集群内;步骤6:根据本次搜索请求中搜索服务在router内的集群配置信息,包括搜索服务对应的集群名称、搜索服务名称、是否启用搜索流量集群分发策略、集群内的搜索服务器名称及地址信息,进而确定dispatcher将client的搜索服务请求转发具体至哪一个集群和集群内的搜索服务应用replica‑search server进行搜索服务;步骤7:搜索服务应用(replica‑search server)根据收到的搜索请求,得到搜索服务结果,并将该结果返回给client端。...

【技术特征摘要】
1.一种基于路由表的搜索系统集群服务管理的方法,其特征在于,通过对搜索服务器进行逻辑集群划分,将划分所得的集群信息存在路由表模块中,并构建多个对外提供集群服务的搜索应用请求转发器,这些请求转发器能统一从路由表信息中获取集群服务的分布,并面向搜索客户端提供服务结果应答和搜索请求转发;搜索客户端client提出的搜索服务的索引数据被复制多份,分配在不同的搜索服务应用中;通过搜索路由表系统记录搜索服务在搜索服务应用的分配情况,同时记录所有搜索服务应用和由他们组合而成的搜索集群;搜索请求分发系统接收客户端发出的搜索服务请求,根据请求内容查询路由表系统router中关于本次搜索服务的路由信息,将搜索请求转发给相应的搜索服务应用replica-searchserver,得到结果后再把结果回发给搜索客户端,具体步骤包括:步骤1:在搜索服务器上构建多个能备份搜索服务信息的搜索服务应用(replica-searhServer),并将实际的搜索服务(collection)分配在这些搜索服务器(replica-SearhServer)上;步骤2:若干个搜索服务应用(replica-SearhServer)集合,组成一个搜索系统集群(cluster);步骤3:在路由表系统(router)中注册、记录及管理所有搜索系统集群内的搜索服务分布的信息;步骤4:配置与搜索客户端(client)指定连接的搜索请求分发系统,当客户端发出搜索请求时,能直接与搜索请求分发系统Dispatcher通信;当客户端与该指定连接的搜索请求分发系统成功建立通信后,客户端同时从路由表系统中自动获取其他可用的搜索请求分发系统的地址信息;所述搜索服务信息会复制多个备份,并被分配到不同的搜索服务应用replica-searchserver中;所述搜索路由表系统router包含搜索服务应用replica-searchserver和其内搜索服务的属性信息及分布信息;所述搜索请求转发系统dispatcher接收客户端发出的搜索服务请求,并根据请求中的信息,通过根据在router查询所需搜索服务的地址信息,将搜索服务请求转发至相应的搜索服务集群及其内的搜索服务应用,获取到结果后经由搜索请求转发系统dispatcher返回给客户端;步骤5:搜索请求分发系统(dispatcher)收到来自搜索客户端Client的搜索服务请求后,检索路由表系统(router)内有关该搜索服务的搜索集群配置信息;所述搜索服务请求中包含cookie信息、指定的搜索集群、搜索服务名称,在没有启用搜索流量集群分发策略时,dispatcher将根据搜索服务请求中的信息决定搜索服务请求转发至哪一个搜索集群内;步骤6:根据本次搜索请求中搜索服务在router内的集群配置信息,包括搜索服务对应的集群名称、搜索服务名称、是否启用搜索流量集群分发策略、集群内的搜索服务器名称及地址信息,进而确定dispatcher将client的搜索服务请求转发具体至哪一个集群和集群内的搜索服务应用replica-searchserver进行搜索服务;步骤7:搜索服务应用(replica-searchserver)根据收到的搜索请求,得到搜索服务结果,并将该结果返回给client端。2.根据权利要求1所述的一种基于路由表的搜索系统集群服务管理的方法,其特征在于,所述步骤5中,搜索客户端client通过初始化配置可用的搜索请求分发dispatcher访问信息,初始化连接第一个可用的搜索请求分发系统dispatcher后,进入步骤5-1;步骤5-1:搜索客户端client成功连接dispatcher后,获取与该dispatcher相连的Router内其他所有dispatcher的信息,并持久化存储在客户端本地,作为与dispatcher连接的备用信息;步骤5-2:client发送搜索请求给已建立连接的dispatcher,搜索请求中包含用户的cookie信息、是否指定搜索集群cluster、所请求的搜索服务名称。搜索请求中的信息被作为dispatcher执行路由检索的参考信息;步骤5-3:dispatcher收到来自客户端client的请求信息,并根据请求信息检查router内是否有请求中的搜索服务的地址信息和已指定的搜索集群,如果上述两个信息都没有被找到,抛出异常,通知客户端client搜索失败;如果查询到相关信息,转步骤4;步骤5-4:搜索请求分发系统dispatcher在Router中已查询到客户端请求的搜索服务,但若客户端请求指定的集群信息为空或找不到对应的集群,且发现同名的搜索服务分布在其他多个集群中,搜索请求分发系统dispatcher则任意挑选一个集群作为目标集群,将搜索请求发送至该集群内包含该搜索服务的搜索服务应用replica-searchserver,搜索服务应用成功返回结果,由搜索请求分发系统传给客户端;步骤5-5:若在步骤5-4中,由搜索请求分发系统dispatcher发送至搜索服务应用replica-searchserver的搜索请求出错或者无响应时,dispatcher将继续在Router中查找下一个可用的搜索服务应用replica-searchserver;若继续出错,进而导致尝试次数达到设置的最大限制或者超过服务端超时时间设置,则搜索请求分发系统dispatcher直接抛出搜索异常信息给客户端client;步骤5-6:当客户端收到步骤5-5中抛出的异常时,客户端client自动在已持久化本地的搜索请求分发系统dispatcher信息列表中获取另一个可用dispatcher,并连接;重复步骤2-步骤6,直至dispatcher信息列表中记录的dispatcher都被尝试与客户端连接,若dispatcher还抛出搜索异常或者超过客户端超时时间设置,则客户端抛出异常,本次搜索请求失败;步骤5-7:若在步骤5-2中,客户端请求的搜索服务在路由表系统router中被标识为启用“搜索流量集群分配”策略,dispatcher根据搜索请求中的用户cookie信息,经计算后,与路由表系统router中已设置的各个集群的权重值比照,经比照一致的搜索集群将被选择为搜索请求的发送方,该搜索集群内包含该搜索服务的搜索服务应用replica-searchserver将作为接收本次搜索请求的目标搜索服务应用,搜索服务应用成功返回搜索结果,由搜索请求分发系统传给客户端。3.根据权利要求1所述的一种基于路由表的搜索系统集群服务管理的方法,其特征在于,所述步骤4中还包括客户端对dispatcher的缓存,具体步骤有:步骤4-1:客户端client首次成功连接指定的dispatcher后,将自动从路由表系统(Router)中远程获取当前所有可用的dispatcher列表信息,并通过文件存储Dispatcher信息实现在本地持久化缓存;步骤4-2:客户端c...

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

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

1