CN107370809A - 数据同步方法及数据搜索*** - Google Patents

数据同步方法及数据搜索*** Download PDF

Info

Publication number
CN107370809A
CN107370809A CN201710568992.1A CN201710568992A CN107370809A CN 107370809 A CN107370809 A CN 107370809A CN 201710568992 A CN201710568992 A CN 201710568992A CN 107370809 A CN107370809 A CN 107370809A
Authority
CN
China
Prior art keywords
data search
data
cluster
request
search cluster
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.)
Pending
Application number
CN201710568992.1A
Other languages
English (en)
Inventor
侯俊丞
徐子为
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Baiguoyuan Information Technology Co Ltd
Original Assignee
Guangzhou Baiguoyuan Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Baiguoyuan Information Technology Co Ltd filed Critical Guangzhou Baiguoyuan Information Technology Co Ltd
Priority to CN201710568992.1A priority Critical patent/CN107370809A/zh
Publication of CN107370809A publication Critical patent/CN107370809A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (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

数据同步方法及数据搜索***
技术领域
本发明涉及互联网技术领域,特别涉及一种数据同步方法及数据搜索***。
背景技术
在进入互联网时代后数据量呈暴增趋势,这在为人们带来极大方便的同时,随之而来也给人们带来了数据筛选的困难,在这一环境下数据搜索引擎应运而生。例如,近年来随着分布式计算技术的不断成熟,出现了诸如Sphinx、Solr、Elasticsearch等数据搜索引擎。其中,上述数据搜索引擎之所以具备高速地搜索处理能力,是因为组建了至少一个搜索集群。比如,Elasticsearch作为新兴的分布式实时搜索引擎,可以支持上百搜索节点规模的不同集群来进行集群自组建。而在进行数据搜索时,为了保证数据搜索引擎可以为用户提供精准的搜索结果以及保证搜索服务的高容灾性,如何在不同搜索集群之间进行数据同步一直是本领域技术人员关注的一个焦点。
以Elasticsearch搜索引擎为例,现有技术在进行数据同步时,主要采取下述方式实现:如图1所示,引入了第三方云服务并组建了一个主集群和至少一个副集群。其中,主集群更新的索引数据通过备份恢复功能上传到第三方云服务提供的云存储服务器上,而部署在其他地区的副集群则通过定时启动备份恢复功能,从上述云存储服务器上获取主集群更新的索引数据,以达到同主集群的数据同步增量更新。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
上述数据同步实现的基础是使用第三方云服务提供的有偿付费服务,不但耗费大量财力,而且搜索服务的稳定性受限于第三方云服务。此外,由于索引数据的更新操作必须在主集群上述进行,副集群仅是作为一个个副本用于查询访问,因此本方案仅支持多地区的本地查询,并不支持多地区的本地更新,即所有更新操作必须返回到主集群进行,因此会造成更新操作的RTT(Round-Trip Time,往返时延)比较高。此外,由于副集群的数据均来自于主集群,因此若主集群出现异常,则副集群便无法进行数据更新,导致搜索服务的容灾性能较差。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据同步方法及数据搜索***。所述技术方案如下:
第一方面,提供了一种数据同步方法,应用于数据搜索***,所述数据搜索***包括请求分发服务器、至少两个数据搜索集群以及与所述至少两个数据搜索集群数量匹配的订阅消息服务器,所述方法包括:
当第一数据搜索集群发生数据更新操作时,所述第一数据搜索集群生成针对所述数据更新操作的数据更新消息;
所述第一数据搜索集群将所述数据更新消息发布至匹配的第一订阅消息服务器;
所述第一订阅消息服务器将所述数据更新消息推送至第二数据搜索集群,以使所述第二数据搜索集群根据所述数据更新消息进行同步数据更新;
其中,所述第一数据搜索集群为所述至少两个数据搜索集群中的任一数据搜索集群,所述第二数据搜索集群为所述至少两个数据搜索集群中除了所述第一数据搜索集群之外的其他数据搜索集群。
在另一个实施例中,所述方法还包括:
所述第一订阅消息服务器接收所述第二数据搜索集群发送的消息订阅请求,所述消息订阅请求中至少包括所述第二数据搜索集群的标识信息;
所述第一订阅消息服务器根据所述第二数据搜索集群的标识信息,对进行消息订阅的所述第二数据搜索集群进行记录;
所述第一订阅消息服务器将所述数据更新消息推送至第二数据搜索集群,包括:
所述第一订阅消息服务器根据所述第二数据搜索集群的标识信息,将所述数据更新消息推送至所述第二数据搜索集群。
在另一个实施例中,所述方法还包括:
所述请求分发服务器在接收到请求终端发送的数据搜索请求后,获取所述至少两个数据搜索集群中每一个数据搜索集群的网络状态;
所述请求分发服务器根据所述每一个数据搜索集群的网络状态,在所述至少两个数据搜索集群中确定处理所述数据搜索请求的目标数据搜索集群;
所述请求分发服务器将所述数据搜索请求转发至目标数据搜索集群;
所述目标数据搜索集群在接收到所述数据搜索请求后,对所述数据搜索请求进行处理,并将得到的处理结果发送给所述请求分发服务器;
所述请求分发服务器将所述处理结果转发至所述请求终端。
在另一个实施例中,所述请求分发服务器根据所述每一个数据搜索集群的网络状态,在所述至少两个数据搜索集群中确定处理所述数据搜索请求的目标数据搜索集群,包括:
所述请求分发服务器在所述至少两个数据搜索集群中确定往返时延最小的数据搜索集群;
所述请求分发服务器将所述往返时延最小的数据搜索集群确定为所述目标数据搜索集群。
在另一个实施例中,所述请求分发服务器根据所述每一个数据搜索集群的网络状态,在所述至少两个数据搜索集群中确定处理所述数据搜索请求的目标数据搜索集群,包括:
所述请求分发服务器在所述至少两个数据搜索集群中确定往返时延最小的数据搜索集群;
所述请求分发服务器判断所述往返时延最小的数据搜索集群是否存在服务异常;
若所述往返时延最小的数据搜索集群出现服务异常,则所述请求分发服务器再根据第三数据搜索集群的网络状态确定所述目标数据搜索集群;
其中,所述第三数据搜索集群为所述至少两个数据搜索集群中除了所述往返时延最小的数据搜索集群之外的其他数据搜索集群。
第二方面,提供了一种数据搜索***,所述数据搜索***包括请求分发服务器、至少两个数据搜索集群以及与所述至少两个数据搜索集群数量匹配的订阅消息服务器;
第一数据搜索集群,用于当发生数据更新操作时,生成针对所述数据更新操作的数据更新消息;
所述第一数据搜索集群,还用于将所述数据更新消息发布至匹配的第一订阅消息服务器;
所述第一订阅消息服务器,用于将所述数据更新消息推送至第二数据搜索集群;
所述第二数据搜索集群,用于根据所述数据更新消息进行同步数据更新;
其中,所述第一数据搜索集群为所述至少两个数据搜索集群中的任一数据搜索集群,所述第二数据搜索集群为所述至少两个数据搜索集群中除了所述第一数据搜索集群之外的其他数据搜索集群。
在另一个实施例中,所述第一订阅消息服务器,还用于接收所述第二数据搜索集群发送的消息订阅请求,所述消息订阅请求中至少包括所述第二数据搜索集群的标识信息;
所述第一订阅消息服务器,还用于根据所述第二数据搜索集群的标识信息,对进行消息订阅的所述第二数据搜索集群进行记录;
所述第一订阅消息服务器,用于根据所述第二数据搜索集群的标识信息,将所述数据更新消息推送至所述第二数据搜索集群。
在另一个实施例中,所述请求分发服务器,用于在接收到请求终端发送的数据搜索请求后,获取所述至少两个数据搜索集群中每一个数据搜索集群的网络状态;
所述请求分发服务器,用于根据所述每一个数据搜索集群的网络状态,在所述至少两个数据搜索集群中确定处理所述数据搜索请求的目标数据搜索集群,并将所述数据搜索请求转发至目标数据搜索集群;
所述目标数据搜索集群,用于在接收到所述数据搜索请求后,对所述数据搜索请求进行处理,并将得到的处理结果发送给所述请求分发服务器;
所述请求分发服务器,还用于将所述处理结果转发至所述请求终端。
在另一个实施例中,所述请求分发服务器,用于在所述至少两个数据搜索集群中确定往返时延最小的数据搜索集群,将所述往返时延最小的数据搜索集群确定为所述目标数据搜索集群。
在另一个实施例中,所述请求分发服务器,用于在所述至少两个数据搜索集群中确定往返时延最小的数据搜索集群;判断所述往返时延最小的数据搜索集群是否存在服务异常;若所述往返时延最小的数据搜索集群出现服务异常,则再根据第三数据搜索集群的网络状态确定所述目标数据搜索集群;
其中,所述第三数据搜索集群为所述至少两个数据搜索集群中除了所述往返时延最小的数据搜索集群之外的其他数据搜索集群。
本发明实施例提供的技术方案带来的有益效果是:
通过部署了数据互为备份的多个数据搜索集群以及分别为每一个数据搜索集群配套部署了一个订阅消息服务器,使得在每一个数据搜索集群上均可完成对数据的更新,且支持通过匹配的订阅消息服务器将对数据的更新同步至跨地区的其他数据搜索集群,所以相较于仅能在主集群进行数据更新的方式,大大降低了更新操作的RTT。此外,由于每一个数据搜索集群上存储的数据保持实时一致,每一个数据搜索集群均可提供完整的搜索服务,即便一个或几个数据搜索集群发生服务异常,依然可以保证搜索服务可用,因此大大提升了***的容灾性能,且本发明实施例数据同步的实现无需第三方的支持,使得搜索服务的稳定性不受限于第三方。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明背景技术提供的一种Elasticsearch搜索引擎所涉及的数据搜索***的架构图;
图2A是本发明实施例提供的一种数据搜索***的架构图;
图2B是本发明实施例提供的一种数据同步方法的流程图;
图3A是本发明实施例提供的一种数据同步方法的流程图;
图3B是本发明实施例提供的一种数据搜索方法的流程图;
图4是本发明实施例提供的一种数据搜索***的结构示意图;
图5是本发明实施例提供的一种数据搜索***的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在对本发明实施例进行详细地解释说明之前,先对本发明实施例可能涉及到的一些名词进行解释说明。
RTT(Round Trip Time,往返时延):是互联网中的一个重要性能指标,它表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。
集群:在本发明实施例中指代集群服务器,即Cluster。其中,集群是这样一种技术,它将多个***连接到一起,使得多个***的服务器能够像一台服务器那样工作或者看起来好像一台服务器。在采用集群技术后,可以大幅提高***的稳定性、数据处理能力以及服务能力。
云存储:一种新兴的网络存储技术,是指通过集群应用、网络技术或分布式文件***等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个***。
丢包率:指代丢失的数据包数量占所发送数据包总量的比率。
负载:衡量一个服务器中运行的任务的量。这个量越大意味服务器的负荷越大,有可能会造成任务积压,进而导致性能损失。
接下来,对本发明实施例提供的数据搜索***进行一下解释说明。
参见图2A,本发明实施例提供的数据搜索***由三大部分组成,分别为请求分发服务器、数据搜索集群以及订阅消息服务器。下面分别对请求分发服务器、数据搜索集群以及订阅消息服务器进行详细地解释说明。
请求分发服务器
在本发明实施例中,请求分发服务器又可称之为智能请求分发***。其中,智能请求分发***作为搜索服务的接入点可以部署在全球各地。即,智能请求分发***包括的服务器数量众多。其中,具有搜索需求的请求终端通过就近接入的方式可通过邻近的智能请求分发***来转发数据搜索请求。
智能请求分发***可以感知全球所有的数据搜索集群的网络状态。其中,网络状态包括但不限于往返时延、丢包率以及负载等参数。这样,智能请求分发***在接收到邻近的请求终端发送的数据搜索请求后,智能请求分发***会根据所有的数据搜索集群的网络状态来选择一个最优的数据索集群作为目标数据搜索集群来处理这个数据搜索请求。
其中,在进行目标数据搜索集群的选取时,本发明实施例通常是以RTT作为主要考虑要素。由于RTT越低的数据搜索集群通常与请求终端的距离也越近,因此目标数据搜索集群一般为与请求终端邻近的数据搜索集群。但是,如果当前选取出的目标数据搜索集群出现了服务异常的情况,通常表现为丢包率高或负载高等,则智能请求分发***还是会以保证服务可用性为优先选取原则,会再次在其他数据搜索集群中进行目标数据搜索集群的选取,即会将该数据搜索请求切换到其他服务正常的数据搜索集群进行处理。
数据搜索集群
在本发明实施例中,为了实现在响应数据搜索请求时低RTT,以及使得搜索服务高可用(容灾性能好),会在全球各个地区建立多个数据互为备份的数据搜索集群,进而组成多中心搜索***。其中,数据互为备份的意思是每个数据搜索集群均拥有全量的数据用于提供完整的搜索服务。一个数据搜索集群出现了问题,其他数据搜索集群由于存储了全量的数据,因此搜索服务还可用,且数据搜索精准度不会出现降低的情况。此外,一个数据搜索集群出现了数据更新,其他的数据搜索集群均可以进行同步数据更新。
综上所述,通过智能请求分发***将请求终端的数据搜索请求分发到邻近的(即往返时延低)的数据搜索集群进行处理,实现了以请求响应本地化的方式来降低响应请求的RTT。且如果原本选取出的数据搜索集群出现服务异常问题,处于不可服务的状态。智能请求分发***还可以将数据搜索请求转发到其他服务正常的数据搜索集群,保证了服务高可用。
订阅消息服务器
在本发明实施例中,由于中心搜索***由多个数据搜索集群组成,为了保证每个数据搜索集群均能提供完整的搜索服务,需保证每个数据搜索集群中存储的数据保持实时一致。而由于数据搜索集群是分布在各个不同地区的,因此为了实现数据的实时跨区域同步,本发明实施例为每个数据搜索集群均配套设置了一个订阅消息服务器。比如,如果数据搜索集群A发生了数据修改,那么数据搜索集群A便将修改的数据发布到与之匹配的订阅消息服务器A中。而除了数据搜索集群A之外的其他数据搜索集群通过订阅数据搜索集群A的订阅消息服务器A的消息,便可将数据搜索集群A中的数据实时同步到本地。也即数据搜索集群之间,通过互相订阅其他数据搜索集群的消息来实现数据的跨区域实时同步。
图2B是本发明实施例提供的一种数据同步方法的流程图,该数据同步方法应用于数据搜索***,该数据搜索***包括请求分发服务器、至少两个数据搜索集群以及与至少两个数据搜索集群数量匹配的订阅消息服务器。参见图2B,本发明实施例提供的方法流程包括:
201、当第一数据搜索集群发生数据更新操作时,第一数据搜索集群生成针对数据更新操作的数据更新消息,第一数据搜索集群为至少两个数据搜索集群中的任一数据搜索集群。
202、第一数据搜索集群将数据更新消息发布至匹配的第一订阅消息服务器。
203、第一订阅消息服务器将数据更新消息推送至第二数据搜索集群,以使第二数据搜索集群根据数据更新消息进行同步数据更新,第二数据搜索集群为至少两个数据搜索集群中除了第一数据搜索集群之外的其他数据搜索集群。
本发明实施例提供的方法,通过部署了数据互为备份的多个数据搜索集群以及分别为每一个数据搜索集群配套部署了一个订阅消息服务器,使得在每一个数据搜索集群上均可完成对数据的更新,且支持通过匹配的订阅消息服务器将对数据的更新同步至跨地区的其他数据搜索集群,所以相较于仅能在主集群进行数据更新的方式,大大降低了更新操作的RTT。此外,由于每一个数据搜索集群上存储的数据保持实时一致,每一个数据搜索集群均可提供完整的搜索服务,即便一个或几个数据搜索集群发生服务异常,依然可以保证搜索服务可用,因此大大提升了***的容灾性能,且本发明实施例数据同步的实现无需第三方的支持,使得搜索服务的稳定性不受限于第三方。
在另一个实施例中,该方法还包括:
第一订阅消息服务器接收第二数据搜索集群发送的消息订阅请求,消息订阅请求中至少包括第二数据搜索集群的标识信息;
第一订阅消息服务器根据第二数据搜索集群的标识信息,对进行消息订阅的第二数据搜索集群进行记录;
第一订阅消息服务器将数据更新消息推送至第二数据搜索集群,包括:
第一订阅消息服务器根据第二数据搜索集群的标识信息,将数据更新消息推送至第二数据搜索集群。
在另一个实施例中,该方法还包括:
请求分发服务器在接收到请求终端发送的数据搜索请求后,获取至少两个数据搜索集群中每一个数据搜索集群的网络状态;
请求分发服务器根据每一个数据搜索集群的网络状态,在至少两个数据搜索集群中确定处理数据搜索请求的目标数据搜索集群;
请求分发服务器将数据搜索请求转发至目标数据搜索集群;
目标数据搜索集群在接收到数据搜索请求后,对数据搜索请求进行处理,并将得到的处理结果发送给请求分发服务器;
请求分发服务器将处理结果转发至请求终端。
在另一个实施例中,请求分发服务器根据每一个数据搜索集群的网络状态,在至少两个数据搜索集群中确定处理数据搜索请求的目标数据搜索集群,包括:
请求分发服务器在至少两个数据搜索集群中确定往返时延最小的数据搜索集群;
请求分发服务器将往返时延最小的数据搜索集群确定为目标数据搜索集群。
在另一个实施例中,请求分发服务器根据每一个数据搜索集群的网络状态,在至少两个数据搜索集群中确定处理数据搜索请求的目标数据搜索集群,包括:
请求分发服务器在至少两个数据搜索集群中确定往返时延最小的数据搜索集群;
请求分发服务器判断往返时延最小的数据搜索集群是否存在服务异常;
若往返时延最小的数据搜索集群出现服务异常,则请求分发服务器再根据第三数据搜索集群的网络状态确定目标数据搜索集群;
其中,第三数据搜索集群为至少两个数据搜索集群中除了往返时延最小的数据搜索集群之外的其他数据搜索集群。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图3A是本发明实施例提供的一种数据同步方法的流程图,应用于数据搜索***,参见图3A,本发明实施例提供的方法流程包括:
301a、第一订阅消息服务器接收第二数据搜索集群发送的消息订阅请求,该消息订阅请求中至少包括第二数据搜索集群的标识信息。
首先需要说明的一点是,在本发明实施例中第一数据搜索集群为至少两个数据搜索集群中的任一个数据搜索集群,而第二数据搜索集群为至少两个数据搜索集群中除了第一数据搜索集群之外的其他数据搜索集群。
此外,订阅消息服务器的数量与数据搜索集群的数量匹配,以保证每一个数据搜索集群均对应一个订阅消息服务器。其中,第一订阅消息服务器与第一数据搜索集群匹配,即第一数据搜索集群每当有数据更新时,均发布到第一订阅消息服务器。
在本发明实施例中,为了实现数据的跨区域实时同步,数据搜索集群之间会相互之间进行消息订阅。这样,当某一数据搜索集群上存在数据更新时,便可以通过这一订阅机制使得其他数据搜索集群同步进行相应地数据更新。
其中,第二数据搜索集群的标识信息可为IP(Internet Protocol,网络地址)地址和/或端口信息,本发明实施例对此不进行具体限定。
302a、第一订阅消息服务器根据第二数据搜索集群的标识信息,对进行消息订阅的第二数据搜索集群进行记录。
在本发明实施例中,为了后续能够将生成的数据更新消息推送给除了第一数据搜索集群之外的第二数据搜索集群,第一订阅消息服务器会对进行消息订阅的第二数据搜索集群进行记录。比如,将第二数据搜索集群涵盖的全部数据搜索集群的标识信息统一记录在一个文件夹或一个列表中。
303a、当第一数据搜索集群发生数据更新操作时,第一数据搜索集群生成针对数据更新操作的数据更新消息。
其中,数据更新操作既可包括对已存储数据的修改,也可包括新增数据,本发明实施例对此不进行具体限定。
第一数据搜索集群在生成数据更新消息时,若数据更新操作是对已存储数据的修改,则该数据更新消息中可包括目标已存储数据的标识信息和对目标已存储数据的修改说明信息,以使后续第二数据搜索集群在根据目标已存储数据的标识信息查找到目标已存储数据后,根据该修改说明信息完成对目标已存储数据的修改。或,该数据更新消息中还可包括目标已存储数据的标识信息和修改后的目标已存储数据,后续第二数据搜索集群在根据目标已存储数据的标识信息查找到目标已存储数据后,直接利用修改后的目标已存储数据进行数据替换即可。另外,若数据更新操作是新增数据,则该数据更新消息中包括新增的数据。
304a、第一数据搜索集群将该数据更新消息发布至匹配的第一订阅消息服务器。
在本发明实施例中,第一数据搜索集群中出现任何的数据更新均会上报至第一订阅消息服务器。
305a、第一订阅消息服务器将该数据更新消息推送至第二数据搜索集群。
由于第一订阅消息服务器已经将进行消息订阅的第二数据搜索集群进行记录,因此第一订阅消息服务器根据第二数据搜索集群的标识信息,便可将该数据更新消息推送至第二数据搜索集群。
306a、第二数据搜索集群根据该数据更新消息进行同步数据更新。
在本发明实施例中,第二数据搜索集群在接收到第一订阅消息服务器推送的数据更新消息后,便可参照上述步骤303a所示的几种方式完成对数据的同步更新,使得不同地区的每一个数据搜索集群上存储的数据保持实时一致。这样,即便某一个或某几个数据搜索集群出现不能提供搜索服务的异常情况,其他数据搜索集群依然可以提供完成的搜索服务,提供了***的容灾性能。
在另一个实施例中,本发明实施例在引入了请求分发服务器后,使得响应数据搜索请求的响应时间也得到大大缩减,具体过程描述请求参见下述图3B所示的实施例:
301b、请求终端发送数据搜索请求。
由图2A可知,请求终端具体是将数据搜索请求发送至邻近的请求分发服务器,即请求终端基于就近接入的方式通过邻近的请求分发服务器来转发数据搜索请求。
302b、请求分发服务器在接收到请求终端发送的数据搜索请求后,获取至少两个数据搜索集群中每一个数据搜索集群的网络状态,并根据每一个数据搜索集群的网络状态,在至少两个数据搜索集群中确定处理该数据搜索请求的目标数据搜索集群。
在本发明实施例中,目标数据搜索集群的确定方式包括但不限于下述两种:
第一种方式、请求分发服务器在至少两个数据搜索集群中确定往返时延最小的数据搜索集群;请求分发服务器将往返时延最小的数据搜索集群确定为目标数据搜索集群。
针对第一种方式,是以往返时延低作为最重要的考虑要素,因此请求分发服务器会获取每一个数据搜索集群的往返时延,并在其中确定出往返时延最小的数据搜索集群,且以该数据搜索集群作为处理该数据搜索请求的目标数据搜索集群。
第二种方式、请求分发服务器在至少两个数据搜索集群中确定往返时延最小的数据搜索集群,并判断往返时延最小的数据搜索集群是否存在服务异常;若往返时延最小的数据搜索集群出现服务异常,则请求分发服务器再根据第三数据搜索集群的网络状态确定目标数据搜索集群。
其中,第三数据搜索集群为至少两个数据搜索集群中除了往返时延最小的数据搜索集群之外的其他数据搜索集群。
针对第二种方式,在确定出具有最小往返时延的目标数据搜索集群后,一般请求分发服务器还会进一步判断一下该目标数据搜索集群是否存储服务异常,比如丢包率是否高到超出一个规定阈值或者负载是否高出一个预设阈值。若该目标数据搜索集群存在服务异常,则本发明实施例还是会以保证服务可用性为准则,继续再根据第三数据搜索集群的网络状态确定处理该数据搜索请求的目标数据搜索集群,即切换该数据搜索请求至其他服务正常的数据搜索集群进行处理。具体的选取流程跟上述方式一致,此处不再赘述。
303b、请求分发服务器将该数据搜索请求转发至目标数据搜索集群。
304b、目标数据搜索集群在接收到该数据搜索请求后,对该数据搜索请求进行处理,并将得到的处理结果发送给请求分发服务器。
在本发明实施例中,如果该数据搜索请求仅是涉及对某一项数据的查询,则目标数据搜索集群仅根据该数据搜索请求在已存储数据中进行数据查找,并在查找到用户所需的数据后,将该用户所需的数据作为处理结果发送给请求分发服务器。如果该数据搜索请求还涉及对某一项数据的修改,比如修改一下用户在社交应用中的昵称,则目标数据搜索集群在根据该数据搜索请求在已存储数据中进行数据查找,并在查找到目标已存储数据完成修改后,会将目标已存储数据的修改结果作为处理结果发送给请求分发服务器。
305b、请求分发服务器将处理结果转发至请求终端。
需要说明是的是,上述步骤301b至步骤305b即对应图2A中所示的步骤1至3。另外,若本次请求终端发送的数据搜索请求涉及到对数据的修改,则还会按照上述步骤303a至步骤306a的方式完成对数据的同步更新。对应地,即对应图2A中所示的步骤4至5。
本发明实施例提供的方法,通过部署了数据互为备份的多个数据搜索集群以及分别为每一个数据搜索集群配套部署了一个订阅消息服务器,使得在每一个数据搜索集群上均可完成对数据的更新,且支持通过匹配的订阅消息服务器将对数据的更新同步至跨地区的其他数据搜索集群,所以相较于仅能在主集群进行数据更新的方式,大大降低了更新操作的RTT。
此外,由于每一个数据搜索集群上存储的数据保持实时一致,每一个数据搜索集群均可提供完整的搜索服务,即便一个或几个数据搜索集群发生服务异常,依然可以保证搜索服务可用,因此大大提升了***的容灾性能。
此外,本发明实施例数据同步的实现无需第三方的支持,使得搜索服务的稳定性不受限于第三方。
另外,通过部署了请求分发服务器,使得数据搜索请求可以被分配到邻近的数据搜索集群进行处理,实现了请求的本地化响应,大大降低了请求在网络链路中的传输耗时,使得响应请求的RTT大大降低,保证了不同地区的请求均能够在较短的时间内得到响应。
本发明实施例提供了一种数据搜索***。其中,该数据搜索***包括请求分发服务器、至少两个数据搜索集群以及与至少两个数据搜索集群数量匹配的订阅消息服务器。
参见图4,第一数据搜索集群401,用于当发生数据更新操作时,生成针对数据更新操作的数据更新消息;
第一数据搜索集群401,还用于将数据更新消息发布至匹配的第一订阅消息服务器;
第一订阅消息服务器402,用于将数据更新消息推送至第二数据搜索集群;
第二数据搜索集群403,用于根据数据更新消息进行同步数据更新;
其中,第一数据搜索集群401为至少两个数据搜索集群中的任一数据搜索集群,第二数据搜索集群403为至少两个数据搜索集群中除了第一数据搜索集群401之外的其他数据搜索集群。
在另一个实施例中,第一订阅消息服务器402,还用于接收第二数据搜索集群403发送的消息订阅请求,消息订阅请求中至少包括第二数据搜索集群403的标识信息;
第一订阅消息服务器402,还用于根据第二数据搜索集群403的标识信息,对进行消息订阅的第二数据搜索集群403进行记录;
第一订阅消息服务器402,用于根据第二数据搜索集群403的标识信息,将数据更新消息推送至第二数据搜索集群403。
在另一个实施例中,参见图5,请求分发服务器404,用于在接收到请求终端发送的数据搜索请求后,获取至少两个数据搜索集群中每一个数据搜索集群的网络状态;
请求分发服务器404,用于根据每一个数据搜索集群的网络状态,在至少两个数据搜索集群中确定处理数据搜索请求的目标数据搜索集群,并将数据搜索请求转发至目标数据搜索集群;
目标数据搜索集群405,用于在接收到数据搜索请求后,对数据搜索请求进行处理,并将得到的处理结果发送给请求分发服务器;
请求分发服务器404,还用于将处理结果转发至请求终端。
在另一个实施例中,请求分发服务器404,用于在至少两个数据搜索集群中确定往返时延最小的数据搜索集群,将往返时延最小的数据搜索集群确定为目标数据搜索集群405。
在另一个实施例中,请求分发服务器404,用于在至少两个数据搜索集群中确定往返时延最小的数据搜索集群;判断往返时延最小的数据搜索集群是否存在服务异常;若往返时延最小的数据搜索集群出现服务异常,则再根据第三数据搜索集群的网络状态确定目标数据搜索集群405;
其中,第三数据搜索集群为至少两个数据搜索集群中除了往返时延最小的数据搜索集群之外的其他数据搜索集群。
本发明实施例提供的***,通过部署了数据互为备份的多个数据搜索集群以及分别为每一个数据搜索集群配套部署了一个订阅消息服务器,使得在每一个数据搜索集群上均可完成对数据的更新,且支持通过匹配的订阅消息服务器将对数据的更新同步至跨地区的其他数据搜索集群,所以相较于仅能在主集群进行数据更新的方式,大大降低了更新操作的RTT。
此外,由于每一个数据搜索集群上存储的数据保持实时一致,每一个数据搜索集群均可提供完整的搜索服务,即便一个或几个数据搜索集群发生服务异常,依然可以保证搜索服务可用,因此大大提升了***的容灾性能。
此外,本发明实施例数据同步的实现无需第三方的支持,使得搜索服务的稳定性不受限于第三方。
另外,通过部署了请求分发服务器,使得数据搜索请求可以被分配到邻近的数据搜索集群进行处理,实现了请求的本地化响应,大大降低了请求在网络链路中的传输耗时,使得响应请求的RTT大大降低,保证了不同地区的请求均能够在较短的时间内得到响应。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据同步方法,其特征在于,应用于数据搜索***,所述数据搜索***包括请求分发服务器、至少两个数据搜索集群以及与所述至少两个数据搜索集群数量匹配的订阅消息服务器,所述方法包括:
当第一数据搜索集群发生数据更新操作时,所述第一数据搜索集群生成针对所述数据更新操作的数据更新消息;
所述第一数据搜索集群将所述数据更新消息发布至匹配的第一订阅消息服务器;
所述第一订阅消息服务器将所述数据更新消息推送至第二数据搜索集群,以使所述第二数据搜索集群根据所述数据更新消息进行同步数据更新;
其中,所述第一数据搜索集群为所述至少两个数据搜索集群中的任一数据搜索集群,所述第二数据搜索集群为所述至少两个数据搜索集群中除了所述第一数据搜索集群之外的其他数据搜索集群。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一订阅消息服务器接收所述第二数据搜索集群发送的消息订阅请求,所述消息订阅请求中至少包括所述第二数据搜索集群的标识信息;
所述第一订阅消息服务器根据所述第二数据搜索集群的标识信息,对进行消息订阅的所述第二数据搜索集群进行记录;
所述第一订阅消息服务器将所述数据更新消息推送至第二数据搜索集群,包括:
所述第一订阅消息服务器根据所述第二数据搜索集群的标识信息,将所述数据更新消息推送至所述第二数据搜索集群。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述请求分发服务器在接收到请求终端发送的数据搜索请求后,获取所述至少两个数据搜索集群中每一个数据搜索集群的网络状态;
所述请求分发服务器根据所述每一个数据搜索集群的网络状态,在所述至少两个数据搜索集群中确定处理所述数据搜索请求的目标数据搜索集群;
所述请求分发服务器将所述数据搜索请求转发至目标数据搜索集群;
所述目标数据搜索集群在接收到所述数据搜索请求后,对所述数据搜索请求进行处理,并将得到的处理结果发送给所述请求分发服务器;
所述请求分发服务器将所述处理结果转发至所述请求终端。
4.根据权利要求3所述的方法,其特征在于,所述请求分发服务器根据所述每一个数据搜索集群的网络状态,在所述至少两个数据搜索集群中确定处理所述数据搜索请求的目标数据搜索集群,包括:
所述请求分发服务器在所述至少两个数据搜索集群中确定往返时延最小的数据搜索集群;
所述请求分发服务器将所述往返时延最小的数据搜索集群确定为所述目标数据搜索集群。
5.根据权利要求3所述的方法,其特征在于,所述请求分发服务器根据所述每一个数据搜索集群的网络状态,在所述至少两个数据搜索集群中确定处理所述数据搜索请求的目标数据搜索集群,包括:
所述请求分发服务器在所述至少两个数据搜索集群中确定往返时延最小的数据搜索集群;
所述请求分发服务器判断所述往返时延最小的数据搜索集群是否存在服务异常;
若所述往返时延最小的数据搜索集群出现服务异常,则所述请求分发服务器再根据第三数据搜索集群的网络状态确定所述目标数据搜索集群;
其中,所述第三数据搜索集群为所述至少两个数据搜索集群中除了所述往返时延最小的数据搜索集群之外的其他数据搜索集群。
6.一种数据搜索***,其特征在于,所述数据搜索***包括请求分发服务器、至少两个数据搜索集群以及与所述至少两个数据搜索集群数量匹配的订阅消息服务器;
第一数据搜索集群,用于当发生数据更新操作时,生成针对所述数据更新操作的数据更新消息;
所述第一数据搜索集群,还用于将所述数据更新消息发布至匹配的第一订阅消息服务器;
所述第一订阅消息服务器,用于将所述数据更新消息推送至第二数据搜索集群;
所述第二数据搜索集群,用于根据所述数据更新消息进行同步数据更新;
其中,所述第一数据搜索集群为所述至少两个数据搜索集群中的任一数据搜索集群,所述第二数据搜索集群为所述至少两个数据搜索集群中除了所述第一数据搜索集群之外的其他数据搜索集群。
7.根据权利要求6所述的***,其特征在于,所述第一订阅消息服务器,还用于接收所述第二数据搜索集群发送的消息订阅请求,所述消息订阅请求中至少包括所述第二数据搜索集群的标识信息;
所述第一订阅消息服务器,还用于根据所述第二数据搜索集群的标识信息,对进行消息订阅的所述第二数据搜索集群进行记录;
所述第一订阅消息服务器,用于根据所述第二数据搜索集群的标识信息,将所述数据更新消息推送至所述第二数据搜索集群。
8.根据权利要求6所述的***,其特征在于,所述请求分发服务器,用于在接收到请求终端发送的数据搜索请求后,获取所述至少两个数据搜索集群中每一个数据搜索集群的网络状态;
所述请求分发服务器,用于根据所述每一个数据搜索集群的网络状态,在所述至少两个数据搜索集群中确定处理所述数据搜索请求的目标数据搜索集群,并将所述数据搜索请求转发至目标数据搜索集群;
所述目标数据搜索集群,用于在接收到所述数据搜索请求后,对所述数据搜索请求进行处理,并将得到的处理结果发送给所述请求分发服务器;
所述请求分发服务器,还用于将所述处理结果转发至所述请求终端。
9.根据权利要求8所述的***,其特征在于,所述请求分发服务器,用于在所述至少两个数据搜索集群中确定往返时延最小的数据搜索集群,将所述往返时延最小的数据搜索集群确定为所述目标数据搜索集群。
10.根据权利要求8所述的***,其特征在于,所述请求分发服务器,用于在所述至少两个数据搜索集群中确定往返时延最小的数据搜索集群;判断所述往返时延最小的数据搜索集群是否存在服务异常;若所述往返时延最小的数据搜索集群出现服务异常,则再根据第三数据搜索集群的网络状态确定所述目标数据搜索集群;
其中,所述第三数据搜索集群为所述至少两个数据搜索集群中除了所述往返时延最小的数据搜索集群之外的其他数据搜索集群。
CN201710568992.1A 2017-07-13 2017-07-13 数据同步方法及数据搜索*** Pending CN107370809A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710568992.1A CN107370809A (zh) 2017-07-13 2017-07-13 数据同步方法及数据搜索***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710568992.1A CN107370809A (zh) 2017-07-13 2017-07-13 数据同步方法及数据搜索***

Publications (1)

Publication Number Publication Date
CN107370809A true CN107370809A (zh) 2017-11-21

Family

ID=60308119

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710568992.1A Pending CN107370809A (zh) 2017-07-13 2017-07-13 数据同步方法及数据搜索***

Country Status (1)

Country Link
CN (1) CN107370809A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109831473A (zh) * 2017-11-23 2019-05-31 菜鸟智能物流控股有限公司 物流服务提供方法及设备
CN110278109A (zh) * 2019-05-21 2019-09-24 阿里巴巴集团控股有限公司 一种容灾方法及***
CN110532102A (zh) * 2019-09-02 2019-12-03 中国工商银行股份有限公司 应用功能的实现方法、装置、电子设备和可读存储介质
CN110609845A (zh) * 2018-06-15 2019-12-24 网宿科技股份有限公司 大数据冗余灾备方法、大数据服务***及查询方法
CN111314416A (zh) * 2019-12-30 2020-06-19 广州市百果园网络科技有限公司 数据同步方法、装置、***、设备和存储介质
CN113709250A (zh) * 2021-08-31 2021-11-26 中国电子科技集团公司第二十八研究所 一种基于订阅发送模式的跨域用户数据同步方法
CN115766303A (zh) * 2022-10-14 2023-03-07 中信科移动通信技术股份有限公司 宽带集群***组信息同步方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462483A (zh) * 2014-12-18 2015-03-25 北京奇虎科技有限公司 数据同步方法、装置及***
CN106375362A (zh) * 2015-07-24 2017-02-01 广州市百果园信息技术有限公司 分布式服务器的缓存同步方法及***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462483A (zh) * 2014-12-18 2015-03-25 北京奇虎科技有限公司 数据同步方法、装置及***
CN106375362A (zh) * 2015-07-24 2017-02-01 广州市百果园信息技术有限公司 分布式服务器的缓存同步方法及***

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109831473A (zh) * 2017-11-23 2019-05-31 菜鸟智能物流控股有限公司 物流服务提供方法及设备
CN110609845A (zh) * 2018-06-15 2019-12-24 网宿科技股份有限公司 大数据冗余灾备方法、大数据服务***及查询方法
CN110278109A (zh) * 2019-05-21 2019-09-24 阿里巴巴集团控股有限公司 一种容灾方法及***
CN110278109B (zh) * 2019-05-21 2022-02-01 创新先进技术有限公司 一种容灾方法及***
CN110532102A (zh) * 2019-09-02 2019-12-03 中国工商银行股份有限公司 应用功能的实现方法、装置、电子设备和可读存储介质
CN111314416A (zh) * 2019-12-30 2020-06-19 广州市百果园网络科技有限公司 数据同步方法、装置、***、设备和存储介质
CN111314416B (zh) * 2019-12-30 2022-12-09 广州市百果园网络科技有限公司 数据同步方法、装置、***、设备和存储介质
CN113709250A (zh) * 2021-08-31 2021-11-26 中国电子科技集团公司第二十八研究所 一种基于订阅发送模式的跨域用户数据同步方法
CN113709250B (zh) * 2021-08-31 2023-09-15 中国电子科技集团公司第二十八研究所 一种基于订阅发送模式的跨域用户数据同步方法
CN115766303A (zh) * 2022-10-14 2023-03-07 中信科移动通信技术股份有限公司 宽带集群***组信息同步方法及装置

Similar Documents

Publication Publication Date Title
CN107370809A (zh) 数据同步方法及数据搜索***
CN106031130B (zh) 具有边缘代理的内容传送网络架构
CN107801086B (zh) 多缓存服务器的调度方法和***
CN100588172C (zh) 一种实现网络预订存储的***和方法
CN101535965B (zh) 用于提高存储管理***的可伸缩性和可移植性的技术
Ramanathan et al. Finding good peers in peer-to-peer networks
CN111405019B (zh) 数据处理方法、装置、计算机设备和存储介质
CN106202416B (zh) 列表数据写方法和装置、列表数据读取方法和装置
CN102882985A (zh) 基于云存储的文件共享方法
CN102365634A (zh) 用于管理分布式资产和元数据的***
CN104391930A (zh) 分布式文件存储装置和方法
CN104011701A (zh) 内容传送网络
US20030101267A1 (en) Peer-to-peer caching network
JP2004192170A (ja) アクセス中継装置
CN107888666A (zh) 一种跨地域数据存储***以及数据同步方法和装置
CN112035420B (zh) 数据共享方法、共享设备和***
KR101545626B1 (ko) Dds-db 연동 시스템
CN110784498B (zh) 一种个性化数据容灾方法及装置
WO2009042609A2 (en) Exchange of syncronization data and metadata
CN106959820A (zh) 一种数据提取方法和***
US10025859B2 (en) Method and system for second-degree friend query
CN110290196A (zh) 一种内容分发方法及装置
EP2025133B1 (en) Repository synchronization in a ranked repository cluster
US20060149826A1 (en) Index server support to file sharing applications
CN115706741A (zh) 一种切片文件的回源方法以及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20171121