本发明专利技术公开了一种灰度发布方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收客户端发送的灰度信息获取请求,所述灰度信息获取请求指示了变量对应的第一版本信息;根据所述灰度信息获取请求,获取所述变量对应的灰度信息,所述灰度信息指示了所述变量对应的第二版本信息、灰度值、默认值、灰度比例;根据所述第一版本信息与所述第二版本信息,判断是否向所述客户端下发所述灰度信息;在判断结果为是的情况下,根据所述灰度比例,选择将所述灰度值或所述默认值下发至所述客户端。该实施方式实现了变量灰度发布过程中对灰度粒度的灵活控制,解决了灰度粒度过粗的问题。题。题。
【技术实现步骤摘要】
一种灰度发布方法和装置
[0001]本专利技术涉及计算机
,尤其涉及一种灰度发布方法和装置。
技术介绍
[0002]在实际的生产环境中难免会涉及到配置更新,即配置中变量取值发生变化,由于不知更新后的配置能否在生产环境中正常运行,若对生产环境中的全局变量同时进行修改,极可能会导致整个服务集群的瘫痪。因此,为保证服务集群的平稳运行,考虑进行灰度配置,即让变量更新前后的取值同时存在,以向不同的客户端下发不同的配置,从而实现变量灰度发布。
[0003]在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:在进行变量灰度发布时,灰度粒度不够细,无法对配置更新的影响面进行精准控制,影响了服务集群运行的平稳过渡。
技术实现思路
[0004]有鉴于此,本专利技术实施例提供了一种灰度发布方法和装置,能够实现灰度粒度可控的变量灰度发布机制,解决了灰度粒度不够细的问题,实现了对配置更新影响面的精准控制,从而保证了服务集群的平稳运行。
[0005]为实现上述目的,根据本专利技术实施例的一个方面,提供了一种灰度发布方法,包括:
[0006]接收客户端发送的灰度信息获取请求,所述灰度信息获取请求指示了变量对应的第一版本信息;
[0007]根据所述灰度信息获取请求,获取所述变量对应的灰度信息,所述灰度信息指示了所述变量对应的第二版本信息、灰度值、默认值、灰度比例;
[0008]根据所述第一版本信息与所述第二版本信息,判断是否向所述客户端下发所述灰度信息;
[0009]在判断结果为是的情况下,根据所述灰度比例,选择将所述灰度值或所述默认值下发至所述客户端。
[0010]可选地,在接收客户端发送的灰度信息获取请求之前,还包括:
[0011]在数据库中预先配置所述变量对应的灰度信息,所述灰度信息还指示了所述变量对应的键值、应用名;
[0012]在所述变量取值发生变化的情况下,重新配置所述灰度信息中的灰度值、默认值、灰度比例及版本信息。
[0013]可选地,所述根据所述灰度比例,选择将所述灰度值或所述默认值下发至所述客户端,包括:
[0014]采用MurmurHash算法对所述键值进行运算,以获取灰度比例阈值;
[0015]判断所述灰度比例是否大于所述灰度比例阈值:若大于,则将所述灰度值下发至
所述客户端;若不大于,则将所述默认值下发至所述客户端。
[0016]可选地,所述根据所述第一版本信息与所述第二版本信息,判断是否向所述客户端下发所述灰度信息,包括:
[0017]比较所述第一版本信息与所述第二版本信息;
[0018]在所述第一版本信息低于所述第二版本信息的情况下,向所述客户端下发所述灰度信息;
[0019]将所述灰度信息对应的拉取日志写入消息队列中。
[0020]可选地,还包括:
[0021]根据下发至所述客户端的灰度值或默认值生成灰度日志,并将所述灰度日志写入所述消息队列中。
[0022]可选地,消费所述消息队列中的消息,以基于所述拉取日志及所述灰度日志进行数据统计,并根据统计结果调整所述灰度信息中的灰度比例。
[0023]可选地,采用Flink中间件消费所述消队列中的消息,以基于所述拉取日志及所述灰度日志进行数据统计;
[0024]将所述消息及所述统计结果写入搜索引擎中,以进行可视化处理;
[0025]根据可视化结果调整所述灰度信息中的灰度比例。
[0026]可选地,所述灰度信息获取请求还指示了所述变量对应的应用名,以根据所述应用名从所述数据库中获取所述变量对应的灰度信息。
[0027]为实现上述目的,根据本专利技术实施例的另一个方面,提供了一种灰度发布装置,包括:请求接收模块、信息获取模块、版本对比模块、变量值下发模块;其中,
[0028]所述请求接收模块,用于接收客户端发送的灰度信息获取请求,所述灰度信息获取请求指示了变量对应的第一版本信息;
[0029]所述信息获取模块,用于根据所述灰度信息获取请求,获取所述变量对应的灰度信息,所述灰度信息指示了所述变量对应的第二版本信息、灰度值、默认值、灰度比例;
[0030]所述版本对比模块,用于根据所述第一版本信息与所述第二版本信息,判断是否向所述客户端下发所述灰度信息;
[0031]所述变量值下发模块,用于在判断结果为是的情况下,根据所述灰度比例,选择将所述灰度值或所述默认值下发至所述客户端。
[0032]可选地,还包括:信息配置模块;所述信息配置模块,用于在接收客户端发送的灰度信息获取请求之前,在数据库中预先配置所述变量对应的灰度信息,所述灰度信息还指示了所述变量对应的键值、应用名;在所述变量取值发生变化的情况下,重新配置所述灰度信息中的灰度值、默认值、灰度比例及版本信息。
[0033]可选地,所述根据所述灰度比例,选择将所述灰度值或所述默认值下发至所述客户端,包括:采用MurmurHash算法对所述键值进行运算,以获取灰度比例阈值;判断所述灰度比例是否大于所述灰度比例阈值:若大于,则将所述灰度值下发至所述客户端;若不大于,则将所述默认值下发至所述客户端。
[0034]可选地,所述根据所述第一版本信息与所述第二版本信息,判断是否向所述客户端下发所述灰度信息,包括:比较所述第一版本信息与所述第二版本信息;在所述第一版本信息低于所述第二版本信息的情况下,向所述客户端下发所述灰度信息;将所述灰度信息
对应的拉取日志写入消息队列中。
[0035]可选地,所述变量值下发模块,还用于,根据下发至所述客户端的灰度值或默认值生成灰度日志,并将所述灰度日志写入所述消息队列中。
[0036]可选地,还包括:数据统计模块,所述数据统计模块,用于消费所述消息队列中的消息,以基于所述拉取日志及所述灰度日志进行数据统计,并根据统计结果调整所述灰度信息中的灰度比例。
[0037]可选地,所述数据统计模块,还用于采用Flink中间件消费所述消队列中的消息,以基于所述拉取日志及所述灰度日志进行数据统计;将所述消息及所述统计结果写入搜索引擎中,以进行可视化处理;根据可视化结果调整所述灰度信息中的灰度比例。
[0038]可选地,所述灰度信息获取请求还指示了所述变量对应的应用名,以根据所述应用名从所述数据库中获取所述变量对应的灰度信息。
[0039]为实现上述目的,根据本专利技术实施例的再一个方面,提供了一种用于灰度发布的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的灰度发布方法中任一所述的方法。
[0040]为实现上述目的,根据本专利技术实施例的又一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的灰度发布方法中任一所述的方法
[0041]上述专利技术中的一个实施例具有如下优点或有益效果:通过对比客户端对本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种灰度发布方法,其特征在于,包括:接收客户端发送的灰度信息获取请求,所述灰度信息获取请求指示了变量对应的第一版本信息;根据所述灰度信息获取请求,获取所述变量对应的灰度信息,所述灰度信息指示了所述变量对应的第二版本信息、灰度值、默认值、灰度比例;根据所述第一版本信息与所述第二版本信息,判断是否向所述客户端下发所述灰度信息;在判断结果为是的情况下,根据所述灰度比例,选择将所述灰度值或所述默认值下发至所述客户端。2.根据权利要求1所述的灰度发布方法,其特征在于,在接收客户端发送的灰度信息获取请求之前,还包括:在数据库中预先配置所述变量对应的灰度信息,所述灰度信息还指示了所述变量对应的键值、应用名;在所述变量取值发生变化的情况下,重新配置所述灰度信息中的灰度值、默认值、灰度比例及版本信息。3.根据权利要求2所述的灰度发布方法,其特征在于,所述根据所述灰度比例,选择将所述灰度值或所述默认值下发至所述客户端,包括:采用MurmurHash算法对所述键值进行运算,以获取灰度比例阈值;判断所述灰度比例是否大于所述灰度比例阈值:若大于,则将所述灰度值下发至所述客户端;若不大于,则将所述默认值下发至所述客户端。4.根据权利要求1所述的灰度发布方法,其特征在于,所述根据所述第一版本信息与所述第二版本信息,判断是否向所述客户端下发所述灰度信息,包括:比较所述第一版本信息与所述第二版本信息;在所述第一版本信息低于所述第二版本信息的情况下,向所述客户端下发所述灰度信息;将所述灰度信息对应的拉取日志写入消息队列中。5.根据权利要求4所述的灰度发布方法,其特征在于,还包括:根据下发至所述客户端的灰度值或默认值生成灰度日志,并将所述灰度日志写入所述消息队列中。6.根据权利要求5所述的灰度发布方法,其特征在于...
【专利技术属性】
技术研发人员:李凯,
申请(专利权)人:京东科技信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。