基于流言协议的广域网中消息的发布、订阅方法和系统技术方案

技术编号:8132497 阅读:213 留言:1更新日期:2012-12-27 05:37
本发明专利技术的实施例提供了一种基于流言协议的广域网中消息的发布、订阅方法和系统,可提高广域网内消息的发布效率及系统的稳定性。所述发布方法包括步骤:接收客户端发布到主题中的消息,并将消息同步到其他订阅该主题的通讯站;在订阅所述主题的通讯站中对主题中消息进行同步。本发明专利技术的实施例通过将消息发布到主题,客户端通过订阅主题来获得消息,消息在订阅主题的通讯站之间同步,这时,当其中一个通讯站出现故障时,客户端可通过其它通讯站获得其订阅主题的消息,从而不会妨碍对该消息的获得,消除了单点故障问题,并提高了系统的整体写入效率,及提高了可扩展性。

【技术实现步骤摘要】

本专利技术涉及消息发布方法和系统,尤其涉及ー种基于流言协议的广域网中消息的发布、订阅方法和系统。所述流言协议是一种以类似于人群中传播闲话的方式对网络数据进行同步的协议。
技术介绍
发布-订阅技术是消息传递的ー种模式。一般来说,消息传递最基本的模式是,发送者将消息直接传递给接收者。而发布-订阅技术则不是将消息直接传递给接收者,而是将消息分为若干类别(这些类别也称为主题),接收者可以通过订阅自己感兴趣的类别来获得这个类别对应的消息。将消息分类的ー种典型方式是,发送者将消息发布到不同的主題,接收者则订阅感兴趣的主题来获得消息。在互联网上应用发布-订阅技术的ー个典型场景是,一个客户端按先后顺序把消息发布到ー个IDC (Internet Data Center,互联网数据中心)的主题,而其他的客户端需要从其他的IDC按顺序读取这个主题的消息。这里要解决的问题是,如何把客户端发布到最初IDC的消息,按顺序复制到其他IDC。现有复制技术主要是基于日志复制的主从复制模型(常用于数据库管理系统中数据的复制)。其中,一个节点(一台服务器)作为主节点,其他若干节点作为从节点(即,这种复制模型是由ー个主节点和多个从节点组成),主节点接收和处理所有的写请求,而从节点则接收和处理所有的读请求,写到主节点的数据以日志的形式被复制到各个从节点。这种模型的优点是简单易行,成熟稳定。 然而,由于基于这种模型的系统只包含一个主节点,而从节点又无法处理写请求,因此存在以下问题一旦主节点发生故障,就会出现单点故障问题,可靠性不高;当这种主从复制要跨越多个IDC (即主节点在ー个IDC,从节点在其他IDC)吋,由于只能有ー个主节点,因此系统的整体写入效率会非常低,可扩展性较差。
技术实现思路
本专利技术的实施例提供了一种基于流言协议的广域网中消息的发布、订阅方法和系统,可提高广域网内消息的发布效率及系统的稳定性。本专利技术的实施例提供了一种基于流言协议的广域网中消息的发布方法,所述方法包括步骤接收客户端发布到主题中的消息,并将消息同步到其他订阅该主题的通讯站;在订阅所述主题的通讯站中对主题中消息进行同步,在同步过程中,满足如下条件对于发布到本地通讯站的第一消息和从远端通讯站同步到本地通讯站的第二消息,第一消息和第二消息的排列顺序与消息上传到通讯站的时间顺序一致。所述同步包括摘要同步步骤,所述摘要同步步骤包括本地通讯站随机读取任一远端通讯站关于主题的同步表;比较本地通讯站与该远端通讯站的同步表中每个通讯站相对应的可获得消息实体数量,如果本地通讯站同步表中通讯站的可获得消息实体数量比远端通讯站同步表中同一通讯站的可获得消息实体数量小,使用远端通讯站同步表中该通讯站的可获得消息实体数量更新本地通讯站同步表中该通讯站的可获得消息实体数量;如果本地通讯站同步表中通讯站的可获得消息实体数量比远端通讯站同步表中同一通讯站的可获得消息实体数量大,将本地通讯站同步表中该通讯站的可获得消息实体数量添加到新建的空摘要中;比较本地通讯站与该远端通讯站的同步表中每个通讯站相对应的消息实体最大数量,如果本地通讯站同步表中通讯站的消息实体最大数量比远端通讯站同步表中同一通讯站的消息实体最大数量小,使用远端通讯站同步表中该通讯站的消息实体最大数量更新本地通讯站同步表中该通讯站的消息实体最大数量;如果本地通讯站同步表中通讯站的消息实体最大数量比远端通讯站同步表中同一通讯站的消息实体最大数量大,将本地通讯站同步表中该通讯站的消息实体最大数量添加到新建的空摘要中;将空摘要发送至所述远端通讯站。所述同步还包括数据复制步骤,所述数据复制步骤包括 比较本地通讯站的同步表中每个通讯站相对应的可获得消息实体数量,如果本地通讯站的可获得消息实体数量小于任ー远端通讯站的可获得消息实体数量,则从该远端通讯站获取自身没有的消息。本专利技术还提供了一种基于流言协议的广域网中消息的发布系统,包括主体部分和客户端,其中所述主体部分包括通讯站,该通讯站包括主节点,所述主节点用于接收客户端发布到主题中的消息,并将消息同步到其他订阅该主题的通讯站;对主题中消息进行同步,在同步过程中,满足如下条件对于发布到本地通讯站的第一消息和从远端通讯站同步到本地通讯站的第二消息,第一消息和第二消息的排列顺序与消息上传到通讯站的时间顺序一致;所述客户端,用于将消息发布到本地通讯站的主题中。所述系统还包括管理部分,其用于存储和维护元数据,所述元数据包括主节点与通讯站的成员关系、主题与通讯站的订阅关系、主节点的地址信息,井向主体部分提供所述元数据。所述管理部分,还用于向客户端提供所述元数据;或者,所述系统还包括缓存部分,所述缓存部分用于从管理部分获得元数据,并存储元数据,向对应的客户端提供元数据。所述通讯站还包括从节点,所述系统还包括复制选举器,其用于当主节点发生故障时,将ー个从节点选举为新的主节点,并在主节点和从节点之间复制消息。所述通讯站还包括从节点,所述系统还包括选举器和复制器,所述选举器用于当主节点发生故障时选举一个从节点选举为新的主节点,所述复制器用于在主节点和从节点之间复制消息。本专利技术还提供了一种基于流言协议的广域网中消息的订阅方法,其基于上述的发布方法,所述订阅方法包括步骤对预定主题进行订阅;从通讯站中获得订阅的主题,并从该主题中获得消息。本专利技术还提供了一种基于流言协议的广域网中消息的订阅系统,其基于上述的发布系统,包括主体部分和客户端,其中所述主体部分包括通讯站,该通讯站包括从节点,从节点用于向客户端发布订阅的主題;所述客户端用于订阅该主题,并通过该主题从主体部分的通讯站的从节点中获得关于所述主题的消息。本专利技术的实施例通过将消息发布到主題,客户端通过订阅主题来获得消息,消息在订阅主题的通讯站之间同步,这时,当其中一个通讯站出现故障时,客户端可通过其它通讯站获得其订阅主题的消息,从而不会妨碍对该消息的获得,消除了单点故障问题,并提高了系统的整体写入效率,及提高了可扩展性。附图说明图I示出了本专利技术实施例的广域网消息的发布方法;图2示出了本专利技术实施例的广域网消息的发布系统;图3示出了本专利技术另一实施例的广域网消息的发布系统。具体实施例方式为了便于本领域一般技术人员理解和实现本专利技术,现结合附图描绘本专利技术的实施例。在描述系统架构以及组成前,首先阐明如下几个概念主题(Topic):消息的聚合体,在一个主题内消息按照入队先后排列;应用(Application):姆ー个主题都是属于ー个应用,也就是在创建任何主题前都要先创建ー个应用,一个应用下可以创建多个主题;通讯站(Station):—个通讯站包含ー组服务节点,一般地,不同的通讯站位于不同的IDC ;本地通讯站客户端程序将消息发布到的通讯站。实施例一如图I所示,本实施例提供了一种基于流言协议的广域网消息的发布方法,所述方法包括步骤步骤11、接收客户端发布到主题中的消息;步骤12、将消息同步到其他订阅该主题的通讯站;步骤13、在订阅所述主题的通讯站中对主题中消息进行同步,在同步过程中,满足如下条件对于发布到本地通讯站的第一消息和从远端通讯站同步到本地通讯站的第二消息,第一消息和第二消息的排列顺序与消息上传到通讯站的时间顺序一致。首先描述下面要用到的符号定义。定义消息为ML,其中P表示消息本文档来自技高网
...

【技术保护点】
一种基于流言协议的广域网中消息的发布方法,其特征在于,所述方法包括步骤:接收客户端发布到主题中的消息,并将消息同步到其他订阅该主题的通讯站;在订阅所述主题的通讯站中对主题中消息进行同步,在同步过程中,满足如下条件:对于发布到本地通讯站的第一消息和从远端通讯站同步到本地通讯站的第二消息,第一消息和第二消息的排列顺序与消息上传到通讯站的时间顺序一致。

【技术特征摘要】
1.一种基于流言协议的广域网中消息的发布方法,其特征在于,所述方法包括步骤 接收客户端发布到主题中的消息,并将消息同步到其他订阅该主题的通讯站; 在订阅所述主题的通讯站中对主题中消息进行同步,在同步过程中,满足如下条件 对于发布到本地通讯站的第一消息和从远端通讯站同步到本地通讯站的第二消息,第一消息和第二消息的排列顺序与消息上传到通讯站的时间顺序一致。2.根据权利要求I所述的方法,其特征在于,所述同步包括摘要同步步骤,所述摘要同步步骤包括 本地通讯站随机读取任一远端通讯站关于主题的同步表; 比较本地通讯站与该远端通讯站的同步表中每个通讯站相对应的可获得消息实体数量,如果本地通讯站同步表中通讯站的可获得消息实体数量比远端通讯站同步表中同一通讯站的可获得消息实体数量小,使用远端通讯站同步表中该通讯站的可获得消息实体数量更新本地通讯站同步表中该通讯站的可获得消息实体数量;如果本地通讯站同步表中通讯站的可获得消息实体数量比远端通讯站同步表中同一通讯站的可获得消息实体数量大,将本地通讯站同步表中该通讯站的可获得消息实体数量添加到新建的空摘要中; 比较本地通讯站与该远端通讯站的同步表中每个通讯站相对应的消息实体最大数量,如果本地通讯站同步表中通讯站的消息实体最大数量比远端通讯站同步表中同一通讯站的消息实体最大数量小,使用远端通讯站同步表中该通讯站的消息实体最大数量更新本地通讯站同步表中该通讯站的消息实体最大数量;如果本地通讯站同步表中通讯站的消息实体最大数量比远端通讯站同步表中同一通讯站的消息实体最大数量大,将本地通讯站同步表中该通讯站的消息实体最大数量添加到新建的空摘要中; 将空摘要发送至所述远端通讯站。3.根据权利要求2所述的方法,其特征在于,所述同步还包括数据复制步骤,所述数据复制步骤包括 比较本地通讯站的同步表中每个通讯站相对应的可获得消息实体数量,如果本地通讯站的可获得消息实体数量小于任ー远端通讯站的可获得消息实体数量,则从该远端通讯站获取自身没有的消息。4.一种基于流...

【专利技术属性】
技术研发人员:王聃曹恺朱鑫
申请(专利权)人:新浪网技术中国有限公司
类型:发明
国别省市:

网友询问留言 已有1条评论
  • 来自[未知地区] 2014年12月08日 11:38
    广为流传而无根据或来源的说法有散布没有根据的话之意
    0
1