Apollo操作說明
前言
- 研究了一下apollo,發現官方文檔還是很多地方寫的不是很明確(對比Nacos),因此,寫了一份更加簡潔,更加易用,特別適合新手使用的文檔,希望對你有幫助,本文在於詳盡,圖示清晰,簡單易用,十分方便,無論是開發,產品,測試,還是不接觸代碼的人,都可以看的清楚明白.
Apollo環境部署
一、環境構建
軟件名稱 | 版本 | 相關文章推薦 |
---|---|---|
Git | 儘量最新 | https://www.cnblogs.com/liuyangfirst/p/15996063.html |
JDK | 1.8 | https://www.cnblogs.com/liuyangfirst/p/14334385.html |
Maven | 儘量最新 | https://www.cnblogs.com/liuyangfirst/p/15981202.html |
MySQL | 5.6.10 | https://www.cnblogs.com/liuyangfirst/p/15997667.html |
DBeaver | 儘量最新 | https://www.cnblogs.com/liuyangfirst/p/15997753.html |
IntelliJ IDEA | 儘量使用比較新的版本 | https://www.jetbrains.com/idea/ |
二、官方地址
-
根據圖中位置下載apollo的相關zip包.
-
訪問: https://pan.baidu.com/s/1Ieelw6y3adECgktO0ea0Gg#list/path=%2F
三、數據庫腳本使用
-
1.找到下載好的腳本。
-
2.打開DBeaver,右鍵一個數據庫,選擇工具--->執行腳本.
- 3.選擇文件所在路徑.額外命令裏添加配置.
--default-character-set=utf8
- 4.選擇一個文件,點擊確認.
- 5.填好後,如圖,選擇開始,不報錯執行完畢,就是成功了,成功後,會生成如圖兩個數據庫.
四、配置Apollo文件
-
1.找到下載好的文件,找到demo文件,對其備份。
-
2.打開demo文件,進行如圖修改(你的賬戶密碼,不一樣,自行修改)。
五、啓動Apollo
- 1.右鍵選擇git工具.(保證8080\8090\8070 端口不被佔用)
- 2.輸入命令啓動.
./demo.sh start
- 輸入後,進入等待狀態,一直等所有啓動後纔是成功.
- 3.關閉命令
六、訪問Apollo
-
1.訪問地址:localhost:8070/
-
2.輸入賬號/密碼: apollo/admin
- 3.訪問成功進入主頁
- 4.訪問地址:官方樣例,可以查看官網如何使用的.
Apollo產品使用
一、修改部門
-
1、Apollo的部門設計很不好,需要進行修改,修改方式如下。
-
正常的新建,這時候,只有這個樣例部門,沒有正常的部門,所以要修改。
-
-
2、修改方式類似於json修改,首先找到如圖的參數修改。
-
3.點擊如圖修改,新版的這個可以看到這個配置列表了,舊版需要輸入關鍵字。
-
舊版是這樣的。
-
需要輸入:organizations,點擊查詢。
-
-
4.新版修改了樣式,操作還是一樣的,就是按照格式修改json。
-
修改樣例。(自己編的,你也可以自定義)
[{"orgId":"micro_service","orgName":"研發部"},{"orgId":"002","orgName":"銷售部"},{"orgId":"003","orgName":"行政部"},{"orgId":"004","orgName":"財務部"},{"orgId":"005","orgName":"商務部"},{"orgId":"006","orgName":"保潔部"},{"orgId":"007","orgName":"保安部"},{"orgId":"008","orgName":"餐飲部"},{"orgId":"009","orgName":"運營部"},{"orgId":"010","orgName":"客服部"},{"orgId":"011","orgName":"公關部"},{"orgId":"012","orgName":"法務部"},{"orgId":"013","orgName":"後勤保障部"}]
-
修改新版的,粘貼到這裏。
-
保存後如圖。一定要格式對,否則會報錯,整個都不好使了。
-
添加成功,再看新進內,就這樣了。
-
二、應用操作
-
1.新建應用。點擊如圖位置,添加相關參數,點擊保存,再返回主界面,就可以看到自己創建的應用了。
-
2.修改應用,選擇如圖,修改添加時候的信息,點擊修改應用信息,就可以修改了。
-
3.在總列表裏,可以看到添加的應用。
-
4.刪除應用,這個功能就需要吐槽下,本來應該在展示界面裏就有,可是它卻在管理員工具裏,這個button設置的不好。
-
本來在首頁設置直接點刪除很好操作,結果在管理中,而且,還是需要自己輸入ID,這就更費勁操作了。
-
刪除成功後,提示信息。再點擊返回首頁,才能看到成功刪除,不會自動跳轉。
-
三、用戶操作
-
1.添加用戶,進入用戶界面後,添加信息,點擊添加。
-
舊版的就可以設置簡單的密碼.
- 新建用戶後,可以進入登陸界面進行登陸.
- 成功後如圖顯示,但是,這裏的用戶沒有管理員工具.很多功能需要授權使用.
-
2.編輯用戶,修改用戶的信息。
-
可以在列表裏選擇禁用,但是,爲什麼不把刪除放在這裏呢?這個界面不是很友好。
-
選擇過濾進行查詢,選擇重置,就會刪除關鍵字(沒什麼用的設計)。
-
3.刪除用戶,由於界面沒有開發刪除功能,所以想要刪除用戶(在如圖位置),需要自己刪除數據庫的數據(謹慎操作).
# 一定加好where條件,不然全部用戶刪了,就不用用了
delete from users where id = 2
- 技能好的可以源碼拷貝下來,二次開發加上刪除用戶的button,技能不好的,想要刪除,就像這樣刪除數據庫的用戶,這是在用戶沒有賦權的簡單模式下刪除,賦權後,還要同步刪除權限.
四、系統權限管理
1、創建應用權限配置
-
1)操作之前保證新建了一個用戶(詳情看用戶添加),保證有多個可以測試的應用.
-
2)使用前需要開啓這個功能,才能配置,否則配置無效.
-
要在系統配置頁面,首先將這個參數添加進去.
-
輸入配置的信息,點擊提交
role.create-application.enabled = true
-
- 登陸普通用戶:zhangsan,就會發現在首頁應用這裏,圖標都沒了.
- 管理員這裏是有這個圖標的.
- 3)登陸超級管理員apollo,使用這裏的授權功能進行授權,再登陸zhangsan(普通用戶查看),發現這裏的圖標又出現了.
- 在這個列表裏可以選擇.給用戶添加創建應用的權限(用戶默認就有這個權限)
2、創建應用權限配置
-
1 ) 進入首頁,選擇一個應用進入.
-
2 )點擊進入後,發現這裏有個管理應用.
-
先給普通用戶添加這個應用的管理員權限.
-
-
3 ) 登陸普通用戶zhangsan,查看其應用.
- 點擊下拉框發現普通用戶,也可以修改應用的管理員.
-
4 ) 進入apollo賬戶下,添加參數到系統參數中.
-
添加參數,到配置中,點擊提交.
role.manage-app-master.enabled = true
-
對其設置.
-
如圖位置找到,選擇點擊.(系統權限管理應該叫做用戶應用權限管理,更加恰當,應該是產品起的名字,奇奇怪怪的)
-
可以將管理員的應用授權給普通用戶使用權限(那麼就沒什麼變化,所以這裏要禁用其功能).
-
5 ) 重新登陸zhangsan賬戶,點擊進入應用詳情.
-
這時就會看到管理員分配的功能沒有了,只有一個查看的功能了.
3、與舊版比對
- 舊版是沒有這個模塊的,這是新增的一個模塊,對兩個權限進行了修改,全網和官網都沒有相關配置,這裏是作者反覆測試得到的結果.
五、系統參數
-
可以通過這裏配置.
1、PortalDB 配置管理
-
這個模塊對應的數據庫就是這個的表.
新增配置
- 就相當於項目裏的properties
編輯配置
查詢配置
刪除配置
-
界面沒有開發刪除功能,所以,要在數據庫操作刪除.
-
謹慎操作,不要輕易操作
2、ConfigDB 配置管理
-
這個模塊對應的數據庫就是這個的表.
新增配置
- 就相當於項目裏的properties
編輯配置
查詢配置
刪除配置
- 界面沒有開發刪除功能,所以,要在數據庫操作刪除.
- 謹慎操作,不要輕易操作
六、系統信息
-
主要是查看功能,就跟Euraka的主頁一樣.
七、配置導出導入
-
會把配置信息導出成應用配置的信息.
1、配置導出
-
導出後會產生這樣的文檔.打開查看都是json格式的數據.
2、配置導入
八、應用配置(核心功能使用)
-
在主頁點擊應用進入應用配置.
1、應用信息配置
- 查看應用操作.
2、管理應用配置
-
查看第四章系統權限管理
-
查看應用操作
3、管理密鑰配置(新版纔有,舊版沒有)
-
進入密鑰詳情,點擊添加進行添加.
-
可以點擊啓用或者刪除.
-
點擊啓用
4、添加集羣配置
-
集羣就是多個服務器或者多個服務同時使用.
刪除集羣
-
在首頁找到管理員工具裏的刪除功能.另一個頁面打開記住集羣的名字,複製粘貼過來.
-
一個打開記錄集羣名稱.
-
進入刪除集羣界面.複製集羣名稱粘貼進來.
-
刪除成功後.
-
再次查看應用詳情中,刪除成功.
集羣沒有修改名稱的操作
-
可以通過修改數據庫實現 .
UPDATE cluster SET Name='HandSomeBoy' where Id = 7 and IsDeleted=0;
-
修改成功,再查看界面.
5、添加Namespace配置
-
進入內部的NameSpace配置界面,
-
有兩個模塊:創建Namespace和關聯公共組件Namespace
-
其他功能.
A、創建Namespace配置
創建新的Namespace
- 類型:公有就是其他項目也可以使用,私有就是隻有當前的項目可以使用,建法一樣,就是看你是自己項目用還是大家一起用.
設置Namespace
-
點擊新增配置
-
具體配置信息描述.
-
另一種就是通過文本添加,當產生配置表之後,可以進行文本配置的.
-
配置成功後生成列表.
-
點擊這裏進行修改
-
點擊叉進行刪除
-
其他配置可以按需求修改.
-
最後發佈配置文件,就相當於上線了的配置文件,可以用服務連接使用了.
B、關聯公共組件Namespace
- 就是兩個或者多個項目,共同使用一個配置的namespace,也相當於共用的properties.
建立關聯的namespace
-
選擇另一個應用進入,找到namespace設置,選擇關聯公共namespace
-
本來沒有namespace,這樣就共用了一個公有的namespace.達到多個項目共用一個公有公共的namespace.
-
創建成功選擇回到首頁.
-
-
還可以進行覆蓋修改操作.
- key重複了,但是,在這個項目裏單獨的被覆蓋修改了.
C、刪除Namespace
應用內刪除namespace
-
選中一個應用進入,看到namespace列表,選擇這個地方,選擇刪除.
-
選擇刪除namespace.
管理員工具中刪除namespace
-
功能建立的很散,所以,只能這樣寫了.
-
點擊進入,查看到刪除namespace的地方.
-
需要查看列表裏的名字,雙開瀏覽器比較方便操作,不然不好複製粘貼.
-
回到首頁的應用,點擊進入,查看到沒有了.
九、開放平臺授權管理
-
需要有這個需求的項目作爲前提.
-
首先要把第三方的應用接入到apollo平臺裏,否則,這裏無法使用
-
進入主頁分爲兩個模塊:創建第三方應用 和賦權
-
模擬填寫一下.
-
模擬填寫一下.
-
填寫無誤創建成功,就會返回到如圖的列表中,列表就會顯示出來.
Apollo 開發使用
一、構建開發環境
軟件名稱 | 版本 | 相關文章推薦 |
---|---|---|
Git | 儘量最新 | https://www.cnblogs.com/liuyangfirst/p/15996063.html |
JDK | 1.8 | https://www.cnblogs.com/liuyangfirst/p/14334385.html |
Maven | 儘量最新 | https://www.cnblogs.com/liuyangfirst/p/15981202.html |
MySQL | 5.6.10 | https://www.cnblogs.com/liuyangfirst/p/15997667.html |
DBeaver | 儘量最新 | https://www.cnblogs.com/liuyangfirst/p/15997753.html |
IntelliJ IDEA | 儘量使用比較新的版本 | https://www.jetbrains.com/idea/ |
二、構建微服務項目
參考文章
軟件名稱 | 版本 | 相關文章推薦 |
---|---|---|
Git | 儘量最新 | https://www.cnblogs.com/liuyangfirst/p/15996063.html |
三、微服務接入Apollo
1、 修改pom
-
在pom.xml中添加Apollo客戶端 。
<dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.1.0</version> </dependency>
-
項目的父類中添加。
2、修改properties
-
主要添加在consumer的路徑下,就是調用apollo服務的模塊。(由於是分佈式,所以Apollo就相當於一個公共的服務,公共服務的東西被項目通過服務的方式調用。)
-
在resources目錄下新建apollo-env.properties文件
# 這個是最有用的
dev.meta=http://localhost:8080
# 功能驗收測試環境
fat.meta=http://211.103.136.242:7134
# 用戶驗收測試環境
uat.meta=http://172.17.0.83:8080
# 生產環境
pro.meta=http://itcast.xxx.com
- application.properties中進行如下配置
# 項目ID
app.id=account-service
# 啓動階段就注入配置(提高優先級)
apollo.bootstrap.enabled = true
# 使用哪些命名空間中的配置項
apollo.bootstrap.namespaces = application,micro_service.spring-boot-http,springrocketmq
# 服務端口
server.port=63000
3、編譯啓動
A.配置啓動參數
- 完整的VM Options如下:
-Denv=DEV -Dapollo.cluster=DEFAULT
B、其他描述
-
Environment
# 可以通過Java的System Property的env來指定環境: -Denv=DEV
-
Cluster(集羣)
# 通過Java的System Property的apollo.cluste來指定集羣: -Dapollo.cluster=DEFAULT
4、模塊啓動順序
序號 | 模塊 | 描述 |
---|---|---|
1 | 啓動Apollo | 啓動Apollo的jar包 |
2 | DiscoveryServer | 註冊中心 |
3 | GatewayServerGatewayServer | 網關 |
4 | ConsumerService | 用戶中心 |
- 啓動無誤,就是配置成功了.
五、調用流程圖
- 對應關係
六、版本對應
- 未在官方文檔上找到相關介紹,但是在官方提供的例子裏找到了一個對應的版本信息。
- 地址:https://github.com/apolloconfig/apollo-demo-java/blob/main/spring-boot-demo/pom.xml
版本對應關係
- springboot/springcloud/apollo-client 對應版本
年份 | springboot | springcloud | apollo-client | jdk |
---|---|---|---|---|
2023.2.1 | 3.0.2 | 2022.0.0 | 2.1.0 | 1.8 |
2023.X.X | 2.6.8 | 2021.0.2 | 2.1.0 | 1.8 |
自行使用版本 | 2.1.3.RELEASE | Greenwich.RELEASE | 1.2.0 | 1.8 |
- spring對應版本
年份 | spring | apollo-client | jdk |
---|---|---|---|
2023.2.1 | 3.1.1.RELEASE | 2.1.0 | 1.8 |
- springboot/springcloud 對應版本(官網)
apollo-client已有版本
-
是在maven: https://mvnrepository.com/artifact/com.ctrip.framework.apollo/apollo-client,查到的,官網也沒怎麼看到.
七、注意
1、配置 集體放在Apollo配置中心,怎麼被應用獲取呢?
-
通過Apollo客戶端。在項目裏就是加個pom依賴,然後修改相關配置。
-
客戶端的作用:從配置中心取配置
2、配置properties的作用?
- 雖然有了配置中心的客戶端,但是,客戶端不知道要取什麼配置,去哪裏取。
- 配置中心在哪裏存放,要從配置中心的哪個項目裏,取哪個環境的,取哪個集羣的,哪個命名空間裏的什麼配置。
結語
嘔心瀝血,爆肝兩個星期(需要寫配置環境的文檔,還要反覆測試,以便爲各位看官老爺提供最好的精品文章),希望點贊,收藏,評論,轉發,您的支持就是本博主前進的動力.