[发明专利]异地多活的分布式消息发送、处理、消费方法及装置有效
申请号: | 201711349628.2 | 申请日: | 2017-12-15 |
公开(公告)号: | CN108322358B | 公开(公告)日: | 2020-09-01 |
发明(设计)人: | 冯浩 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | H04L12/26 | 分类号: | H04L12/26;H04L12/24;H04L29/08 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 异地 分布式 消息 发送 处理 消费 方法 装置 | ||
1.一种异地多活的分布式消息发送方法,其特征在于,包括:
生产端监测服务端的至少两个业务集群是否可用;
如果所述生产端监测到所述至少两个业务集群均可用,则将所述生产端发布的消息分别发送给所述至少两个业务集群;
所述生产端从所述至少两个业务集群中选择一个业务集群作为主业务集群;
所述生产端将所述主业务集群的主业务集群信息更新到可用的其余业务集群、中心zookeeper以及健康检查中心HCC中,以使消费端在监测到所述主业务集群不可用时,从所述中心zookeeper获取新的业务集群信息;其中,所述健康检查中心HCC用于监测每个业务集群是否可用。
2.根据权利要求1所述的方法,其特征在于,所述生产端从所述至少两个业务集群中选择一个业务集群作为主业务集群,包括:
所述生产端从服务端的中心zookeeper中获取分布式锁;
所述生产端通过所述分布式锁从所述至少两个业务集群中选择一个业务集群作为主业务集群。
3.一种异地多活的分布式消息处理方法,其特征在于,包括:
服务端接收生产端发送的主业务集群信息;
所述服务端存储所述主业务集群信息;
所述服务端接收消费端发送的连接请求;
所述服务端根据所述连接请求确定所述消费端的主业务集群信息;
所述服务端将所述主业务集群信息发送给所述消费端,以便于所述消费端连接到所述主业务集群信息对应的所述主业务集群进行消费;
所述服务端的健康检查中心HCC监测所述主业务集群是否可用,当所述主业务集群不可用时,则从所述主业务集群指定的zookeeper中删除所述主业务集群的信息,以使所述消费端从所述中心zookeeper获取新的业务集群信息。
4.根据权利要求3所述的方法,其特征在于,还包括:
所述服务端计算每个消费端在对应业务集群上消费的消费起点偏移值;
所述服务端将所述消费起点偏移值同步到其余每个业务集群分别指定的zookeeper及健康检查中心HCC中。
5.根据权利要求4所述的方法,其特征在于,所述服务端按照下述公式计算每个消费端在对应业务集群上消费的消费起点偏移值:
offset A=offset B-Lag-调整因子,offset A≤0
其中,所述offsetA为业务集群A上一个主题topic消息的消费起点偏移值;
所述offsetB为业务集群B上所述topic目前的消费偏移值;
所述Lag为业务集群B上所述topic消息消费的滞后值;
所述调整因子为调整常量。
6.一种异地多活的分布式消息消费方法,其特征在于,包括:
消费端从服务端的中心zookeeper获取当前主业务集群信息;
所述消费端根据所述主业务集群信息连接对应的主业务集群进行消费;所述主业务集群是由生产端预先为所述消费端选定的;
所述消费端监测所述主业务集群是否可用;
如果所述消费端监测到所述主业务集群不可用,则从所述中心zookeeper获取新的业务集群信息;
所述消费端从健康检查中心HCC获取消费的消费起点偏移值;
所述消费端按照所述消费起点偏移值重新设置消费进度的起点;
所述消费端连接到新的业务集群信息对应新的业务集群,按照设置的所述消费起点偏移值开始消费。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711349628.2/1.html,转载请声明来源钻瓜专利网。