消息多活组件在技术架构设计时,存在单集群和多集群两种模式。
单集群模式,多个机房内的应用均共享同一个消息队列集群,上游应用生产的消息,随机的被分配到下游 Consumer 应用进行异步消费。当某机房发生故障时,可以对故障机房内的 Consumer 进行故障隔离,避免故障机房内的 Consumer 继续消费消息。再配合上接入网关和微服务的流量切换能力,即可实现故障机房整体流量的切 0,实现分钟级容灾切换。
多集群模式,应用固定访问本机房对应的一个消息队列集群,多个集群之间通过消息同步组件实现消息数据的同步。一个机房内应用生产的消息,会异步同步到其他所有机房,但消息消费时会进行路由纠错,仅允许正确的机房进行消费,其他机房则识别为错误流量不消费。当某机房发生故障时,可以通过修改路由规则,将故障机房的流量切换到其他机房,从而让其他机房内的 Consumer 能够在消费路由计算时,识别为正确流量从而进行消费。另外多个消息队列集群的消息消费速率,堆积情况是不一样的,为了避免故障机房堆积未消费的消息已经被其他机房丢弃,因此修改路由规则生效后,还需要对流量切换的目的机房进行消费位点回溯。
以上内容摘自《应用多活技术白皮书》电子书,点击https://developer.aliyun.com/topic/download?id=8266 可下载完整版
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。