携程Apollo(阿波罗)配置中心把现有项目的配置文件迁移到Apollo

Posted Jim

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了携程Apollo(阿波罗)配置中心把现有项目的配置文件迁移到Apollo相关的知识,希望对你有一定的参考价值。

说明:

1、这个示例应该算是一个静态迁移,也就是说配置更新后要重启应用才能体现更新,目的是展示现有配置的如何迁移。

2、如果要实现更新配置后动态去更新而不重启应用的操作,比如ZK地址和数据库地址这些,下一篇再详细实践。

3、下面的示例是基于ZK实现的服务注册与发现,而只通过实现服务提供者的那部分,不实现服务消费者的,方便做个对比。

前提:

通过这里搭建好ZK的示例:http://www.cnblogs.com/EasonJim/p/7613734.html

并且搭建好单机版的服务端:http://www.cnblogs.com/EasonJim/p/7643630.html

实现步骤:

0、下面的操作都是通过官方文档实践的,参考:https://github.com/ctripcorp/apollo/wiki/Java%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97#324-%E5%B7%B2%E6%9C%89%E9%85%8D%E7%BD%AE%E8%BF%81%E7%A7%BB

1、在配置中心新建好项目

2、把zookeeperservice项目上的application.properties配置文件的配置项复制到这个项目上,然后删除项目上的这个文件。

注意:保存完成后要点击发布。

3、新建META-INF/app.properties,并把app.id写上zookeeperservice。

4、在POM上引入Client

<?xml version="1.0"?>
<project
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.jsoft.testzookeeper</groupId>
        <artifactId>zookeeperdemo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <groupId>com.jsoft.testzookeeper</groupId>
    <artifactId>zookeeperservice</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>zookeeperservice</name>
    <url>http://maven.apache.org</url>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.ctrip.framework.apollo</groupId>
            <artifactId>apollo-client</artifactId>
            <version>0.8.0</version>
        </dependency>
    </dependencies>
</project>

5、在程序的main入口的Class上增加@EnableApolloconfig注解

6、运行

一般只需要在/opt/settings/server.properties中配置了env=DEV就可以直接直接启动(因为Client在本地仓库的包上已经有了meta_server的信息),但是在IDE上也可以通过指定VM的参数,增加系统属性变量-D来实现调试,配置如下:

如果到处JAR运行,直接java -jar Spring-Boot-Demo.jar即可,不需要增加什么参数(但前提是配置了/opt/settings/server.properties的env的值)。

7、测试是否正常注册到ZK,并测试服务消费者能否正常运行

7.1、通过zkCli.sh连接后正常获取信息

7.2、通过服务消费者访问

一切正常。

 

测试工程:https://github.com/easonjim/5_java_example/tree/master/apollotest/test2

以上是关于携程Apollo(阿波罗)配置中心把现有项目的配置文件迁移到Apollo的主要内容,如果未能解决你的问题,请参考以下文章

Apollo(阿波罗)携程开源配置管理中心

阿波罗配置中心实战

携程Apollo(阿波罗)配置中心用户管理和部门管理

携程为何放弃apollo

ABP微服务系列学习-对接Apollo配置中心

CentOS 7 搭建基于携程Apollo(阿波罗)配置中心单机模式