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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM