[发明专利]一种异地多活的分布式消息消费方法及装置有效
申请号: | 201711350825.6 | 申请日: | 2017-12-15 |
公开(公告)号: | CN108170527B | 公开(公告)日: | 2021-06-22 |
发明(设计)人: | 冯浩 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;H04L12/58;H04L29/08 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 异地 分布式 消息 消费 方法 装置 | ||
本发明实施例提供了一种异地多活的分布式消息的消费方法及装置,所述方法包括:监测服务端的至少两个业务集群是否可用;如果监测到所述至少两个业务集群均可用,则选择所述至少两个业务集群中的任一个业务集群作为主业务集群;连接选择的所述主业务集群进行消费。本发明实施例中,通过监测服务器端所有业务集群的可用性,并从可用的业务集群中选择一个主业务集群,然后与该主业务集群建立连接并开始消费。也就是说,本实施例中,由消费端从可用的业务集群中选择主业务集群,从而提高了业务集群的高可用性,而且在消费端切换到新的业务集群后,按照重新设置的消费进度开始消费,大幅度减少消息的重复消费。
技术领域
本发明涉及计算机技术领域,特别是涉及一种异地多活的分布式消息消费方法及装置。
背景技术
Kafka是一个分布式的、可分区的、可复制的分布式消息系统,Kafka以集群的方式运行,可以由一个或多个服务组成。分布式消息系统作为分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。Kafka集群是其中的典型代表。现有Kafka集群都是分开部署运维的,由于Kafka集群数量众多,Kafka集群之间是通过数据中心(DC,datacenter)来为消费者提供服务的,一旦某个数据中心出现了问题,会造成与该数据中心连接所有Kafka集群不能为消费者提供服务,消费者需要进行Kafka集群切换,以及在消费者切换到新的Kafka集群后,需要重新消费,会产生大量的重复消息,从而降低了消费者的满意度。
因此,如何实现跨数据中心的服务高可用以及在消费者切换集群过程中减少生成的重复消息是目前有待解决的技术问题。
发明内容
本发明实施例所要解决的技术问题是提供一种异地多活的分布式消息消费方法,以解决现有技术中不能实现跨数据中心的服务的高可用,导致消费者在切换集群过程造成大量重复消息,降低满意度的问题。
相应的,本发明实施例还提供了一种异地多活的分布式消息消费装置,用以保证上述方法的实现及应用。
为了解决上述问题,本发明是通过如下技术方案实现的:
第一方面提供一种异地多活的分布式消息的消费方法,所述方法包括:
消费端监测服务端中至少两个业务集群是否可用;
如果所述消费端监测到所述至少两个业务集群均可用,则选择所述至少两个业务集群中的一个业务集群作为主业务集群;
所述消费端连接选择的所述主业务集群进行消费。
可选的,所述选择所述至少两个业务集群中的任一业务集群作为主业务集群的方式为:
所述消费端选择至少两个业务集群中优先级高的一个业务集群作为消费的主业务集群。
可选的,所述方法还包括:
在开始消费后,所述消费端继续监测所述主业务集群是否可用;
在所述消费端监测到所述主业务集群不可用时,从所述至少两个业务集群中重新选择次优先级高的一个业务集群作为消费的主业务集群;
所述消费端连接重新选择的所述主业务集群进行消费。
可选的,所述方法还包括:
在所述消费端连接到重新选择的所述主业务集群进行消费前,计算消费端初始化的消费起点偏移值;
所述消费端根据所述消费起点偏移值重新设置所述消费端的消费进度;
所述消费端按照重新设置的消费进度连接到重新选择的所述主业务集群进行消费。
可选的,按照下述公式计算消费起点偏移值:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711350825.6/2.html,转载请声明来源钻瓜专利网。