筆者在工作中遇到如下問題,隨着程序功能越多,配置文件不斷增加,一些功能的開關、服務器地址、接口地址、不同環境的一些配置文件不同,這些在每次發佈不同環境、更新項目時都比較繁瑣,後來學習微服務時接觸到了Spring Cloud Config配置中心,用了一段時間發現比之前方便不少,但是還是比較繁瑣和麻煩,而且功能還達不到生產級,只能小規模場景下使用,在中大規模企業場景下不建議採用。後來瞭解到攜程Apollo配置中心,Apollo支持完善的管理界面,支持多環境,配置變更實時生效,權限和配置審計等多種生產級功能,而且在攜程到微服務架構體系中也運用了這個,在國內衆多互聯網公司也有落地案例,就開始去接觸瞭解。最後結合工作和學習的一些經驗分享給大家Apollo的入門使用和一些走過的坑,本篇文章主要介紹使用Spring Boot項目整合Apollo配置中心來管理髮布配置文件。
簡要步驟:
①、使用Apollo創建一個項目
②、新增項目配置文件
③、創建一個Spring Boot項目
④、修改配置文件、編寫Java類
⑤、使用Apollo發佈項目配置文件
⑥、啓動本地項目查看從Apollo配置中心讀取的文件
推薦博客:
Apollo架構體系、Apollo運行原理、Apollo配置中心簡單介紹:https://blog.csdn.net/zjh_746140129/article/details/86179522
Linux下配置安裝Apollo、Centons下配置安裝Apollo:https://blog.csdn.net/zjh_746140129/article/details/86179601
Spring Boot項目整合Apollo配置中心:https://blog.csdn.net/zjh_746140129/article/details/86361168
Spring boot項目整合apollo錯誤:for env UNKNOWN from com.ctrip.framework.apollo.internals.DefaultMetaServer
詳細步驟:
一、使用Apollo創建一個項目
1、登錄打開Apollo
2、新建項目
二、新增項目配置文件
1、點擊文本,選擇編輯
2、編輯完提交
3、添加集羣
注:這裏只配置了DEV環境,這裏的集羣名稱後面在項目配置中會用到。
三、創建Spring Boot項目
注:這裏用了之前的一篇boot整合jpa的案例,大家也可以自己新建一個,後面提供了核心實現代碼
Spring Boot2.0系列教程之 JPA 和 Thymeleaf 實踐(五):https://blog.csdn.net/zjh_746140129/article/details/81254965
github源碼地址:https://github.com/zjh746140129/Spring-Boot2.0
pom文件新增
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.1.2</version>
</dependency>
四、修改配置文件、編寫Java類
1、配置文件application.properties,這裏app.id要和Apollo裏面項目的appId一致
app.id=test-demo
apollo.bootstrap.enabled = true
apollo.meta=http://192.168.234.155:8080
spring.profiles.active=dev
2、配置文件配置文件application-dev.properties,這裏的cluster=dev是Apollo中集羣的名字
#apollo的配置
apollo.cluster=dev
2、編寫Java類
package com.boot.config;
import com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
/**
* Created by zhoujh on 2019/1/9.
*/
@Configuration
@EnableApolloConfig
public class BootConfig {
@Value("${CONFIG.PlatFormCode}")
private String PlatFormCode;
public String getPlatFormCode() {
return PlatFormCode;
}
public void setPlatFormCode(String platFormCode) {
PlatFormCode = platFormCode;
}
}
在controller測試從Apollo配置中心獲取
五、使用Apollo發佈項目配置文件
1、點擊發布
六、啓動本地項目查看從Apollo配置中心讀取的文件
1、修改項目啓動設置
-Denv=DEV
-Denv就是開發環境 DEV表示阿波羅裏面的集羣名稱
linux服務器啓動jar 也需要加一個這個,例如 java -Denv=DEV -jar abc.jar
2、啓動項目查看控制檯是否連接Apollo
3、查看Apollo實例列表
注:只要應用連接上這裏就會有,如果沒有說明沒有連接上Apollo
4、測試訪問,說明已經讀取到
5、添加配置文件Apollo再發布
6、再訪問首頁查看控制檯
可以看到已經再次獲取到了