本发明专利技术提供一种分离全局zookeeper的pulsar消息异地多活方法和系统,包括N个分离全局zookeeper的pulsar集群,其中每一分离全局zookeeper的pulsar集群都包括:至少一个本地zookeeper子集群,至少一个全局zookeeper子集群;其中N个分离的全局zookeeper集群的所有全局zookeeper子集群都相互连接;其中每一分离全局zookeeper的pulsar集群都分别创建相同名称的主题topic,以使所述每一个pulsar集群中的broker可以与其他pulsar集群的broker进行通信。
【技术实现步骤摘要】
一种分离全局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只能从sourcecluster复制到targetcluster,单向复制数据只适合主备场景,在双活场景无法适用。双配置:mirrormarker需要同时配置sourcecluster的consumer和targetcluster的producer,双配置维护和变更成本也比较高。Topic级别:无整体集群级别的同步策略,只能通过正则表达式来实现,新增topic往往难以确定是否会进行同步。延迟大:mirrormarker采用consumer方式消费sourcecluster,消息序列化到日志文件之后才开始进行消费,再通过网络传输到targetcluster上被序列化到日志文件之后被最终消费,延迟往往很大且不可控。
技术实现思路
针对现有技术中的消息队列异地多活技术存在的缺陷,本专利技术实施例提出了一种分离全局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多集群loadreport统一查询功能。在一些实施例中,当网络不可用的情况下,所述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集群中分别执行clusterscreate,以在该集群中建立全局zookeeper子集群;对每一于分离的全局zookeeper集群,分别创建相同过本文档来自技高网...
【技术保护点】
1.一种分离全局zookeeper的pulsar消息异地多活系统,其特征在于,包括N个分离的全局zookeeper集群其中所述每一分离的全局zookeeper集群都包括:至少一个本地zookeeper子集群,至少一个全局zookeeper子集群;/n其中所述N个分离的全局zookeeper集群的所有全局zookeeper子集群都相互连接;/n其中所述每一分离的全局zookeeper集群都分别建立相同的用于承载消息的主体topic,以使所述每一个pulsar集群中的broker可以与其他pulsar集群的broker进行通信。/n
【技术特征摘要】
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多集群loadreport统一查询功能。
3.根据权利要求1所述的分离全局zookeeper的pulsar消息异地多活系统,其特征在于,当网络不可用的情况下,所述N个分离全局zookeeper的pulsar集群分别针对其各自的topic进行数据传输;在网络可用后,将N个分离全局zookeeper的pulsar集群各自的topic消息通过geo-replication同步到其他的pulsar集群。
4.根据权利...
【专利技术属性】
技术研发人员:张韶峰,高维国,
申请(专利权)人:百融云创科技股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。