灰度发布,说白了就是新功能不一下子给所有人用,先给一小部分人试试水。
比如你改了个功能,怕出bug,那就先给10%的用户用新版,剩下90%还用老版。没问题再慢慢放开到50%、100%。
最简单的PHP实现
<?php
// 假设用户ID是 12345
$userId = 12345;
// 灰度比例 20% (0-100之间的数)
$grayPercent = 20;
// 用户ID取余100,看落在哪个区间
if ($userId % 100 < $grayPercent) {
echo "走新功能"; // 20%的人会进这里
} else {
echo "走老功能"; // 80%的人走这里
}
?>
代码意思:
– 用用户ID除以100取余数,余数肯定是0–99
– 如果余数小于20,就走新功能(正好占20%)
– 其他人走老功能
稍微高级点的(可配置)
<?php
function isGray($userId, $percent) {
return ($userId % 100) < $percent;
}
$userId = $_SESSION['user_id']; // 当前用户
if (isGray($userId, 20)) {
// 新版本代码
include 'new_feature.php';
} else {
// 老版本代码
include 'old_feature.php';
}
?>
核心思路:
用户ID是固定的,取余后永远落在同一个位置,所以同一个用户每次都会进同一个分支,体验一致。想扩大灰度就改百分比,从20改到
50再到100。




