常见的灰度发布系统规则
作者:互联网
常见的灰度发布系统规则
按城市发布
按概率发布
按百分比发布
按白名单发布
按业务线发布
按UA发布(APP、Web、PC)
按分发渠道发布
因为和公司的业务相关,所以城市、业务线、UA、分发渠道这些都可能会被直接编码在系统里
按概率发布则是指实现一个简单的函数:
func isTrue() bool {
return true or false
}
其可以按照用户指定的概率返回true或者false,当然,true的概率加false的概率应该是100%。这个函数不需要任何输入。
例如:
公司内一般都会有公共的城市名字和id的映射关系,如果业务只涉及中国国内,那么城市数量不会特别多,且id可能都在10000范围以内。那么我们只要开辟一个一万大小左右的bool数组,就可以满足需求了:
var cityID2Open = [12000]bool{}
func init() {
readConfig()
for i:=0;i<len(cityID2Open);i++ {
if city i is opened in configs {
cityID2Open[i] = true
}
}
}
func isPassed(cityID int) bool {
return cityID2Open[cityID]
}
如果公司给cityID赋的值比较大,那么我们可以考虑用map来存储映射关系,map的查询比数组稍慢,但扩展会灵活一些:
var cityID2Open = map[int]struct{}{}
func init() {
readConfig()
for _, city := range openCities {
cityID2Open[city] = struct{}{}
}
}
func isPassed(cityID int) bool {
if _, ok := cityID2Open[cityID]; ok {
return true
}
return false
}
标签:cityID2Open,常见,cityID,发布,灰度,func,规则,bool,true 来源: https://www.cnblogs.com/webkaifazhe/p/14208946.html