灰度发布的策略

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 调用都传递该标

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

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

相关推荐
SL_staff6 分钟前
3天上线OKR系统:一名HR与1名工程师如何用JVS完成全栈交付
java·低代码·开源
wzdark1 小时前
基于链表的内存池设计与内存复用机制4
java·数据结构·链表
cnkeysky2 小时前
idea 中的 maven 项目重新加载子模块
java·idea
Escalating_xu2 小时前
【System V 信号量】从 P/V 原语到 Builder 封装:写出可控、可清理的进程互斥组件
java·linux·开发语言·jvm
今天AI了吗2 小时前
什么是 AI Agent?它与直接调用大模型 API 有何区别
java·网络·人工智能·架构·java-ee
隐退山林2 小时前
JavaEE进阶:SpringAOP
java·java-ee
Wang's Blog2 小时前
Java框架快速入门: Spring Security+OAuth2之方法级安全注解
java·安全·spring
JavacKaka2 小时前
LiteFlow规则引擎实战博客-2026-09-09
java
学渣超2 小时前
记一次复杂业务功能重构——从过程式长链路,到模板方法构建体系
java·架构·代码规范
Bs_MoneyMagnet3 小时前
基于springboot+vue的旅游景区点评系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring·旅游