携程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

posted @ 2017-10-11 12:03  EasonJim  阅读(6100)  评论(4编辑  收藏  举报