今天用Apollo时发现一个bug,比如timeout值我设成了200后点发布,然后再修改成300后再发布,此时我点回滚,回滚到了200,发布后前台取到的值还是300。。。
这看起来是一个严重的bug啊,但是这么多企业用Apollo,不可能连这么明显的bug都不修复吧,于是我到github官方的issue里看了下,发现很多人在问这个问题。。仔细研究了下,没有bug,只是apollo的回滚的设计理念不同。
引用下官方人员的回答:
设计即是如此。
打个比方,编辑状态的配置就是git仓库里面的代码,发布出去的是你的代码包,比如war包。
部署到机器上的是war包,回滚的也是war包。
但是你git仓库里面的代码我们是不会回滚的,稍作修改后可以重新发布。
配置回滚并不会回滚当前正在编辑的配置。只是会回滚发布的配置到上一个版本。 类似于应用的回滚,也是回滚的发布包,并不会回滚源码一样。
我后来试了下,发现点回滚后不点发布,前台访问的就是回滚后的值。。上面官方说的应该比较清楚了,这里回滚的并不是你的代码,所以界面上的值是不会变的,回滚的只是发布的版本。所以如果点发布的话,就将界面上显示的值发布了,就会觉得值没有改变。