Apollo(阿波羅)是攜程框架部門研發的分布式配置中心,能夠集中化管理應用不同環境、不同集群的配置,配置修改后能夠實時推送到應用端,并且具備規范的權限、流程治理等特性,適用于微服務配置管理場景。
Apollo 與 properties 配置文件的功能相同,都可以設置參數。Apollo 的優點在于,可以實時修改參數的值,而不需要重啟項目。
1 環境準備
需要 Java 1.8 及以上,MySQL 5.6 及以上的版本。
MySQL安裝配置方式:https://mp.weixin.qq.com/s/ISCjsIpmccVnuvXPkiFLMw
如果只是本地測試的話,推薦使用 GitHub 上的開源項目 Apollo Quick Start;
安裝包下載地址:https://pan.baidu.com/s/11dYV5x1Qu7svEGaJLShoqQ?pwd=6666
提取碼:6666
2 SQL 導入
下載并解壓安裝包 apollo-quick-start-2.0.1.zip,可以看到目錄下有 sql 文件夾,里面有 apolloconfigdb.sql 和 apolloportaldb.sql 兩個文件,需要將這兩個文件導入 MySQL中。
打開 win 菜單中的 MySQL 8.0 Command Line Client - Unicode 命令,
運行:
source D:\\\\\\\\\\\\\\\\Apollo\\\\\\\\\\\\\\\\apollo-quick-start-2.0.1\\\\\\\\\\\\\\\\sql\\\\\\\\\\\\\\\\apolloconfigdb.sql
source D:\\\\\\\\\\\\\\\\Apollo\\\\\\\\\\\\\\\\apollo-quick-start-2.0.1\\\\\\\\\\\\\\\\sql\\\\\\\\\\\\\\\\apolloportaldb.sql
D:\\\\\\\\\\\\\\\\Apollo
是我存放 apollo-quick-start-2.0.1 文件夾的路徑。
即可完成導入。
導入成功后,可以通過執行以下sql語句來驗證:
select `NamespaceId`, `Key`, `Value`, `Comment` from ApolloConfigDB.Item;
有以下輸出,表示導入成功。
3 啟動 Apollo
編輯 apollo-quick-start-2.0.1文件夾下的 demo.sh,修改 ApolloPortalDB 和 ApolloConfigDB 相關的數據庫連接配置信息。
#apollo config db info
apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
apollo_config_db_username=root
apollo_config_db_password=root
# apollo portal db info
apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=root
apollo_portal_db_password=root
我的數據庫的賬號密碼均為 root。
找到 demo.sh 的第72行,將 cd "${0%/*}"
改為當前路徑:
cd D:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Apollo\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\apollo-quick-start-2.0.1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
打開 win 菜單中的 Git Bash,運行 demo.sh 。
D:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Apollo\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\apollo-quick-start-2.0.1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\demo.sh start
等待運行一段時間后,當看到如下輸出,就說明啟動成功了。
==== starting service ====
Service logging file is ./service/apollo-service.log
Started [10768]
Waiting for config service startup.......
Config service started. You may visit http://localhost:8080 for service status now!
Waiting for admin service startup....
Admin service started
==== starting portal ====
Portal logging file is ./portal/apollo-portal.log
Started [10846]
Waiting for portal startup......
Portal started. You can visit http://localhost:8070 now!
訪問 http://localhost:8070 ,輸入用戶名 apollo,密碼 admin,即可登錄。
停止運行命令:
D:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Apollo\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\apollo-quick-start-2.0.1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\demo.sh stop
需要注意,apollo 端口號為8070,但在 Java 工程的 properties 中, apollo.meta
設置的端口號應為 Eureka 的端口號8080。
4 使用 Apollo
點擊創建應用:
輸入自定義的參數:
即可創建成功。然后在新創建的應用中增加配置:
5 項目實例
下載一個測試項目 learn-apollo
:
GitHub地址:https://github.com/Snowstorm0/learn-apollo
Gitee地址:https://gitee.com/Snowstorm0/learn-apollo
在運行項目之前需要修改 resource/application.properties 中 apollo.meta 的值,將 localhost 替換為 apollo 的地址,端口號為 Eureka 的端口號(默認為8080)。
在 Apollo 中新增并發布如下三個參數:
learn-apollo
是一個定時任務,可以每隔5秒輸出一次apollo的參數信息。
運行該項目,輸出:
paramStr:str1
然后在apollo中修改參數的值,將str1
改為str2
。
不需要重啟項目,此時項目會輸出參數更新的日志信息:
[Apollo-Config-1] c.f.a.s.p.AutoUpdateConfigChangeListener :
Auto update apollo changed value successfully,
new value: paramStr7, key: param.paramStr, beanName: myService,
field: com.spring.boot.service.MyService.paramStr
項目的輸出也變了:
paramStr:str2
-
JAVA
+關注
關注
20文章
2982瀏覽量
106387 -
MySQL
+關注
關注
1文章
839瀏覽量
27247 -
Apollo
+關注
關注
5文章
345瀏覽量
18616
發布評論請先 登錄
相關推薦
9.9萬元用上“滿血”DeepSeek R1一體機,本地部署成新商機?
賽思互動:淺析CRM Online與CRM本地部署的區別
如何對Apollo2.5 CANBUS進行全面調試?
Ambiq Apollo4的相關資料推薦
Apollo Heritage版音頻接口附帶的插件
本地測試環境搭建

ERP到底該選云部署還是本地部署?兩種模式有什么優勢?
如何本地部署大模型

基于Docker-Compose的Apollo部署安裝與使用

源2.0適配FastChat框架,企業快速本地化部署大模型對話平臺

百度Apollo計劃年內部署千臺無人車
涂鴉HEDV本地化部署方案,助你低成本實現定制化開發!

評論