3、apollo连接测试
在工程中写一个接口,测试一下是否能从apollo上面读取到配置,测试读取一下下面这个配置
@Value("${uyun:default}") private String uyunname; @GetMapping("/getUyunName") public String getUyunName(){ return uyunname; }
启动项目,浏览器访问一下该接口,可以看到能成功访问到apollo,说明与apollo的整合完毕
如何解决本文开篇谈到的使用apollo实现配置文件的灰度发布呢?回到apollo,我们注意到这里有个“灰度”按钮
这是什么意思呢?简单理解就是,使用这个灰度按钮的功能,可以对当前的配置文件进行一份拷贝,类似备份,同时我们可以对灰度的配置进行添加,修改,删除等操作,而灰度文件的修改不会影响到主配置文件,下面我们对 "dubbo"这个配置文件做一下灰度的配置吧
点击“灰度”
可以看到,灰度创建的内容是对主配置文件的全量拷贝,当然灰度配置也需要像主配置文件那样进行发布之后才能使用的,点击发布,弹出一个需要我们设置灰度规则的框
简单解释下,既然是灰度发布的配置文件,自然不能让所有的客户端访问到,这里apollo提供了几种配置规则方式,这里我选择了直接配置IP的方式,将本机的IP填进去,然后保存,再次发布即可
这个规则的含义就是,当前dubbo的这个灰度配置文件,只能允许我的本机IP进行访问,接下来就让我们做一下验证吧
4、灰度配置测试
在工程中新增一个接口,同时给灰度配置文件中新增2个配置
@Value("${name:default}") private String uname; @Value("${age:default}") private String age; @GetMapping("/getUyunName") public String getUyunName(){ return uyunname; }
将本机的其中一个项目启动,访问新增的这个接口,可以发现,能够成功访问到灰度文件中的配置信息
为了验证灰度的功能,我们将项目打成jar包,部署到服务器上,服务器的IP不在灰度配置列表中,理论上是无法访问到 age 这个新增的配置的
成功启动后,浏览器直接访问云服务器上面的这个接口,这时,可以发现,同样的接口,由于IP未配置在灰度规则中,将无法读取到age这个配置的值
踩坑提醒
如果使用的是阿里云或者其他云服务器部署apollo的时候,本地项目连接apollo的时候会一直报apollo的连接超时问题,这个问题的解决办法是,在启动的配置vm中,添加如下参数即可
-Dapollo.configService=http://apollo部署的主机IP:8080