15|案例:消息中间件如何实现蓝绿?
丁威
你好,我是丁威。
我们这节课结合一个真实的生产环境案例,来看看消息中间件如何实现蓝绿发布。我们会提到消息中间件的设计背景和隔离机制,在此基础上探究基于消息属性和消息主题分别如何实现蓝绿发布。
设计背景
消息中间件在分布式架构体系中的应用非常广泛,要想实现蓝绿发布,只在微服务调用层面实现还远远不够。
在进行具体的方案设计之前,我们还是先来看一下我们这个项目中消息中间件的部署情况:
这里有四个应用,简单解释一下。
应用 1 支持蓝绿发布,并且处理完业务后,需要向消息中间件中的 topic_A 主题发送消息。
应用 2 不支持蓝绿发布,但同样需要在处理完业务后,向消息中间件中的 topic_A 发送消息。
应用 3 不支持蓝绿发布,需要处理完业务逻辑后,向消息中间件中的主题 topic-B 发送消息。
应用 4 中创建了两个消费组,其中 consumer_group_a 订阅 topicA,支持接入蓝绿;而 consumer_group_b 没有接入蓝绿。
这就是在设计蓝绿发布方案之前,我们这个项目的现状。
消息中间件隔离机制
那么怎么基于这一条件来设计和实施蓝绿方案呢?这又涉及到一个隔离机制的问题。因为无论是蓝绿发布还是全链路压测,需要着重解决的一个问题就是消息的隔离性。蓝绿发布的本质就是对消息进行分类,蓝颜色的消息只能被蓝颜色的消费者消费,绿颜色的消息只能被绿颜色的消费者消费。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文通过一个真实案例探讨了消息中间件在分布式架构中的蓝绿发布实现方法。首先介绍了消息中间件的部署情况和四个应用的功能和需求,随后讨论了消息中间件的隔离机制,包括基于消息主题和基于消息属性的隔离机制。文章给出了基于这两种隔离机制的蓝绿发布设计方案,包括示例代码。通过本文,读者可以了解消息中间件蓝绿发布的设计原理和实现方法,对于在实际项目中应用消息中间件进行蓝绿发布具有一定的指导意义。强调了基于主题的隔离机制在消息发送时就将消息分别发送到不同的主题中,实现了有针对性的消费,效率更高。文章内容丰富,对于需要了解消息中间件蓝绿发布的读者具有一定的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《中间件核心技术与实战》,新⼈⾸单¥59
《中间件核心技术与实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- 好运来我在公司实践时,消费者的蓝绿发布状态有下面三个值。所有: 表示该消费组未接入蓝绿。蓝:表示该消费组接入蓝绿,并且消息属性中未带颜色的消息由蓝环境的消费者进行消费。绿:表示该消费组接入蓝绿,并且消息属性中未带颜色的消息由绿环境的消费者进行消费。 这段话是不是有误,读起来逻辑不通。
作者回复: 没有,你再结合这部分的图解,思考一个问题,没有颜色的消息,该由谁来消费呢?
2022-08-27归属地:上海 - a、1.可以,但是这么做会导致如果broker里有蓝绿消息的话,就会出现消息丢失, 2.基于主题的过滤机制,会导致broker里的主题数3倍增长,特别是如果用kafka的话,topic太多,会导致kafka性能下降2022-10-19归属地:广东12
收起评论