zoukankan      html  css  js  c++  java
  • 常见的灰度发布系统规则


    常见的灰度发布系统规则
    按城市发布
    按概率发布
    按百分比发布
    按白名单发布
    按业务线发布
    按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
    }

  • 相关阅读:
    HTML5定位功能,实现在百度地图上定位
    很好用的API管理--Swagger
    依赖注入原理---IoC框架
    c# asp.net 修改webconfig文件 配置
    逗比的快钱支付
    MVC 5限制所有HTTP请求必须是POST方式
    富头像上传编辑器----很好用的上传照片和拍照功能
    .NET中的DES对称加密
    无聊搭1个框架
    PHP高效率写法
  • 原文地址:https://www.cnblogs.com/webkaifazhe/p/14208946.html
Copyright © 2011-2022 走看看