灰度发布的策略

1.随机百分比灰度(概率灰度)

按流量比例切,比如 5% → 20% → 100%

实现简单,通常在 网关 / LB / 服务框架​ 层做

缺点:同一个用户可能一会儿新、一会儿旧(除非做 sticky)

适合:无强用户一致性要求的场景,或初期快速验证

2.用户维度灰度(用户ID取模 / 白名单)

用户白名单:明确指定某些用户 / 租ants / 内部账号先灰

用户取模/哈希:hash(userId) % 100 < rate,稳定命中

可结合:用户标签(等级、地域、设备、客户端版本等)

适合:业务语义强、需要"同一用户行为一致"的场景

3.请求属性灰度(规则灰度)

基于单次请求的属性,而不是用户长期归属,比如:

Header / Cookie(可携带灰度标gray)

IP、UA、地域、渠道、API 版本

特定测试账号、内部员工标识

适合:前端灰度、开放平台、ToB 租户灰度

4.全链路灰度

核心是:灰度标(gray flag / traffic tag)在调用链中透传,保证:

入口命中灰度 → 后续所有服务都走灰度版本

未命中 → 都走稳定版本

常见做法:

网关/入口挂灰度标(header / context)

RPC / HTTP / MQ 调用都传递该标

每个服务根据标做版本路由(或走统一路由逻辑)

适合:微服务架构、多系统串联、不能"半新半旧"的业务

相关推荐
神仙别闹1 小时前
基于QT(C++)实现线性表的建立、插入、删除、查找等基本操作
java·c++·qt
Kiyra2 小时前
从上传到可问答:Interview Agent 的知识库 RAG 链路
java·人工智能·后端·spring·职场和发展
拙野2 小时前
工作中Mybatis动态SQL的使用
java·sql·mybatis
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题】【Java基础篇】第39题:说说反射的用途及实现原理,Java获取反射(Class)的三种方法
java·开发语言·后端·python·面试
PeterLi2 小时前
踩坑实录:JRebel 启动报 Mapper 重复 ID 异常,IDEA 普通启动却正常?
java·后端
小碗羊肉2 小时前
【JavaWeb | 第五篇】JDBC
java·开发语言·数据库
江南十四行2 小时前
Python上下文管理器与with语句——资源管理的艺术
java·jvm·数据库
书源丶2 小时前
四十五、函数式接口与 Lambda 表达式
java·开发语言
直奔標竿2 小时前
MySQL与Redis数据一致性实战方案(避坑指南)
java·数据库·spring boot·redis·mysql·spring·缓存