CN105468641B - 一种搜索云消息实时分发系统及方法 - Google Patents
一种搜索云消息实时分发系统及方法 Download PDFInfo
- Publication number
- CN105468641B CN105468641B CN201410456313.8A CN201410456313A CN105468641B CN 105468641 B CN105468641 B CN 105468641B CN 201410456313 A CN201410456313 A CN 201410456313A CN 105468641 B CN105468641 B CN 105468641B
- Authority
- CN
- China
- Prior art keywords
- message
- distributor
- updating
- instant data
- distribution manager
- 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.)
- Active
Links
Images
Abstract
本发明提供一种搜索云消息实时分发方法,包括:分发器接收消息通知端的即时数据更新消息,向分发管理器请求消息序列号;所述分发管理器生成消息序列号,并将所述消息序列号和即时数据更新消息备份到分发管理器备份服务器;所述分发管理器反馈消息序列号至分发器,所述分发器反馈确认接收信号至所述消息通知端;所述分发器发送所述消息序列号和即时数据更新消息至更新索引服务器;所述更新索引服务器将所述即时数据更新消息存储至内存字典后反馈确认信号至所述分发器;所述更新索引服务器根据所述即时数据更新消息即时根性索引。
Description
技术领域
本发明涉及通讯技术领域,特别涉及一种搜索云消息实时分发系统及方法。
背景技术
在电商等垂直搜索领域,商品的上下架、商品价格的调整、库存的变更等需要近乎实时地更新到搜索引擎的索引中以提供及时准确的搜索服务。在精准广告投放引擎中,广告的上下线、广告出价的调整、广告素材的变更等对消息的实时性、一致性需求更为强烈。基于消息机制的数据实时分发引擎已经成为垂直搜索及精准广告投放应用不可或缺的组件。而现有技术中数据之间的时序一致性和数据的完整性略有欠缺。
发明内容
本发明的目的在于提供一种搜索云消息实时分发系统及方法,以解决现有技术中数据之间的时序一致性和数据的完整性有欠缺的问题。
为解决上述技术问题,本发明提供一种搜索云消息实时分发方法,包括:
分发器接收消息通知端的即时数据更新消息,向分发管理器请求消息序列号;
所述分发管理器生成消息序列号,并将所述消息序列号和即时数据更新消息备份到分发管理器备份服务器;所述分发管理器反馈消息序列号至分发器,所述分发器反馈确认接收信号至所述消息通知端;
所述分发器发送所述消息序列号和即时数据更新消息至更新索引服务器;所述更新索引服务器将所述即时数据更新消息存储至内存字典后反馈确认信号至所述分发器;
所述更新索引服务器根据所述即时数据更新消息即时更新索引。
进一步的,在所述的搜索云消息实时分发方法中,
在所述分发管理器生成消息序列号步骤后还包括步骤:分发管理器将所述消息序列号和即时数据更新消息备份到分发管理器本地磁盘;
在所述分发器反馈确认接收信号至所述消息通知端步骤后还包括步骤:分发器反馈确认接收信号至所述分发管理器,所述分发管理器在所述分发管理器本地磁盘删除已备份的即时数据更新消息;
进一步的,在所述的搜索云消息实时分发方法中,在所述分发器发送所述消息序列号和即时数据更新消息至更新索引服务器步骤后还包括步骤:所述更新索引服务器备份所述消息序列号和即时数据更新消息至更新索引服务器本地磁盘。
进一步的,在所述的搜索云消息实时分发方法中,还包括步骤:分发器分别发送心跳消息至分发管理器和更新索引服务器;
所述分发管理器和更新索引服务器分别反馈心跳应答消息至分发器。
进一步的,在所述的搜索云消息实时分发方法中,所述即时数据更新消息包括:消息包的头部和消息包的消息体。
进一步的,在所述的搜索云消息实时分发方法中,所述消息包的头部包括:消息的字节数、消息的类型、消息的状态和消息来源的机器ID。
同时,本发明还提供一种搜索云消息实时分发系统,包括:分发器、分发管理器和更新索引服务器,其中,
所述分发器,用于接收消息通知端的即时数据更新消息,向所述分发管理器请求消息序列号;
所述分发管理器,用于生成消息序列号,并将所述消息序列号和即时数据更新消息备份到分发管理器备份服务器;所述分发管理器反馈消息序列号至分发器,所述分发器反馈确认接收信号至所述消息通知端;
所述分发器,还用于发送所述消息序列号和即时数据更新消息至所述更新索引服务器;
所述更新索引服务器,用于将所述即时数据更新消息存储至内存字典后反馈确认信号至所述分发器;
所述更新索引服务器,还用于根据所述即时数据更新消息即时更新索引。
进一步的,在所述的搜索云消息实时分发系统中,所述即时数据更新消息包括:消息包的头部和消息包的消息体。
进一步的,在所述的搜索云消息实时分发系统中,所述消息包的头部包括:消息的字节数、消息的类型、消息的状态和消息来源的机器ID。
本发明提供的搜索云消息实时分发系统及方法,具有以下有益效果:通过对每个即时数据更新消息进行编辑消息序列号,以保证消息的时序性和一致性。此外,分别在分发器、分发管理器、更新索引服务器进行本地备份机制,保证了消息的可用性。进一步的,采用心跳检测的缺失补偿机制,保证了消息的完整性和可用性。
附图说明
图1是本发明优选实施例的搜索云消息实时分发系统及方法示意图;
图2是本发明优选实施例的搜索云消息实时分发系统及方法的即时数据更新消息格式示意图。
具体实施方式
以下结合附图和具体实施例对本发明提出的搜索云消息实时分发系统及方法作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
请参考图1,本发明提供一种搜索云消息实时分发方法,包括以下步骤:
1、分发器(Dispather)100接收消息通知端的即时数据更新消息;
在本发明中所传输的即时数据更新消息都采用采用统一的消息数据包格式,如图2所示,消息包的头部是相同的,且包括消息的字节数、消息的类型、消息的状态和消息来源的机器ID;而消息包的消息体的具体格式将根据消息类型的不同而有所区别;
2、所述分发器100向分发管理器200(Dispather Admin)请求消息序列号;
3、所述分发管理器200生成消息序列号,并将所述消息序列号备份到分发管理器本地磁盘;
4、所述分发管理200将所述消息序列号备份到分发管理器备份服务器;
5、所述分发管理器200将所述即时数据更新消息备份到分发管理器本地磁盘;
6、所述分发管理器200将所述即时数据更新消息备份到分发管理器备份服务器;
7、所述分发管理器200反馈消息序列号至分发器100;
8、所述分发器100将所述消息序列号和即时数据更新消息备份到备份到分发管理器本地磁盘;
9、所述分发器100反馈确认接收信号至所述消息通知端;
10-11、所述分发器100反馈确认接收信号至所述分发管理器200;
12、所述分发管理器200在所述分发管理器本地磁盘删除已备份的即时数据更新消息;
13-14、所述分发器200发送所述消息序列号和即时数据更新消息至更新索引服务器300(ISUpdate);
15、所述更新索引服务器300将消息序列号备份至更新索引服务器本地磁盘;
16、所述更新索引服务器300将即时数据更新消息备份至更新索引服务器本地磁盘;
17、所述更新索引服务器300将所述即时数据更新消息存储至内存字典;
18、所述更新索引服务器300反馈确认信号至所述分发器100;
19、所述更新索引服务器300根据所述即时数据更新消息即时更新索引。
为了确保数据的完整性,提供在系统出错情况下的数据恢复能力,本发明对消息进行了备份。消息的备份是通过Dispatcher服务器本地备份来实现的,本地备份减少了网络通信的开销。目前的系统可以保证数据至少成功备份在某一台Dispatcher或者DispatchAdmin服务器上。另外Dispatcher有相关的数据冗余度的配置项,通过增加数据冗余度,以适当降低性能的代价,可以让不同的Dispatcher服务器都存有相同的数据备份,增加数据的可靠性。对于备份数据的存储,采取备份文件大小可配置化以及轮转写入的方式来使磁盘资源的开销相对可控。为了保证对每条消息备份的可靠性,对每条消息的更新都是至少在同步写入磁盘后再返回给客户端成功的应答,假如客户端在指定时间内没有接收到成功的应答,则需要重发这条消息。
此外,Dispatcher通过与ISUpdate以及Dispatch admin之间交换心跳消息来监控彼此的状态,并在实现上可以利用这些状态信息来减少网络通信开销,具体步骤如下:
a、分发器分别发送心跳消息至分发管理器;
b、所述分发管理器反馈心跳应答消息至分发器;
c、分发器分别发送心跳消息至更新索引服务器;
d、所述更新索引服务器反馈心跳应答消息至分发器;
进一步的,搜索引擎在构建新的全量索引的过程中,对新索引而言这段时间的实时更新的消息实际上是缺失的(实时消息是发往在线ISUpdate服务器来更新线上索引的)。所以在线上服务切换到新索引前必须保证此过程中所有缺失的消息已经被更新到新索引中。在Dispatcher服务器中备份的每一条消息都有一个时间戳(记录消息的发生时间),这为在ISUpdate服务器提供了一个通过时间戳向Dispatcher服务器请求基于时间窗口的全部消息的方案。具体来说,全量索引生成一个时间戳文件记录全量索引开始时间,这个时间戳文件同索引文件一同分发到线上索引服务器。ISUpdate服务器检测到这个时间戳文件则立即拿这个时间戳向Dispatcher服务器请求从时间戳开始到现在的所有发生的消息,然后删除时间戳文件。但这个消息回放的过程本身可能长达几分钟,这几分钟内新产生的消息会堆积在ISUpdate接收队列里,可能导致ISUpdate集群机器间的数据不一致问题。因此需要在堆积消息完全消费完成时(实际操作中会预留一个较长的时间buffer以确保集群所有机器全部处理完成),再统一调度集群所有机器切换到新索引。
相应的,本发明还提供一种搜索云消息实时分发系统,包括:分发器、分发管理器和更新索引服务器,其中,
所述分发器,用于接收消息通知端的即时数据更新消息,向所述分发管理器请求消息序列号;具体来说,所述即时数据更新消息包括:消息包的头部和消息包的消息体;所述消息包的头部包括:消息的字节数、消息的类型、消息的状态和消息来源的机器ID;
所述分发管理器,用于生成消息序列号,并将所述消息序列号和即时数据更新消息备份到分发管理器备份服务器;所述分发管理器反馈消息序列号至分发器,所述分发器反馈确认接收信号至所述消息通知端;
所述分发器,还用于发送所述消息序列号和即时数据更新消息至所述更新索引服务器;
所述更新索引服务器,用于将所述即时数据更新消息存储至内存字典后反馈确认信号至所述分发器;
所述更新索引服务器,还用于根据所述即时数据更新消息即时更新索引。
在本发明中,Dispatcher的初始化需要Dispatcher Admin和ISUpdate的信息,而Dispatcher Admin与ISUpdate的初始化不依赖于其他模块。Dispatcher与DispatcherAdmin,ISUpdate之间的通信总是由Dispatcher率先发起的,Dispatcher Admin与ISUpdate之间不允许存在通信行为。
上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
Claims (9)
1.一种搜索云消息实时分发方法,其特征在于,包括:
分发器接收消息通知端的即时数据更新消息,向分发管理器请求消息序列号;
所述分发管理器生成消息序列号,并将所述消息序列号和即时数据更新消息备份到分发管理器备份服务器;所述分发管理器反馈消息序列号至分发器,所述分发器反馈确认接收信号至所述消息通知端;
所述分发器发送所述消息序列号和即时数据更新消息至更新索引服务器;所述更新索引服务器将所述即时数据更新消息存储至内存字典后反馈确认信号至所述分发器;
所述更新索引服务器根据所述即时数据更新消息即时更新索引。
2.如权利要求1所述的搜索云消息实时分发方法,其特征在于,
在所述分发管理器生成消息序列号步骤后还包括步骤:分发管理器将所述消息序列号和即时数据更新消息备份到分发管理器本地磁盘;
在所述分发器反馈确认接收信号至所述消息通知端步骤后还包括步骤:分发器反馈确认接收信号至所述分发管理器,所述分发管理器在所述分发管理器本地磁盘删除已备份的即时数据更新消息。
3.如权利要求1所述的搜索云消息实时分发方法,其特征在于,在所述分发器发送所述消息序列号和即时数据更新消息至更新索引服务器步骤后还包括步骤:所述更新索引服务器备份所述消息序列号和即时数据更新消息至更新索引服务器本地磁盘。
4.如权利要求1所述的搜索云消息实时分发方法,其特征在于,还包括步骤:分发器分别发送心跳消息至分发管理器和更新索引服务器;
所述分发管理器和更新索引服务器分别反馈心跳应答消息至分发器。
5.如权利要求1所述的搜索云消息实时分发方法,其特征在于,所述即时数据更新消息包括:消息包的头部和消息包的消息体。
6.如权利要求5所述的搜索云消息实时分发方法,其特征在于,所述消息包的头部包括:消息的字节数、消息的类型、消息的状态和消息来源的机器ID。
7.一种搜索云消息实时分发系统,其特征在于,包括:分发器、分发管理器和更新索引服务器,其中,
所述分发器,用于接收消息通知端的即时数据更新消息,向所述分发管理器请求消息序列号;
所述分发管理器,用于生成消息序列号,并将所述消息序列号和即时数据更新消息备份到分发管理器备份服务器;所述分发管理器反馈消息序列号至分发器,所述分发器反馈确认接收信号至所述消息通知端;
所述分发器,还用于发送所述消息序列号和即时数据更新消息至所述更新索引服务器;
所述更新索引服务器,用于将所述即时数据更新消息存储至内存字典后反馈确认信号至所述分发器;
所述更新索引服务器,还用于根据所述即时数据更新消息即时更新索引。
8.如权利要求7所述的搜索云消息实时分发系统,其特征在于,所述即时数据更新消息包括:消息包的头部和消息包的消息体。
9.如权利要求8所述的搜索云消息实时分发系统,其特征在于,所述消息包的头部包括:消息的字节数、消息的类型、消息的状态和消息来源的机器ID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410456313.8A CN105468641B (zh) | 2014-09-09 | 2014-09-09 | 一种搜索云消息实时分发系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410456313.8A CN105468641B (zh) | 2014-09-09 | 2014-09-09 | 一种搜索云消息实时分发系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105468641A CN105468641A (zh) | 2016-04-06 |
CN105468641B true CN105468641B (zh) | 2020-08-18 |
Family
ID=55606346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410456313.8A Active CN105468641B (zh) | 2014-09-09 | 2014-09-09 | 一种搜索云消息实时分发系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105468641B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650741A (zh) * | 2009-08-27 | 2010-02-17 | 中国电信股份有限公司 | 一种分布式全文检索的索引实时更新的方法和系统 |
CN102880529A (zh) * | 2012-09-13 | 2013-01-16 | 新浪网技术(中国)有限公司 | 内存数据备份方法及内存数据备份系统 |
CN102902561A (zh) * | 2012-09-13 | 2013-01-30 | 新浪网技术(中国)有限公司 | 数据存储方法及数据存储系统 |
CN103516738A (zh) * | 2012-06-21 | 2014-01-15 | 中兴通讯股份有限公司 | 消息的分发方法、装置及系统 |
CN103580906A (zh) * | 2012-08-09 | 2014-02-12 | 腾讯科技(深圳)有限公司 | 一种数据备份的方法、系统及服务器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070299749A1 (en) * | 2006-06-22 | 2007-12-27 | Sybase 365, Inc. | System and Method for Commodity Consumption Monitoring and Management |
-
2014
- 2014-09-09 CN CN201410456313.8A patent/CN105468641B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650741A (zh) * | 2009-08-27 | 2010-02-17 | 中国电信股份有限公司 | 一种分布式全文检索的索引实时更新的方法和系统 |
CN103516738A (zh) * | 2012-06-21 | 2014-01-15 | 中兴通讯股份有限公司 | 消息的分发方法、装置及系统 |
CN103580906A (zh) * | 2012-08-09 | 2014-02-12 | 腾讯科技(深圳)有限公司 | 一种数据备份的方法、系统及服务器 |
CN102880529A (zh) * | 2012-09-13 | 2013-01-16 | 新浪网技术(中国)有限公司 | 内存数据备份方法及内存数据备份系统 |
CN102902561A (zh) * | 2012-09-13 | 2013-01-30 | 新浪网技术(中国)有限公司 | 数据存储方法及数据存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105468641A (zh) | 2016-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5776267B2 (ja) | 分散ファイルシステム | |
CN103580906A (zh) | 一种数据备份的方法、系统及服务器 | |
US8688780B2 (en) | Peer-to-peer exchange of data resources in a control system | |
CN102171995B (zh) | 服务器故障时的报文处理方法及路由器 | |
CN103095769B (zh) | 跨机房的数据同步方法以及系统 | |
CN109714409B (zh) | 一种消息的管理方法和系统 | |
CN102143194A (zh) | 数据同步的方法、系统、中间数据节点及终止数据节点 | |
US10592286B2 (en) | Highly available distributed queue using replicated messages | |
CN103595559A (zh) | 一种大数据的传输系统、传输方法及其业务系统 | |
CN110795503A (zh) | 分布式存储系统的多集群数据同步方法及相关装置 | |
CN110308983A (zh) | 资源负载均衡方法及系统、服务节点和客户端 | |
WO2013078689A1 (zh) | 一种云消息服务中实现消息传递的方法和装置 | |
CN103812849A (zh) | 一种本地缓存更新方法、系统、客户端及服务器 | |
EP3848809A1 (en) | Data disaster recovery method and site | |
CN101594256A (zh) | 容灾方法、装置和系统 | |
CN103024065A (zh) | 用于云存储系统的系统配置管理方法 | |
CN105338078A (zh) | 用于存储系统的数据存储方法和装置 | |
US9906483B2 (en) | Method and system for reliable distribution of messages | |
CN103152390A (zh) | 分布式存储系统的节点配置方法、装置、节点及系统 | |
US20150019620A1 (en) | High availability for communications based on remote procedure calls | |
JP4066617B2 (ja) | データの完全性を伴いデータネットワークに接続される記憶装置システム | |
CN105589887A (zh) | 分布式文件系统的数据处理方法及分布式文件系统 | |
US20060253624A1 (en) | System and method for mirroring data | |
CN105468641B (zh) | 一种搜索云消息实时分发系统及方法 | |
CN107168642B (zh) | 一种数据存储方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |