4.微服务灰度发布落地实践(消息队列增强)

前言

消息队列是一种用于在应用程序的不同组件或系统之间传递消息的通信机制。它通过将消息存储在一个队列中,确保消息能够可靠地从发送方传递到接收方,即使发送方和接收方不同时在线或处理能力不同。消息队列在现代分布式系统、微服务架构以及异步处理场景中扮演着至关重要的角色;所以在处理灰度发布的实现,避免不了对其改造。

问题分析

消息的灰度路由,不像应用服务之间可以简单的改写路由规则;网上看到很多关于消息灰度的方案,都不是很理想,大多涉及到需要配合修改业务代码;一但涉及到修改业务代码,风险及工作量都比较大,现实中如果已存在大量服务,改造推动难信不可想象,方案是否能落地得大打折扣;所以如果涉及到需要改业务代码的方案,不太能行得通,现在唯一到想到的是通过agent的方案,可以实现无需改动业务代码,并且接入升级较为方便。

消息队列特性分析

本文重点是关注消息队列可能作灰度路由特性的分析

kafka

kafka 有个消费者组这样的特性: 同一个topic某条消息,同一消费者的只有其中一个消费者能收到该消息;利用这一特性,可以把某一topic的消费者组分为:正常的消费者组和灰度消息者组;正常的消费者收到topic消息后,判断如果是正常的消息则接受,如果是携带灰度标签的消息则丢弃;同量灰度消费者收到topic消息后,如果正常消息去弃掉,如果是携带灰度标签的消息则接受。对生产端,如接收到的请求是灰度请求,则发送携带灰度标签的消息,否则发送不携带灰度标签的消息。

rocketmq

rocketmq 跟kafka有些类似,处理方式可以同步

rabbitmq

rabbitmq

相关推荐
Doris_20236 小时前
代码格式化 使用oxfmt
设计模式·架构·前端框架
Doris_20237 小时前
说一说ESLint+Prettier生效的原理
前端·设计模式·架构
用户1558319968147 小时前
企业云盘API集成实战:用Webhook+OpenAPI实现自动化文件工作流
云原生
ElevenS_it1887 小时前
连锁门店IT运维监控实战:200+门店网络设备+POS统一纳管+按区域分组告警路由完整配置(Zabbix Proxy架构)
运维·网络·架构·zabbix
ting94520008 小时前
深度解析 Google Stitch 3.0:文本驱动跨端 UI 生成技术原理、架构与工程实现
人工智能·ui·架构
2601_948810608 小时前
k8s-EFK
云原生·容器·kubernetes
X54先生(人文科技)8 小时前
关于“778之问”与“X54之答”的文明范式校验报告
人工智能·架构·开源·开源协议
jiayong239 小时前
RAG系列(三):实践案例与高级优化
ai·架构·rag·智能体
乐兮创想 小林9 小时前
金融投资官网的工程化设计:投资者关系信息架构、合规内容管理与系统对接
金融·架构·网站建设·企业官网·北京网站建设公司
a231212110 小时前
从零搭建Spring Ai多智能体后端应用
java·运维·微服务·多智能体·后端开发·spring ai