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的作用?
- 雖然有了配置中心的客戶端,但是,客戶端不知道要取什麼配置,去哪裡取。
- 配置中心在哪裡存放,要從配置中心的哪個專案裡,取哪個環境的,取哪個叢集的,哪個名稱空間裡的什麼配置。
結語
嘔心瀝血,爆肝兩個星期(需要寫配置環境的文件,還要反覆測試,以便為各位看官老爺提供最好的精品文章),希望點贊,收藏,評論,轉發,您的支援就是本博主前進的動力.