上一篇我们已经将apollo部署好,我们可以使用apollo来为应用配置应用属性,环境变量等。下面我们来看看apollo是怎么使用的。
由于下面三个jar是随着配置好后的编译文件编译生成的,所以不能放入maven中央仓库,需要放到自己的maven仓库。所以需要搭建maven私服,搭建方法见:http://blog.csdn.net/dhmpgt/article/details/9998321
注意:搭建好maven后需要将.m2/settings的maven地址修改成自己搭建的maven地址
将编译好的apollo-core-0.8.0.jar,apollo-client-0.8.0.jar,apollo-buildtools-0.8.0.jar推入maven仓库,上传方法有很多种,推荐使用如下命令:
mvn deploy:deploy-file -DgroupId=com.digitalchina.framework.apollo -DartifactId=apollo-client -Dversion=0.8.0 -Dpackaging=jar -Dfile=D:\Desktop\apollo-client-0.8.0.jar -Durl=http://172.16.1.112:9212/nexus/content/repositories/ms-release/ -DrepositoryId=ms-release mvn deploy:deploy-file -DgroupId=com.digitalchina.framework.apollo -DartifactId=apollo-core -Dversion=0.8.0 -Dpackaging=jar -Dfile=D:\Desktop\apollo-core-0.8.0.jar -Durl=http://172.16.1.112:9212/nexus/content/repositories/ms-release/ -DrepositoryId=ms-release mvn deploy:deploy-file -DgroupId=com.digitalchina.framework.apollo -DartifactId=apollo-buildtools -Dversion=0.8.0 -Dpackaging=jar -Dfile=D:\Desktop\apollo-buildtools-0.8.0.jar -Durl=http://172.16.1.112:9212/nexus/content/repositories/ms-release/ -DrepositoryId=ms-release根据自己的情况修改参数-DgroupId,-Dfile,-Durl
访问apollo配置中心,地址为apollo-portal的访问地址,访问首页如下:
点击创建项目
填入相应的信息提交即可。
接下来该如何配置属性,来达到不同环境使用不同配置,不同环境使用相同配置,同一环境适用不同配置等的目的。
注意:
(1)红框中的文字,如果想使不同的集群环境使用不同的集群,则需要创建集群,并在客户端调用的时候指定集群名称。若没有配置集群,则默认集群名称为default。
(2)选择环境是指配置将被发布在那个环境中,如果没有将集群和环境关联,客户端是不能读取配置的。
namespace和集群配制方法差不多,只是多了一个关联的概念,下面讲解一下apollo的namespace的概念和用法。
1.概念
namespace其实就相当于一个配置池,有公共的和私有的。公共的namespace可以被所有的应用访问,所以这里边的配置都是一些公共的配置,例如数据库连接,日志配置等一些公共配置资源。那么可想而知,私有的namespace只能够被当前应用访问,但是可以关联公共的namespace并覆盖其中的配置。
如上图:应用B配置了一个公共的namespace,应用A和应用B可以使用这个namespace的配置。只要关联一下就可以了。下面来看一下怎么配置namespace
2.namespace使用方法
点击新建namespace出现如下页面
点击创建namespace并选择public类型即可创建公共的namespace,然后在进行关联即可,关联类型的namespace会覆盖掉关联的公共namespace的配置。
1.引入一下依赖
<!-- 引入guava --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>21.0</version> </dependency> <!-- 引入GSON--> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> <!--引入apollo-client--> <dependency> <groupId>com.digitalchina.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>0.8.0</version> </dependency> <dependency> <groupId>com.digitalchina.framework.apollo</groupId> <artifactId>apollo-core</artifactId> <version>0.9.0</version> </dependency> <dependency> <groupId>com.digitalchina.framework.apollo</groupId> <artifactId>apollo-buildtools</artifactId> <version>0.8.0</version> </dependency> <dependency> <groupId>com.google.inject</groupId> <artifactId>guice</artifactId> <version>4.1.0</version> </dependency> 注意:1)如果本地maven仓库包含apollo的jar,请重新从maven私服拉取 2)guice和guava如果工程没有引用,需要引用。若有,则不需要。 2.在classpath:resources/META_INF下新建app.properties文件,并编辑以下内容 local.meta=http://localhost:8555 dev.meta=http://0.0.0.0:8555 fat.meta=http://0.0.0.0:8555 uat.meta=http://0.0.0.0:8555 lpt.meta=http://0.0.0.0:8555 pro.meta=http://0.0.0.0:855 地址为部署apollo-configservice的地址3.添加ApolloConfiguration.java类
@Configuration @EnableApolloConfig public class ApolloConfiguration { @Bean public InstanceConfigBean instanceConfigBean(){ return new InstanceConfigBean(); } }4.指定运行时环境变量,即JVM参数,-Denv=DEV(必填),-Dapollo.cluster=SomeCluster(可选)
至此,apollo客户端使用配置中心可以取到配置了。像监听等更高级的使用方式后续会不断更新。