CN111400065A - 一种分离全局zookeeper的pulsar消息异地多活方法及*** - Google Patents

一种分离全局zookeeper的pulsar消息异地多活方法及*** Download PDF

Info

Publication number
CN111400065A
CN111400065A CN202010175685.9A CN202010175685A CN111400065A CN 111400065 A CN111400065 A CN 111400065A CN 202010175685 A CN202010175685 A CN 202010175685A CN 111400065 A CN111400065 A CN 111400065A
Authority
CN
China
Prior art keywords
zookeeper
cluster
global
pulsar
clusters
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.)
Granted
Application number
CN202010175685.9A
Other languages
English (en)
Other versions
CN111400065B (zh
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.)
Bairong Yunchuang Technology Co ltd
Original Assignee
Bairong Yunchuang 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 Bairong Yunchuang Technology Co ltd filed Critical Bairong Yunchuang Technology Co ltd
Priority to CN202010175685.9A priority Critical patent/CN111400065B/zh
Publication of CN111400065A publication Critical patent/CN111400065A/zh
Application granted granted Critical
Publication of CN111400065B publication Critical patent/CN111400065B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种分离全局zookeeper的pulsar消息异地多活方法和***,包括N个分离全局zookeeper的pulsar集群,其中每一分离全局zookeeper的pulsar集群都包括:至少一个本地zookeeper子集群,至少一个全局zookeeper子集群;其中N个分离的全局zookeeper集群的所有全局zookeeper子集群都相互连接;其中每一分离全局zookeeper的pulsar集群都分别创建相同名称的主题topic,以使所述每一个pulsar集群中的broker可以与其他pulsar集群的broker进行通信。

Description

一种分离全局zookeeper的pulsar消息异地多活方法及***
技术领域
本发明实施例涉及数据处理技术领域,尤其是一种消息队列的异地多活技术,特别涉及一种分离全局zookeeper的pulsar消息异地多活方法及***。
背景技术
消息队列的异地多活是防灾备份领域非常重要的一项技术,为了实现业务在灾难性故障的情况不受影响,就必须实现有效的消息队列的异地多活。现有的消息队列的异地多活技术,主要是基于MirrorMarker的kafka跨集群同步技术。
Kafka是一个由linkedin开源的,高性能的分布式流平台,主要用于发布和订阅流数据、以容错的方式持久化流数据、处理流数据。对于每个topic,kafka都会维护一个分区日志,每个分区都是有序的,不变的消息序列,这些消息被附加到结构化的提交日志中。每个分区中的消息都有一个称为offset唯一的Id,用于唯一的标识分区中的每条消息。Kafka集群使用可配置的保留期限持久地保留已发布的消息,例如,如果将保留策略设置为两天,则在发布记录后的两天内,该记录可供使用,之后将被丢弃以释放空间。Kafka的性能相对于数据大小实际上是恒定的,因此长时间存储数据不是问题。
在Kafka集群中,producer负责往提交日志追加记录,broker负责各个topic的各个partition之间的副本复制,consumer负责从特定的offset处开始读取记录并转换成消息,通过移动offset来实现顺序消费的功能。
在Kafka集群中,每个分区都有一个充当“领导者”的服务器和零个或多个充当“跟随者”的服务器。领导者处理对分区的所有读写请求,而跟随者则被动地复制领导者。如果领导者失败,则跟随者之一将自动成为新领导者。每个服务器充当其某些分区的领导者,而充当其他分区的跟随者,因此群集中的负载得到了很好的平衡。
MirrorMarker是Kafka官方提供的集群间复制工具,通过消费源cluster到目标cluster的方式来实现在另一个集群的镜像功能。可以同时启动多个mirror程序来增加复制的吞吐和提高容错的能力。MirrorMarker技术的底层实现原理是订阅一个kafka集群的topic消息,并发布到另一个kafka集群的topic中。进行复制的两个topic相互独立,除了需要相同的topic名称之外,其他的配置可以完全不同,包括partition和replicator等。由于MirrorMarker技术是基于topic级别的,通常需要指定whitelist,即白名单,可以是简单的topic名称,也可以是使用正则表达式的一组topic。同时由于目标kafka集群中不一定存在其中的某些topic,可以设置auto.create.topics.enable=true来实现在目标kafka集群自动创建topic的功能,特别是在使用正则表达式进行复制的场景。
MirrorMarker的不足之处在于:MirrorMarker技术只是提供了基于配置的生产者消费者工具,能实现消息在集群间传递,此方式存在诸多的缺陷,主要包括以下几个方面:
单点故障:mirrormarker自身是一个单进程,一旦进程由于资源受限或者网络原因无法进行消息传递,消息将出现阻塞甚至中断同步。即使可以部署多进程,但是多个进程间的负载均衡和维护也是非常的困难,成本非常的高。
单向复制:mirrormarker只能从source cluster复制到target cluster,单向复制数据只适合主备场景,在双活场景无法适用。
双配置:mirrormarker需要同时配置source cluster的consumer和targetcluster的producer,双配置维护和变更成本也比较高。
Topic级别:无整体集群级别的同步策略,只能通过正则表达式来实现,新增topic往往难以确定是否会进行同步。
延迟大:mirrormarker采用consumer方式消费source cluster,消息序列化到日志文件之后才开始进行消费,再通过网络传输到target cluster上被序列化到日志文件之后被最终消费,延迟往往很大且不可控。
发明内容
针对现有技术中的消息队列异地多活技术存在的缺陷,本发明实施例提出了一种分离全局zookeeper的pulsar消息异地多活方法及***。
为了解决上述问题,本发明实施例提出了一种分离全局zookeeper的pulsar消息异地多活***,包括N个分离全局zookeeper的pulsar集群,其中所述每一分离全局zookeeper的pulsar集群都包括:至少一个本地zookeeper子集群,至少一个全局zookeeper子集群;
其中所述N个分离的全局zookeeper集群的所有全局zookeeper子集群都相互连接;
其中所述每一分离全局zookeeper的pulsar集群都分别创建相同名称的主题topic,以使所述每一个pulsar集群中的broker可以与其他pulsar集群的broker进行通信;
在一些实施例中,还包括控制端,所述控制端连接所述每一分离的全局zookeeper集群;其中所述控制端用于执行以下的至少一种操作:
Pulsar集群机器维护;
Pulsar端口号健康检测;
Pulsar多集群tenent、namespace统一创建、更新、删除功能;
Pulsar多集群topic统一查询、创建、删除功能;
Pulsar多集群consumer、subscription统一删除功能;
Pulsar多集群load report统一查询功能。
在一些实施例中,当网络不可用的情况下,所述N个分离全局zookeeper的pulsar集群分别针对其各自的topic进行数据传输;在网络可用后,将N个分离全局zookeeper的pulsar集群各自的topic消息通过geo-replication同步到其他的pulsar集群。
在一些实施例中,其中所述全局zookeeper子集群是进行异地备份geo-replication的元数据存储***。
在一些实施例中,本地zookeeper子集群采用2181端口,且所述全局zookeeper子集群采用2184端口;其中所述每一分离的全局zookeeper集群中过的本地zookeeper子集群的节点数为不小于3的奇数,所述全局zookeeper子集群包括不少于5个节点。
同时,本发明实施例还提出了一种利用如前任一项所述的分离全局zookeeper的pulsar消息异地多活***的数据处理方法,包括:
对每一个分离的全局zookeeper集群分别进行初始化,即针对每一个分离的全局zookeeper集群都执行initialize-cluster-metadata,总共N次;
对每一个分离的全局zookeeper集群中分别执行clusters create,以在该集群中建立全局zookeeper子集群;
对每一于分离的全局zookeeper集群,分别创建相同过的规则tenent以及命名namespace;总共N次;包括:
创建tenent:bin/pulsar-admin tenants create CDC-c Cluster1,Cluster2,...,ClusterN
创建namespace:bin/pulsar-admin namespaces create CDC/ns-c Cluster1,Cluster2,...,ClusterN
针对每一个分离的全局zookeeper集群,分别创建相同的topic。
本发明的上述技术方案的有益效果如下:上述技术方案提出了一种分离全局zookeeper的pulsar集群实现消息异地多活方法及***,能够在拥有全局zookeeper集群的特性之外,还能够避免了全局zookeeper存在的消息丢失的风险。
附图说明
图1为相关技术中的在pulsar的架构图;
图2为相关技术中的全局zookeeper的pulsar异地多活技术;
图3为本发明实施例的分离全局zookeeper的pulsar异地多活技术。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
以下首先对本申请中涉及的各种名词进行解释:
Record:记录,用来描述一个事实或者状态的信息载体的基本单元。
Log:日志,用来记录数据或者数据变更的记录。
Message:消息,用于在机器之间进行数据传递的基本单元。
Stream:流,将一条或者多条消息以时间维度组织在一起的消息组合。
Publish:发布,将消息发送出去的或者存储起来的过程。
Subscribe:订阅,将消息从消息存储***顺序接收到的过程。
Topic:主题,消息以主题的形式进行逻辑和物理的隔离,使消息处理更简单。
Producer:生产者,将消息发布到特定的一个主题或者一组主题的应用程序。
Consumer:消费者,将一个主题或多个特定的主题按顺序接收用于处理的应用程序。
Zookeeper:一个分布式的,分布式应用程序协调一致性的服务。
Partition:分区,将topic划分成不同的存储和处理单元,提高消息吞吐和性能,一个topic可以由一个或多个partition组成。
Replicator:副本,对topic或者partition进行冗余的存储单元,增加数据的冗余度,也可以提高消费者的性能,一个partition也可以由一个或多个replicator组成。
Leader:领导者,副本通过复制的技术进行同步,用于与生产者和消费者进行交互的副本,称为leader,一个分片通常只有一个leader。
Follower:跟随者,不与生产者和消费者直接交互的,且只用于提高冗余度的副本,在leader发生故障或者从集群中失联时,会从follower中选择一个副本成为leader,这个过程称为leader选举。
Broker:消息的服务端,通常指topic的服务端,可持久化消息的服务程序。
Cluster:集群,由一个或者多个broker组成的服务端,一个集群可以支持多个broker,也可以支持多个topic,并将多个topic的分区和副本在不同的broker中进行负载均衡和复制同步。
相关技术中有一种全局zookeeper的pulsar异地多活技术。Pulsar是一项yohoo开源技术,用于服务器到服务器进行消息传递的多租户高性能解决方案。与kakfa类似,pulsar也提供producer和consumer的支持,也支持消息的持久化。与kafka不同的地方,pulsar能提供更低的端到端的延迟,同时支持跨集群的无缝的地理复制特性。Pulsar集群中,对消息提供了额外的offload功能,可以将消息保留到第三方存储引擎中,包括hdfs、aws等。更重要的是,pulsar提供了比kafka更可靠的序列化保证,pulsar支持消息的flush机制,消息持久到存储硬件而非文件***。
相关技术中有一种全局zookeeper的pulsar异地多活技术的原理如图1所示的,在pulsar的架构图中有一个称为Global replicators的内部组件和一个称为Global ZK的外部组件,一起组成了一个pulsar cluster。基于全局zookeeper技术,pulsar可以无缝的实现geo replication。Pulsar的broker与kafka不同,是一个无状态的代理。broker中的Global replicators专门用于进行geo replication,当producer向broker发布消息时,broker同时从Global zookeeper中获取需要进行replicator的多个目标cluster,将消息写入到其他目标cluster,完成消息的跨集群同步。
图1中,每当P1,P2和P3生产者将消息分别发布到Cluster-A,Cluster-B和Cluster-C群集上的T1主题时,这些消息就会立即在群集之间复制。复制后,C1和C2使用者可以使用其各自群集中的消息。如果没有地理复制,则C1和C2使用者将无法使用P3产生者发布的消息。
与kafka的MirrorMarker对比,不难发现geo replication存在很多的优势,比如:
Broker自有特性:kafka broker只负责本地集群的消息,而pulsar的broker自带geo replication,集群已提供集群间复制功能。
无单点故障:由于broker实例是分布式的,geo replication依附于broker也是分布式的,不存在单点故障缺陷,一旦某个broker实例宕机也会发生故障转移,保证高可用。
相互复制:kafka的MirrorMarker只能单一的从source cluster复制到targetcluster,而pulsar的geo replication可以支持两个甚至更多的集群间的相互复制,无缝支持异地多活。
全局zookeeper配置:kafka的MirrorMarker需要配置两个集群,而pulsar的georeplication的多个cluster之间只需要一个额外的全局zookeeper配置即可,更易于统一维护。
Cluster级别:与kafka的MirrorMarker基于topic复制不同,pulsar的georeplicattion基于cluster进行同步。
延迟小:pulsar内部的Global replicators在producer发布消息之后,立即就可以复用内存队列中的高速缓存数据,将消息发布到其他的cluster,无需进行磁盘文件的读取,延迟更小。
虽然geo replication技术可以解决很多kafkaMirrorMarker存在的缺陷,但是geo replication基于全局zookeeper的实现,自身也会存在诸多的不足之处,主要包括如下几点:
部署成本:全局zookeeper需要跨所有的cluster进行部署,扩容和变更成本较高。
状态维护:全局zookeeper集群,网络往往是不可靠的,跨数据中心的网络更不可靠,一旦发生网络故障,集群的状态非常的复杂,处理也非常困难。
低性能:全局zookeeper集群,由于写数据都需要跨数据中心保证集群一致性,会产生很大的性能波动,延迟也可能会产生指数级的放大,对于pulsar集群本身的性能损耗也是极大的,带来很大的风险。
网络中断:一旦发生网络中断,部分集群不但无法进行geo replication,甚至由于本地的全局bookeeper故障导致puslar集群故障,无法进行消息的发布订阅。
难以恢复:一旦全局zookeeper发生了网络故障,产生了网络分区,发生故障的本地pulsar集群和全局zookeeper集群将很难恢复到可使用的状态,如果发生全局的网络分局,所有集群都将不可用,直到网络分区问题消失。
由于相关技术中的全局zookeeper自身存在的问题,导致pulsar的异地多活技术在生产环境中存在很大的不稳定性和风险性,本发明针对性的对全局zookeeper进行分离,以避免全局zookeeper存在的各种各样的不可靠风险点,使pulsar的异地多活技术更加的稳定,降低风险,使其在生产环境中可以正式投入应用。
Pulsar提供的geo replication基于全局zookeeper进行设计,为了克服全局zookeeper带来的诸多问题,本发明采用分离全局zookeeper的技术方案来实现全局zookeeper的功能,为了更好的理解分离全局zookeeper的技术方案,本发明仅仅从跨两个pulsar集群的geo replication场景进行技术原理分析和技术方案阐述。
图2为举例说明的全局zookeeper部署的架构图;如图2所示的全局zookeeper部署架构中包括两个集群:Cluster A和Cluster B;当然本发明实施例中并未限定集群的具体数字。如图2所示的,Cluster A中的全局zookeeper有三个node实例,分别是zk1.A:2184、zk2.A:2184、zk3.A:2184。Cluster B中全局zookeeper有两个node实例,分别是zk1.B:2184、zk3.B:2184。
从图2所示的例子中可以看出,两个集群Cluster A和Cluster B的全局zookeeper是不均衡的,其中全局zookeeper需要至少(n+1)/2=3个node实例才能提供服务。其中Cluster A在于Cluster B进行网络分区之后的表现也会不同,Cluster A仍然存活3个node实例可以进行正常的消息处理,而Cluster B由于只有zk1.B:2184、zk3.B:2184两个node实例无法满足提供服务的条件,Cluster B中的broker无法连接global zookeeper。
在pulsar中,每一个topic需要对应一个broker进行托管,topic对应的broker成为该topic的ownership,pulsar的client(包括producer和consumer)与pulsar集群进行交互时必须满足以下条件:
指定topic,默认全局topic;
通过topic的lookup接口定位到该topic的ownership,ownership关系存储在全局zookeeper中;
client与该topic的ownership进行消息的send和receive操作。
Global zookeeper是进行geo replication的元数据存储***,一旦globalzookeeper无法连接,Client的api将无法从broker实例查找到topic的ownership。也就导致无法进行客户端消息的发布和订阅,集群处于不可用状态。
在如图2所示的全局zookeeper的部署架构图中,Pulsar的zookeeper部署架构中,2181端口表示本地zookeeper集群,2184端口表示全局集群,所有的zookeeper集群必须保证节点数为奇数且至少三个节点,全局zookeeper集群至少5个节点。Pulsar集群禁用自动创建topic,生产环境往往不会开启,避免造成元数据污染。
其中每一个topic只需要在其中一个集群(例如图2中的ClusterA和Cluster B)中被创建一次,且该topic存储于该集群中的全局zookeeper子集群中。具体的topic可以由一个集群中的任意一个本地zookeeper子集群创建。当Producer发布消息之后,消息先写到存储在本地任一个子集群内的topic中,然后将该消息的全局副本global replicator通过全局zookeeper子集群同步到其他集群中;当两个集群之间的网络连接可用,则创建topic的集群将全局部分除非异地集群与创建topic的集群可连接之后,由global replicator通过全局zookeeper子集群同步到第二集群;且该第二集群通过副本任务replicator task创建对应的topic,则该第二集群可以在其所包括的子集群直接发送send和接收receiver该topic。
如图3所示的为本发明实施例中举例说明的分离全局zookeeper的集群技术的架构图。
在本发明实施例中,分离的全局zookeeper的Pulsar消息队列异地多活***的架构中,2181端口表示本地zookeeper子集群,2184端口表示全局zookeeper子集群,所有的本地zookeeper子集群必须保证节点数为奇数且至少三个节点,全局zookeeper子集群必须保证不少于5个节点。Pulsar集群禁用自动创建topic,生产环境往往不会开启,避免造成元数据污染。如图3所示的,本发明实施例示例性的列出了一种分离全局zookeeper的Pulsar消息队列异地多活架构,其示例性的包括了两个集群:Cluster A和Cluster B。如图3所示的,每个集群中都包括至少一个具有2181端口的本地子集群:本地zookeeper子集群,还包括至少一个具有2184端口的全局zookeeper子集群:global zookeeper子集群。其中,所述每一集群Cluster A和Cluster B中
如图3所示的,ClusterA和Cluster B之间已经不具有全局zookeeper功能。如图3所示的,每个集群包括至少一个基于2181端口的本地zookeeper子集群,还至少包括一个基于2184端口的全局zookeeper子集群;其中每一集群(例如图3中的ClusterA和Cluster B)的全局zookeeper子集群之间相互导通以进行数据传输;还包括一个控制端admin,该控制端admin的接口与图2所示的全局zookeeper的部署架构相似的是,该控制端admin可以与每一集群(例如图3中的ClusterA和Cluster B)进行通讯。
本发明实施例的分离的全局zookeeper集群,各自通过其本地zookeeper子集群建立相同的topic,且该topic的元数据被传输到该集群中的全局zookeeper子集群中。这样即使在集群之间的网络不可用时,每个集群都可以对该topic各自进行发送send和接收receive。
在本发明实施例中,部署基于分离全局zookeeper的pulsar异地多活技术方案时,假设有N个集群需要进行异地多活(N≥2),则本发明实施例的方法包括:
在本地部署分离的全局zookeeper集群,其中每一个分离的全局zookeeper集群包括N个子集群,其中每一个分离的全局zookeeper集群都包括至少一个基于2181端口的本地zookeeper子集群以及至少一个基于2184端口的全局zookeeper子集群;且所述N个分离的全局zookeeper集群的全局zookeeper子集群之间可以独立访问;
1.对每一个分离的全局zookeeper集群分别进行初始化,即针对每一个分离的全局zookeeper集群都执行initialize-cluster-metadata,总共N次;initialize-cluster-metadata为集群初始化步骤,其为已有技术,在此不再赘述;
2.对每一个分离的全局zookeeper集群中分别执行clusters create,以在该集群中建立基于2184端口的全局zookeeper子集群,其中每一个分离的全局zookeeper集群都执行N+1次,总计N*(N+1)次;
3.对每一于分离的全局zookeeper集群,分别创建相同的tenent以及命名namespace;总共N次;包括:
创建tenent:bin/pulsar-admin tenants create CDC-c Cluster1,Cluster2,...,ClusterN
创建namespace:bin/pulsar-admin namespaces create CDC/ns-c Cluster1,Cluster2,...,ClusterN
4.针对每一个分离的全局zookeeper集群,分别建立相同的topic;每个分离的全局zookeeper集群都执行一次,总计N次。
可以发现其中存在多个集群的部署和topic创建成本比全局zookeeper的技术方案操作次数要多N到N*N步。为了消除这种复杂性成本,本发明专门针对性的开发了一套基于分离的zookeeper进行集群部署维护的pulsar多活管理***,该***基于pulsar的java客户端进行开发实现。
自定义的Pulsar多活管理***功能包括如下几点:
Pulsar集群机器维护
Pulsar端口号健康检测
Pulsar多集群tenent、namespace统一创建、更新、删除功能
Pulsar多集群topic统一查询、创建、删除功能
Pulsar多集群consumer、subscription统一删除功能
Pulsar多集群load report统一查询功能
部署完成之后,在N个集群中任何一个集群send消息,都会通过globalreplicators点对点地复制到其他的cluster中,即便发生网络不可达故障,所有的N个集群都能正常运行,等到网络可达时消息会自动同步到其他需要同步的目标集群中,保证所有集群的持续稳定运行。
该技术方案能够在拥有全局zookeeper集群的特性之外,还避免了全局zookeeper存在的各种不稳定性,以及这些不稳定性所产生的生产事故,甚至是消息的丢失风险。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和调整,这些改进和调整也应视为本发明的保护范围。

Claims (6)

1.一种分离全局zookeeper的pulsar消息异地多活***,其特征在于,包括N个分离的全局zookeeper集群其中所述每一分离的全局zookeeper集群都包括:至少一个本地zookeeper子集群,至少一个全局zookeeper子集群;
其中所述N个分离的全局zookeeper集群的所有全局zookeeper子集群都相互连接;
其中所述每一分离的全局zookeeper集群都分别建立相同的用于承载消息的主体topic,以使所述每一个pulsar集群中的broker可以与其他pulsar集群的broker进行通信。
2.根据权利要求1所述的分离全局zookeeper的pulsar消息异地多活***,其特征在于,还包括控制端,所述控制端连接所述每一分离的全局zookeeper集群;其中所述控制端用于执行以下的至少一种操作:
Pulsar集群机器维护;
Pulsar端口号健康检测;
Pulsar多集群tenent、namespace统一创建、更新、删除功能;
Pulsar多集群topic统一查询、创建、删除功能;
Pulsar多集群consumer、subscription统一删除功能;
Pulsar多集群load report统一查询功能。
3.根据权利要求1所述的分离全局zookeeper的pulsar消息异地多活***,其特征在于,当网络不可用的情况下,所述N个分离全局zookeeper的pulsar集群分别针对其各自的topic进行数据传输;在网络可用后,将N个分离全局zookeeper的pulsar集群各自的topic消息通过geo-replication同步到其他的pulsar集群。
4.根据权利要求1所述的分离全局zookeeper的pulsar消息异地多活***,其特征在于,其中所述全局zookeeper子集群是进行异地备份geo-replication的元数据存储***。
5.根据权利要求1所述的分离全局zookeeper的pulsar消息异地多活***,其特征在于,本地zookeeper子集群采用2181端口,且所述全局zookeeper子集群采用2184端口;其中所述每一分离的全局zookeeper集群中过的本地zookeeper子集群的节点数为不小于3的奇数,所述全局zookeeper子集群包括不少于5个节点。
6.一种权利要求1-5任一项所述的分离全局zookeeper的pulsar消息异地多活***的数据处理方法,其特征在于,包括:
对每一个分离的全局zookeeper集群分别进行初始化,即针对每一个分离的全局zookeeper集群都执行initialize-cluster-metadata,总共N次;
对每一个分离的全局zookeeper集群中分别执行clusters create,以在该集群中建立全局zookeeper子集群;
对每一于分离的全局zookeeper集群,分别创建相同过的规则tenent以及命名namespace;总共N次;包括:
创建tenent:bin/pulsar-admin tenants create CDC -c Cluster1,Cluster2,...,ClusterN
创建namespace:bin/pulsar-admin namespaces create CDC/ns -c Cluster1,Cluster2,...,ClusterN
针对每一个分离的全局zookeeper集群,分别建立相同的topic。
CN202010175685.9A 2020-03-13 2020-03-13 一种分离全局zookeeper的pulsar消息异地多活方法及*** Active CN111400065B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010175685.9A CN111400065B (zh) 2020-03-13 2020-03-13 一种分离全局zookeeper的pulsar消息异地多活方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010175685.9A CN111400065B (zh) 2020-03-13 2020-03-13 一种分离全局zookeeper的pulsar消息异地多活方法及***

Publications (2)

Publication Number Publication Date
CN111400065A true CN111400065A (zh) 2020-07-10
CN111400065B CN111400065B (zh) 2023-04-14

Family

ID=71432413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010175685.9A Active CN111400065B (zh) 2020-03-13 2020-03-13 一种分离全局zookeeper的pulsar消息异地多活方法及***

Country Status (1)

Country Link
CN (1) CN111400065B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231399A (zh) * 2020-09-25 2021-01-15 中国建设银行股份有限公司 一种应用于图数据库的方法和装置
CN113688111A (zh) * 2021-10-25 2021-11-23 深圳市明源云科技有限公司 跨区域消息复制方法、***、电子设备及可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104092767A (zh) * 2014-07-21 2014-10-08 北京邮电大学 一种增加消息队列模型的发布/订阅***及其工作方法
US20170049061A1 (en) * 2015-08-17 2017-02-23 Rainboxx, Inc. Apparatus and method for controlling irrigation process by sending encoded acoustical messages along irrigation conduit
CN106953901A (zh) * 2017-03-10 2017-07-14 重庆邮电大学 一种提高消息传递性能的集群通信***及其方法
CN108280080A (zh) * 2017-01-06 2018-07-13 阿里巴巴集团控股有限公司 一种数据同步方法、装置以及电子设备
CN109684099A (zh) * 2018-11-23 2019-04-26 新华三大数据技术有限公司 消息处理方法及装置
CN110019240A (zh) * 2017-12-29 2019-07-16 ***通信集团北京有限公司 一种业务数据交互方法、装置及***
CN110515748A (zh) * 2019-08-28 2019-11-29 腾讯科技(深圳)有限公司 一种消息处理的方法及相关装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104092767A (zh) * 2014-07-21 2014-10-08 北京邮电大学 一种增加消息队列模型的发布/订阅***及其工作方法
US20170049061A1 (en) * 2015-08-17 2017-02-23 Rainboxx, Inc. Apparatus and method for controlling irrigation process by sending encoded acoustical messages along irrigation conduit
CN108280080A (zh) * 2017-01-06 2018-07-13 阿里巴巴集团控股有限公司 一种数据同步方法、装置以及电子设备
CN106953901A (zh) * 2017-03-10 2017-07-14 重庆邮电大学 一种提高消息传递性能的集群通信***及其方法
CN110019240A (zh) * 2017-12-29 2019-07-16 ***通信集团北京有限公司 一种业务数据交互方法、装置及***
CN109684099A (zh) * 2018-11-23 2019-04-26 新华三大数据技术有限公司 消息处理方法及装置
CN110515748A (zh) * 2019-08-28 2019-11-29 腾讯科技(深圳)有限公司 一种消息处理的方法及相关装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JOSSELYN A. WEBB ET AL.: "An Open Source Approach to Automating Surveillance and Compliance of Automatic Test Systems", 《2019 IEEE AUTOTESTCON》 *
方钊: "基于Android的X射线脉冲星脉冲轮廓数据远程采集***设计", 《中国优秀硕士学位论文全文数据库 (工程科技Ⅱ辑)》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231399A (zh) * 2020-09-25 2021-01-15 中国建设银行股份有限公司 一种应用于图数据库的方法和装置
CN113688111A (zh) * 2021-10-25 2021-11-23 深圳市明源云科技有限公司 跨区域消息复制方法、***、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN111400065B (zh) 2023-04-14

Similar Documents

Publication Publication Date Title
CN109729129B (zh) 存储集群***的配置修改方法、存储集群及计算机***
US9811541B2 (en) System and method for supporting lazy deserialization of session information in a server cluster
CN113641511B (zh) 一种消息通信方法和装置
US9047331B2 (en) Scalable row-store with consensus-based replication
CN1893370B (zh) 用于服务器群集恢复和维护的方法和***
US7206836B2 (en) System and method for reforming a distributed data system cluster after temporary node failures or restarts
US9311328B2 (en) Reference volume for initial synchronization of a replicated volume group
US20170024411A1 (en) Distributed file system using consensus nodes
US9201747B2 (en) Real time database system
US20070174660A1 (en) System and method for enabling site failover in an application server environment
US20100023564A1 (en) Synchronous replication for fault tolerance
US10127077B2 (en) Event distribution pattern for use with a distributed data grid
US10423643B2 (en) System and method for supporting resettable acknowledgements for synchronizing data in a distributed data grid
CN111078121A (zh) 一种分布式存储***数据迁移方法、***、及相关组件
US9081839B2 (en) Push replication for use with a distributed data grid
CN111400065B (zh) 一种分离全局zookeeper的pulsar消息异地多活方法及***
CN110661841B (zh) 微服务架构中分布式服务发现集群的数据一致性方法
US11341009B1 (en) Directing placement of data in cloud storage nodes
US7743381B1 (en) Checkpoint service
US20090144333A1 (en) System for maintaining a database
Yang et al. Multi-Active Multi-Datacenter Distributed Database Architecture Design based-on Secondary Development Zookeeper
WO2015196692A1 (zh) 一种云计算***以及云计算***的处理方法和装置
CN112231399A (zh) 一种应用于图数据库的方法和装置
CN111309552A (zh) 业务日志采集***和方法
CN109218386B (zh) 一种管理Hadoop命名空间的高可用方法

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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Zhang Shaofeng

Inventor after: Chen Hewei

Inventor after: Gao Weiguo

Inventor before: Zhang Shaofeng

Inventor before: Gao Weiguo

GR01 Patent grant
GR01 Patent grant