一、蓝绿发布
- 增加部署了新版本代码的服务器资源
- 记录该新增上游的id
- 在对应路由中加入
traffic-split
插件的配置如下, 其中:http_变量名
为http头里面指定的变量名,例如:http_version
新版本号
为字符串的版本号,例如:1.5.3
新增上游的ID
为指向部署了新版本代码的服务器的上游
"plugins": {
"traffic-split": {
"rules": [
{
"match": [
{
"vars": [
[
"http_变量名",
"==",
"新版本号"
]
]
}
],
"weighted_upstreams": [
{
"upstream_id": "新增上游的ID"
}
]
}
]
}
}
做完上述操作,所有前端的http请求头里面是新版本号的请求会定向到新增上游服务器,版本号匹配不上的会仍然定向到以前配置的上游或者服务。
二、按权重分流
"plugins": {
"traffic-split": {
"rules": [
{
"weighted_upstreams": [
{
"upstream_id": "新增上游的ID",
"weight": 指定上游的权重
},
{
"weight": 原上游的权重
}
]
}
]
}
}
做完上述操作,如果指定上游权重为1, 原上游权重为9,则指定上游和原上游会将流量按1:9的方式分流。