开发过程中有些业务存在不确定性,但部署生产后又不好回滚,因为不能为了这一个业务功能影响整个迭代的功能,回滚后所有的功能都无法上线。此时,就需要加上开关实现灰度发布。常用的灰度有两种:完全灰度和限流百分比灰度。以下详细介绍下:
1.完全灰度:即百分百的灰度,要么这个功能使用新逻辑,要么使用旧逻辑。这就简单了,直接用if/else实现
2.限流百分比灰度:在系同启动时,配置一个限流的灰度百分比a([0, 100]内),在调取该功能时,随机生成一个随机数b,判定b是否在[0,a]内。若在,则灰度命中,走新逻辑;若不在,走旧逻辑。然后可以手动修改限流的a(第三方系统或工具或缓存实现),即可达到动态限流。