首页 / 专利库 / 计算机网络 / 对等网络 / 分布式搜索系统、索引分发方法及存储介质

分布式搜索系统、索引分发方法及存储介质

阅读:251发布:2020-05-11

专利汇可以提供分布式搜索系统、索引分发方法及存储介质专利检索,专利查询,专利分析的服务。并且本 申请 实施例 公开了一种分布式搜索系统、索引分发方法及存储介质,该系统包括:分布式索引构建平台,用于构建索引,将索引分片存储在索引存储集群,将资源描述信息写入到状态存储集群,索引分片包括多个文件 块 ;索引存储集群;状态存储集群;主控集群,用于发送索引下载指令到状态存储集群;搜索集群,包括多个搜索 节点 ,多个搜索节点组成 对等网络 ,若搜索节点监听到索引下载指令,则确定要下载的索引分片及文件块,若至少两个其他搜索节点有文件块,则搜索节点确定至少两个其他搜索节点中的一个搜索节点为文件块的下载源,并从下载源下载文件块。本申请实施例提高了索引分发速度,提高了搜索服务的 稳定性 。,下面是分布式搜索系统、索引分发方法及存储介质专利的具体信息内容。

1.一种分布式搜索系统,其特征在于,所述系统包括:
分布式索引构建平台,用于构建索引,将所述索引按照索引分片存储在索引存储集群,并将所述索引的资源描述信息写入到状态存储集群,所述索引分片包括多个文件
索引存储集群,用于按照索引分片存储所述索引;
状态存储集群,用于保存所述资源描述信息,对搜索节点的服务进行注册,并保存所述搜索节点的服务状态,接收主控集群发送的索引下载指令;
主控集群,用于监听所述状态存储集群,若监听到所述资源描述信息,则发送索引下载指令到状态存储集群;
搜索集群,包括多个搜索节点,所述多个搜索节点组成对等网络,若所述搜索节点从状态存储集群中监听到所述索引下载指令,则确定要下载的索引分片及所述索引分片中的文件块,若至少两个其他搜索节点有所述文件块,则所述搜索节点根据自身与所述至少两个其他搜索节点的距离和所述至少两个其他搜索节点的网络传输速度,确定所述至少两个其他搜索节点中的一个搜索节点为所述文件块的下载源,并从所述下载源下载所述文件块。
2.根据权利要求1所述的系统,其特征在于,所述主控集群还用于:
根据所述搜索节点的资源占用情况动态调整所述搜索节点的网络传输速度。
3.根据权利要求1所述的系统,其特征在于,所述主控集群还用于:
基于令牌桶算法定时产生令牌,并将所述令牌存储在令牌桶中;
所述下载源还用于:
消耗所述令牌桶中的令牌,并基于所述令牌对应的传输速度,向所述搜索节点传输所述文件块。
4.一种索引分发方法,其特征在于,包括:
分布式索引构建平台构建索引,将所述索引按照索引分片存储在索引存储集群,并将所述索引的资源描述信息写入到状态存储集群,所述索引分片包括多个文件块;
主控集群监听所述状态存储集群,若监听到所述资源描述信息,则发送索引下载指令到状态存储集群;
若搜索集群中的搜索节点从状态存储集群中监听到所述索引下载指令,则确定要下载的索引分片及所述索引分片中的文件块;
若所述搜索集群中至少两个其他搜索节点有所述文件块,则所述搜索节点根据自身与所述至少两个其他搜索节点的距离和所述至少两个其他搜索节点的网络传输速度,确定所述至少两个其他搜索节点中的一个搜索节点为所述文件块的下载源,并从所述下载源下载所述文件块。
5.根据权利要求4所述的方法,其特征在于,所述搜索节点根据自身与所述至少两个其他搜索节点的距离和所述至少两个其他搜索节点的网络传输速度,确定所述至少两个其他搜索节点中的一个搜索节点为所述文件块的下载源,包括:
所述搜索节点根据自身分别与所述至少两个其他搜索节点的距离,确定所述至少两个其他搜索节点的机房分数;
所述搜索节点根据所述至少两个其他搜索节点的机房分数和机房权重,以及所述至少两个其他搜索节点的网络传输速度和传输速度权重,计算所述至少两个其他搜索节点的优先级;
所述搜索节点将所述至少两个其他搜索节点中优先级最高的一个搜索节点作为所述文件块的下载源。
6.根据权利要求4所述的方法,其特征在于,所述从所述下载源下载所述文件块,包括:
基于所述下载源消耗的令牌对应的传输速度,从所述下载源下载所述文件块,所述令牌为主控集群基于令牌桶算法产生的。
7.根据权利要求4所述的方法,其特征在于,在所述若搜索集群中的搜索节点从状态存储集群中监听到所述索引下载指令,则确定要下载的索引分片及所述索引分片中的文件块之后,还包括:
若所述搜索集群中一个其他搜索节点有所述文件块,则从该其他搜索节点下载所述文件块。
8.根据权利要求4所述的方法,其特征在于,在所述若搜索集群中的搜索节点从状态存储集群中监听到所述索引下载指令,则确定要下载的索引分片及所述索引分片中的文件块之后,还包括:
若所述搜索集群中没有所述文件块,则从所述索引存储集群下载所述文件块。
9.根据权利要求4所述的方法,其特征在于,在所述从所述下载源下载所述文件块之后,还包括:
在所述文件块下载完成后,所述搜索节点对外提供分发服务,并将对外提供服务的状态上报给状态存储集群。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求4至9任意一项所述的索引分发方法的步骤。

说明书全文

分布式搜索系统、索引分发方法及存储介质

技术领域

[0001] 本申请涉及计算机技术领域,特别是涉及一种分布式搜索系统、索引分发方法及存储介质。

背景技术

[0002] 在分布式搜索服务中,索引构建平台构建好索引后,需要迅速分发索引到搜索集群中。在索引文件很大和搜索集群机器很多的情况下,如何迅速分发索引到搜索服务中,是分布式搜索服务必然面对的问题。
[0003] 目前主流的搜索服务有Solr和Elasticsearch,它们采用的索引分发方案都是将索引从主(Master)节点同步到从(Slave)节点,多个从节点从一个主节点下载索引文件。
[0004] 在索引文件很大且搜索集群较大的情况下,索引分发的速度严重受限于主节点的机器性能和网络带宽,无法随索引大小、搜索机器数量扩展,同时主节点压过大,影响搜索服务的稳定性发明内容
[0005] 本申请实施例提供一种分布式搜索系统、索引分发方法及存储介质,以提高索引分发速度,提高搜索服务的稳定性。
[0006] 为了解决上述问题,第一方面,本申请实施例提供了一种分布式搜索系统,包括:
[0007] 分布式索引构建平台,用于构建索引,将所述索引按照索引分片存储在索引存储集群,并将所述索引的资源描述信息写入到状态存储集群,所述索引分片包括多个文件
[0008] 索引存储集群,用于按照索引分片存储所述索引;
[0009] 状态存储集群,用于保存所述资源描述信息,对搜索节点的服务进行注册,并保存所述搜索节点的服务状态,接收主控集群发送的索引下载指令;
[0010] 主控集群,用于监听所述状态存储集群,若监听到所述资源描述信息,则发送索引下载指令到状态存储集群;
[0011] 搜索集群,包括多个搜索节点,所述多个搜索节点组成对等网络,若所述搜索节点从状态存储集群中监听到所述索引下载指令,则确定要下载的索引分片及所述索引分片中的文件块,若至少两个其他搜索节点有所述文件块,则所述搜索节点根据自身与所述至少两个其他搜索节点的距离和所述至少两个其他搜索节点的网络传输速度,确定所述至少两个其他搜索节点中的一个搜索节点为所述文件块的下载源,并从所述下载源下载所述文件块。
[0012] 第二方面,本申请实施例提供了一种索引分发方法,包括:
[0013] 分布式索引构建平台构建索引,将所述索引按照索引分片存储在索引存储集群,并将所述索引的资源描述信息写入到状态存储集群,所述索引分片包括多个文件块;
[0014] 主控集群监听所述状态存储集群,若监听到所述资源描述信息,则发送索引下载指令到状态存储集群;
[0015] 若搜索集群中的搜索节点从状态存储集群中监听到所述索引下载指令,则确定要下载的索引分片及所述索引分片中的文件块;
[0016] 若所述搜索集群中至少两个其他搜索节点有所述文件块,则所述搜索节点根据自身与所述至少两个其他搜索节点的距离和所述至少两个其他搜索节点的网络传输速度,确定所述至少两个其他搜索节点中的一个搜索节点为所述文件块的下载源,并从所述下载源下载所述文件块。
[0017] 第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的索引分发方法的步骤。
[0018] 本申请实施例公开的分布式搜索系统、索引分发方法及存储介质,通过分布式索引构建平台构建索引,将所述索引按照索引分片存储在索引存储集群,并将所述索引对应的资源描述信息写入到状态存储集群,所述索引分片包括多个文件块,主控集群从状态存储集群中监听到资源描述信息后,将给搜索集群的索引下载指令发送到状态存储集群,搜索集群中的搜索节点从状态存储集群监听到索引下载指令后,确定要下载的索引分片和索引分片中的文件块,若至少两个其他搜索节点有所述文件块,则根据自身与所述至少两个其他搜索节点的距离和所述至少两个其他搜索节点的网络传输速度,确定所述至少两个其他搜索节点中的一个搜索节点为所述文件块的下载源,并从所述下载源下载所述文件块,本申请实施例实现了搜索节点对索引的P2P传输,不受搜索节点数目限制,大大降低了对分发机器的压力,提高了索引分发速度,提高了搜索服务的稳定性。附图说明
[0019] 为了更清楚地说明本申请实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0020] 图1是本申请实施例一的分布式搜索系统的结构示意图;
[0021] 图2是本申请实施例中的主控集群对搜索节点的监控界面图;
[0022] 图3是本申请实施例中的主控集群对搜索节点的网卡流量监控显示图;
[0023] 图4是本申请实施例二的索引分发方法的流程图

具体实施方式

[0024] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0025] 实施例一
[0026] 本实施例公开的一种分布式搜索系统,如图1所示,该分布式搜索系统包括:
[0027] 分布式索引构建平台110,用于构建索引,将所述索引按照索引分片存储在索引存储集群,并将所述索引的资源描述信息写入到状态存储集群,所述索引分片包括多个文件块;
[0028] 索引存储集群120,用于按照索引分片存储所述索引;
[0029] 状态存储集群130,用于保存所述资源描述信息,对搜索节点的服务进行注册,并保存所述搜索节点的服务状态,接收主控集群发送的索引下载指令;
[0030] 主控集群140,用于监听所述状态存储集群,若监听到所述资源描述信息,则发送索引下载指令到状态存储集群;
[0031] 搜索集群150,包括多个搜索节点151,所述多个搜索节点151组成对等网络,若所述搜索节点从状态存储集群中监听到所述索引下载指令,则确定要下载的索引分片及所述索引分片中的文件块,若至少两个其他搜索节点有所述文件块,则所述搜索节点根据自身与所述至少两个其他搜索节点的距离和所述至少两个其他搜索节点的网络传输速度,确定所述至少两个其他搜索节点中的一个搜索节点为所述文件块的下载源,并从所述下载源下载所述文件块。
[0032] 分布式索引构建平台110构建好最新的全量索引,并将索引分为预设数量的索引分片,按照索引分片进行压缩,将压缩后的索引按照索引分片存储在索引存储集群120,并将索引的资源描述信息写入到状态存储集群130。索引存储集群120中的节点分布在多个地区多个机房中。其中,资源描述信息可以是各个索引分片的存储位置,如某个索引分片存储在索引存储集群中的某个地区的某个机房中。所述索引分片包括多个文件块,从而便于搜索集群150中的搜索节点对文件块进行P2P(Point to point,点对点)传送,分布式索引构建平台110将构建好的索引分为索引分片后,再将每个索引分片分为多个文件块。其中,所述索引存储集群可以是HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)集群,HDFS有着高容错性的特点,并且可以部署在低廉的硬件上,而且提供高吞吐量来访问应用程序的数据,适合有着超大数据集的应用程序,而且HDFS可以实现流的形式访问文件系统中的数据。
[0033] 状态存储集群130用于保存索引对应的资源描述信息,接收主控集群下发的索引下载指令以及索引切换指令等,还对搜索节点的服务进行注册,保存搜索节点的服务状态。所述服务状态包括在线、离线、索引未下载、索引下载中、索引下载完成、索引切换中或索引切换完成等。其中,所述状态存储集群可以是ZooKeeper集群,ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件,可以为分布式应用提供一致性服务,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
[0034] 主控集群140控制搜索集群150中搜索节点对索引的下载以及切换,若在状态存储集群130监听到资源描述信息,确定有新的索引生成,则发送对所有搜索节点的索引下载指令到状态存储集群130,状态存储集群130用于保存索引下载指令,并提供接口供搜索集群150中的各个搜索节点监听。
[0035] 搜索集群150包括多个搜索节点151,多个搜索节点151之间组成对等网络,多个搜索节点中至少两个搜索节点保存相同的索引分片,在下载索引时,所述至少两个搜索节点之间可以进行P2P传送。每个搜索节点保存的索引分片是固定的,如索引包括两个索引分片,搜索集群中包括四个搜索节点时,每两个搜索节点保存同一个索引分片。图1中以三个索引分片为例,即分片1、分片2和分片3,位于同一列的搜索节点151保存相同的索引分片。
[0036] 本申请实施例中,搜索集群150用于提供分布式搜索服务,搜索集群150中的搜索节点从状态存储集群130中监听到索引下载指令时,根据自身保存的索引分片标识确定要下载的索引分片标识,即要下载的索引分片标识与自身保存的旧索引分片标识相同,根据要下载的索引分片包括的文件块,从多个文件块中随机选择一个文件块作为要下载的索引分片中的文件块。在搜索节点确定要下载的索引分片中的文件块后,从状态存储集群中监听搜索集群中其他搜索节点是否有所述文件块,若其他搜索节点没有所述文件块,则从索引存储集群中下载所述文件块;若只有一个其他搜索节点中有所述文件块,则从该其他搜索节点下载所述文件块;若至少两个其他搜索节点有所述文件块,则搜索节点根据自身与所述至少两个其他搜索节点的距离和所述至少两个其他搜索节点的网络传输速度,从所述至少两个其他搜索节点中选择一个搜索节点为所述文件块的下载源,并从所述下载源下载所述文件块。
[0037] 例如,索引包括三个索引分片:分片1、分片2和分片3,每个索引分片包括10个文件块,搜索集群包括9个搜索节点,搜索节点1、搜索节点2和搜索节点3保存分片1,搜索节点4、搜索节点5和搜索节点6保存分片2,搜索节点7、搜索节点8和搜索节点9保存分片3,搜索节点1从状态存储集群中监听到索引下载指令时,确定要下载的索引分片为分片1,文件块为分片1中的第2个文件块,而搜索节点2和搜索节点3中均有分片1中的第2个文件块,则搜索节点1根据自身所在的地区、机房以及搜索节点2和搜索节点3所在的地区、机房以及网络传输速度,搜索节点2和搜索节点3中选取距离较近、网络传输速度较高的一个搜索节点作为下载源。
[0038] P2P传输中,搜索节点确定文件块的下载源时,按同机房同地区优先选择搜索节点,降低跨机房传输流量,减少网络压力。
[0039] 在本申请的一个实施例中,所述主控集群还用于:根据所述搜索节点的资源占用情况动态调整所述搜索节点的网络传输速度。
[0040] 搜索集群中的搜索节点开始下载索引后,向状态存储集群上报下载任务,并定时上报负载和网络带宽占用情况。主控集群从状态存储集群中监控搜索节点性能,根据搜索节点的资源占用情况动态调整搜索节点的网络传输速度。其中,搜索节点的资源占用情况包括搜索节点的负载和网络带宽占用情况。
[0041] 主控集群还可以通过接口控制搜索节点上传和下载速度,如图2所示,针对每个任务、每个机器(即搜索节点),主控集群提供监控界面,供管理员监控搜索节点的索引版本、索引分片号、下载状态、下载开始时间及下载用时,主控集群还在监控界面提供操作接口供管理员进行机器设置,即供管理员设置搜索节点的上传和下载速度。
[0042] 搜索节点还将自身的网卡流量情况定时上报给状态存储集群,主控集群对状态存储集群进行监听,将监听到的搜索节点的网卡流量情况进行显示,如图3所示,便于管理员对节点进行调整,避免搜索节点压力过大。
[0043] 在本申请的一个实施例中,所述主控集群还用于:基于令牌桶算法定时产生令牌,并将所述令牌存储在令牌桶中;
[0044] 所述下载源还用于:消耗所述令牌桶中的令牌,并基于所述令牌对应的传输速度,向所述搜索节点传输所述文件块。
[0045] 其中,令牌桶算法是网络流量整形和速率限制中常用的一种算法。在网络中传输数据时,为了防止网络拥塞,可以通过令牌桶算法控制发送到网络上数据的数目,从而限制流出网络的流量,使流量以比较均匀的速度向外发送,并允许突发数据的发送。所述令牌桶可以为Redis令牌桶,可以高效的处理高并发限流。
[0046] 主控集群基于令牌桶算法定时产生令牌,将所述令牌存储在令牌桶中,用于控制搜索集群中搜索节点的传输速度。搜索节点确定搜索集群中的一个其他节点为下载源时,该下载源消耗令牌桶中的令牌,并基于所述令牌对应的传输速度,以该传输速度向所述搜索节点传输所述文件块。主控集群通过定时产生的令牌可全局、准确地控制跨机房、跨地域带宽,避免陷入传送暴。
[0047] 本申请实施例公开的分布式搜索系统,通过分布式索引构建平台构建索引,将所述索引按照索引分片存储在索引存储集群,并将所述索引对应的资源描述信息写入到状态存储集群,所述索引分片包括多个文件块,主控集群从状态存储集群中监听到资源描述信息后,将给搜索集群的索引下载指令发送到状态存储集群,搜索集群中的搜索节点从状态存储集群监听到索引下载指令后,确定要下载的索引分片和索引分片中的文件块,若至少两个其他搜索节点有所述文件块,则根据自身与所述至少两个其他搜索节点的距离和所述至少两个其他搜索节点的网络传输速度,确定所述至少两个其他搜索节点中的一个搜索节点为所述文件块的下载源,并从所述下载源下载所述文件块,本申请实施例实现了搜索节点对索引的P2P传输,不受搜索节点数目限制,大大降低了对分发机器的压力,提高了索引分发速度,提高了搜索服务的稳定性。
[0048] 实施例二
[0049] 本实施例公开的一种索引分发方法,如图4所示,该索引分发方法由上述实施例公开的分布式搜索系统执行,包括:步骤410至步骤440。
[0050] 步骤410,分布式索引构建平台构建索引,将所述索引按照索引分片存储在索引存储集群,并将所述索引的资源描述信息写入到状态存储集群,所述索引分片包括多个文件块。
[0051] 分布式索引构建平台110构建好最新的全量索引,并将索引分为预设数量的索引分片,按照索引分片进行压缩,将压缩后的索引按照索引分片存储在索引存储集群120,并将索引的资源描述信息写入到状态存储集群130。索引存储集群120中的节点分布在多个地区多个机房中。其中,资源描述信息可以是各个索引分片的存储位置,如某个索引分片存储在索引存储集群中的某个地区的某个机房中。所述索引分片包括多个文件块,从而便于搜索集群150中的搜索节点对文件块进行P2P传送,分布式索引构建平台110将构建好的索引分为索引分片后,再将每个索引分片分为多个文件块。所述索引存储集群可以是HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)集群。
[0052] 步骤420,主控集群监听所述状态存储集群,若监听到所述资源描述信息,则发送索引下载指令到状态存储集群。
[0053] 主控集群对状态存储集群进行监听,若监听到新索引对应的资源描述信息时,确定有新索引构建完成,则将对搜索集群中所有搜索节点的索引下载指令发送到状态存储集群,由搜索节点对状态存储集群进行监听。所述状态存储集群可以是ZooKeeper集群。
[0054] 步骤430,若搜索集群中的搜索节点从状态存储集群中监听到所述索引下载指令,则确定要下载的索引分片及所述索引分片中的文件块。
[0055] 若搜索集群中的搜索节点从状态存储集群中监听到索引下载指令,则根据自身保存的索引分片标识确定要下载的索引分片,并从该索引分片包括的多个文件块中随机确定一个文件块为要下载的文件块。
[0056] 步骤440,若所述搜索集群中至少两个其他搜索节点有所述文件块,则所述搜索节点根据自身与所述至少两个其他搜索节点的距离和所述至少两个其他搜索节点的网络传输速度,确定所述至少两个其他搜索节点中的一个搜索节点为所述文件块的下载源,并从所述下载源下载所述文件块。
[0057] 在搜索节点确定要下载的索引分片中的文件块后,从状态存储集群中监听搜索集群中其他搜索节点是否有所述文件块,若至少两个其他搜索节点有所述文件块,则搜索节点根据自身与所述至少两个其他搜索节点的距离和所述至少两个其他搜索节点的网络传输速度,从所述至少两个其他搜索节点中选择一个搜索节点为所述文件块的下载源,并从所述下载源下载所述文件块。
[0058] 例如,索引包括三个索引分片:分片1、分片2和分片3,每个索引分片包括10个文件块,搜索集群包括9个搜索节点,搜索节点1、搜索节点2和搜索节点3保存分片1,搜索节点4、搜索节点5和搜索节点6保存分片2,搜索节点7、搜索节点8和搜索节点9保存分片3,搜索节点1从状态存储集群中监听到索引下载指令时,确定要下载的索引分片为分片1,文件块为分片1中的第2个文件块,而搜索节点2和搜索节点3中均有分片1中的第2个文件块,则搜索节点1根据自身所在的地区、机房以及搜索节点2和搜索节点3所在的地区、机房以及网络传输速度,搜索节点2和搜索节点3中选取距离较近、网络传输速度较高的一个搜索节点作为下载源。
[0059] 在本申请的一个实施例中,所述搜索节点根据自身与所述至少两个其他搜索节点的距离和所述至少两个其他搜索节点的网络传输速度,确定所述至少两个其他搜索节点中的一个搜索节点为所述文件块的下载源,包括:所述搜索节点根据自身分别与所述至少两个其他搜索节点的距离,确定所述至少两个其他搜索节点的机房分数;所述搜索节点根据所述至少两个其他搜索节点的机房分数和机房权重,以及所述至少两个其他搜索节点的网络传输速度和传输速度权重,计算所述至少两个其他搜索节点的优先级;所述搜索节点将所述至少两个其他搜索节点中优先级最高的一个搜索节点作为所述文件块的下载源。
[0060] 其中,所述距离可以根据自身所处地区和机房,以及所述至少两个其他搜索节点所处地区和机房来确定。机房权重可以由主控集群预先设置。所述网络传输速度为搜索节点的最大网络传输速度。传输速度权重可以由主控集群动态调整,主控集群通过调整搜索节点的传输速度权重来调整该搜索节点的传输速度。
[0061] 所述搜索节点根据所述至少两个其他搜索节点的IP地址确定所述至少两个其他搜索节点所处地区和机房,再根据自身所处地区和机房,以及所述至少两个其他搜索节点所处地区和机房确定机房分数,同机房情况下机房分数最高,同地区不同机房的机房分数低于同机房的机房分数,跨地区情况下机房分数最低。所述搜索节点根据所述至少两个其他搜索节点的机房分数和机房权重,以及所述至少两个其他搜索节点的网络传输速度和传输速度权重,通过如下公式计算所述至少两个其他搜索节点的优先级:
[0062] Rank=Speed*Ws+HostDist*Whd
[0063] 其中,Speed表示网络传输速度,Ws表示传输速度权重,HostDist表示机房分数,Whd表示机房权重,Rank表示优先级值。在计算得到所述至少两个其他搜索节点的优先级值后,按照优先级值从大到小进行排序,将排序作为优先级顺序。所述搜索节点将所述至少两个其他搜索节点中优先级最高的一个搜索节点作为所述文件块的下载源。P2P传输中,搜索节点确定文件块的下载源时,按同机房同地区优先选择搜索节点,降低跨机房传输流量,减少网络压力。
[0064] 在本申请的一个实施例中,所述从所述下载源下载所述文件块,包括:基于所述下载源消耗的令牌对应的传输速度,从所述下载源下载所述文件块,所述令牌为主控集群基于令牌桶算法产生的。主控集群基于令牌桶算法定时产生令牌,将所述令牌存储在令牌桶中,用于控制搜索集群中搜索节点的传输速度。搜索节点确定搜索集群中的一个其他节点为下载源时,该下载源消耗令牌桶中的令牌,并基于所述令牌对应的传输速度,以该传输速度向所述搜索节点传输所述文件块。主控集群通过定时产生的令牌可全局、准确地控制跨机房、跨地域带宽,避免陷入传送风暴。其中,所述令牌桶可以为Redis令牌桶,可以高效的处理高并发限流。
[0065] 在本申请的一个实施例中,在所述若搜索集群中的搜索节点从状态存储集群中监听到所述索引下载指令,则确定要下载的索引分片及所述索引分片中的文件块之后,还包括:若所述搜索集群中一个其他搜索节点有所述文件块,则从该其他搜索节点下载所述文件块。若搜索集群中一个其他搜索节点有所述文件块,则从该其他搜索节点下载所述文件块,降低索引存储集群的压力,并提高文件块的传输速度。
[0066] 在本申请的另一个实施例中,在所述若搜索集群中的搜索节点从状态存储集群中监听到所述索引下载指令,则确定要下载的索引分片及所述索引分片中的文件块之后,还包括:若所述搜索集群中没有所述文件块,则从所述索引存储集群下载所述文件块。
[0067] 在本申请的一个实施例中,在从所述下载源下载所述文件块之后,还包括:所述搜索节点在所述文件块下载成功后,对外提供分发服务,并将提供分发服务的状态上报给状态存储集群中,便于其他搜索节点从该搜索节点下载所述文件块。
[0068] 如果搜索节点将一个索引分片下载完成,则将下载完成的状态上报给状态存储集群,主控集群监听到多个搜索节点索引分片下载完成后,在保证搜索集群服务能力的前提下,分批次给搜索节点发送索引切换命令,单个搜索节点切换索引期间处于离线状态。所有搜索节点切换索引完毕后,整个搜索集群切换索引完毕。
[0069] 以搜索集群中包括4个搜索节点A、B、C、D,索引分片数为2,搜索节点A、B保存分片0,搜索节点C、D保存分片1为例,索引创建完成,开始索引分发流程。分布式索引构建平台创建索引完成后,将索引存储到索引存储集群,并将资源描述信息写入到状态存储集群。主控集群监听到资源描述信息,确定有新索引生成,通知搜索节点开始下载索引。搜索节点A、B接收到下载分片0的命令后,开始下载任务:搜索节点A准备下载分片0中的文件块1,首先判断集群中是否已有文件块1,若没有,则从索引存储集群下载,若搜索节点A已获得文件块1,此时搜索节点B可以从搜索节点A获取文件块1。搜索节点A、B下载完对应文件块后,都对外提供分发服务。搜索节点A、B下载完分片0后,通知主控集群。机器C、D下载完分片1后,上报下载完成的状态给状态存储集群,主控集群监听到该状态后,分批次下发索引切换命令,搜索节点下线服务,解压索引,并加载新索引。
[0070] 本申请实施例公开的索引分发方法,通过分布式索引构建平台构建索引,将所述索引按照索引分片存储在索引存储集群,并将所述索引的资源描述信息写入到状态存储集群,主控集群监听所述状态存储集群,若监听到所述资源描述信息,则发送索引下载指令到状态存储集群,若搜索集群中的搜索节点从状态存储集群中监听到所述索引下载指令,则确定要下载的索引分片及所述索引分片中的文件块,若所述搜索集群中至少两个其他搜索节点有所述文件块,则所述搜索节点根据自身与所述至少两个其他搜索节点的距离和所述至少两个其他搜索节点的网络传输速度,确定所述至少两个其他搜索节点中的一个搜索节点为所述文件块的下载源,并从所述下载源下载所述文件块,本申请实施例实现了搜索节点对索引的P2P传输,不受搜索机器数目限制,大大降低了对分发机器的压力,提高了索引分发速度,提高了搜索服务的稳定性。
[0071] 本申请实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的索引分发方法的步骤。
[0072] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0073] 以上对本申请实施例提供的一种分布式搜索系统、索引分发方法及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
[0074] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈