Linux部署Apollo多環(huán)境配置

1、前提:本文只支持默認(rèn)的開發(fā)環(huán)境(DEV)、測(cè)試環(huán)境(FAT)、預(yù)發(fā)布環(huán)境(UAT)、生產(chǎn)環(huán)境(PRO)四種環(huán)境搭建,可以根據(jù)項(xiàng)目的實(shí)際使用情況部署所需要對(duì)應(yīng)的環(huán)境。本文使用的是apollo1.9.2版本的jar直接部署。如果上述情況不滿足項(xiàng)目需求,則可以根據(jù)實(shí)際項(xiàng)目需求修改apollo源碼,然后進(jìn)行定制化代碼的打包部署

Apollo源碼地址:https://github.com/apolloconfig/apollo

2、準(zhǔn)備工作:
1) 對(duì)應(yīng)文件壓縮包及SQL文件如下:

百度網(wǎng)盤自取
鏈接:https://pan.baidu.com/s/12qsO357DexxoH00o05LrDQ
提取碼:itcc

2) Apollo對(duì)應(yīng)結(jié)構(gòu)如下:

四個(gè)核心模塊及其主要功能:

模塊 主要功能
ConfigService 提供配置獲取接口、提供配置推送接口、服務(wù)于Apollo客戶端
AdminService 提供配置管理接口、提供配置修改發(fā)布接口、服務(wù)于管理界面Portal
Client 為應(yīng)用獲取配置,支持實(shí)時(shí)更新; 通過MetaServer獲取ConfigService的服務(wù)列表; 使用客戶端軟負(fù)載SLB方式調(diào)用ConfigService
Portal 配置管理界面、通過MetaServer獲取AdminService的服務(wù)列表、使用客戶端軟負(fù)載SLB方式調(diào)用AdminService

三個(gè)輔助服務(wù)發(fā)現(xiàn)模塊

模塊 主要功能
Eureka 用于服務(wù)發(fā)現(xiàn)和注冊(cè)Config/AdminService注冊(cè)實(shí)例并定期報(bào)心跳和ConfigService在一起部署
MetaServer Portal通過域名訪問MetaServer獲取AdminService的地址列表,Client通過域名訪問MetaServer獲取ConfigService的地址列表,相當(dāng)于一個(gè)Eureka Proxy邏輯角色,和ConfigService住在一起部署
NginxLB 和域名系統(tǒng)配合,協(xié)助Portal訪問MetaServer獲取AdminService地址列表;和域名系統(tǒng)配合,協(xié)助Client訪問MetaServer獲取ConfigService地址列表;和域名系統(tǒng)配合,協(xié)助用戶訪問Portal進(jìn)行配置管理
3、部署工作:

通過上面的結(jié)構(gòu)可以了解到,部署apollo服務(wù)主要需要部署portal、adminservice、configservice三個(gè)服務(wù)。

portal是配置管理界面,只需要部署一個(gè)服務(wù)即可,同理數(shù)據(jù)庫(kù)也只需要一個(gè)。
Adminservice和configservice是對(duì)應(yīng)每個(gè)環(huán)境的,所以部署幾個(gè)環(huán)境,就需要部署幾個(gè)對(duì)應(yīng)的Adminservice和configservice服務(wù),同樣每個(gè)環(huán)境都有對(duì)應(yīng)的數(shù)據(jù)庫(kù)。

我這里使用的是一臺(tái)服務(wù)器部署四個(gè)環(huán)境。

3.1 第一步:創(chuàng)建對(duì)應(yīng)的數(shù)據(jù)庫(kù),一個(gè)portalDB和四個(gè)apolloconfigdb,對(duì)應(yīng)的sql在上面。(四個(gè)apolloconfigdb對(duì)應(yīng)的表都是一樣的,同樣的sql文件執(zhí)行到四個(gè)數(shù)據(jù)庫(kù)即可)每個(gè)環(huán)境對(duì)應(yīng)的數(shù)據(jù)庫(kù)如下圖,一目了然。

image.png

3.2 第二步:將zip包上傳到服務(wù)器目錄,解壓,修改配置(每個(gè)環(huán)境存放一個(gè)目錄,便于管理)

image.png

3.2.1 修改portal文件,啟動(dòng)對(duì)應(yīng)服務(wù):
解壓后文件如下圖:

image.png

① 修改apollo-portal.conf文件,修改對(duì)應(yīng)服務(wù)啟動(dòng)日志文件打印位置:
(根據(jù)實(shí)際情況自行調(diào)整)

image.png

②修改config目錄下apollo-env.properties文件
(該文件修改的是各個(gè)環(huán)境的訪問地址,由于我的幾個(gè)環(huán)境部署在同一臺(tái)服務(wù)器上面了,所以通過修改使用端口進(jìn)行啟動(dòng)多個(gè)服務(wù))

image.png

這是配置的多環(huán)境對(duì)應(yīng)的端口就是啟動(dòng)每個(gè)環(huán)境configservice所使用的端口

③ 修改config目錄下application-github.properties文件
(該文件修改的是服務(wù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)配置)

image.png

④ 修改scripts目錄下的startup.sh
(該文件修改的是服務(wù)啟動(dòng)使用的端口,此端口也是訪問配置頁(yè)面使用的端口,根據(jù)實(shí)際情況調(diào)整,日志文件打印存放目錄)

image.png

⑤ 打開portal對(duì)應(yīng)ApolloPortalDB數(shù)據(jù)庫(kù)的ServerConfig對(duì)應(yīng)的表,添加對(duì)應(yīng)的環(huán)境,因?yàn)槲疫@里配置四個(gè)環(huán)境所以如下圖(可根據(jù)實(shí)際情況調(diào)整)

image.png

通過上述四部操作,就完成了portal的對(duì)應(yīng)配置修改,然后執(zhí)行scripts目錄下的startup.sh的啟動(dòng)腳本即可啟動(dòng)對(duì)應(yīng)的服務(wù),啟動(dòng)日志可以通過自定義配置的日志目錄下找到對(duì)應(yīng)的日志文件查看,當(dāng)然此時(shí)雖然可以正常啟動(dòng),但是還是會(huì)報(bào)錯(cuò),因?yàn)閷?duì)應(yīng)的configservice服務(wù)還沒有啟動(dòng),肯定是訪問不到的,無需擔(dān)心。

3.2.2 修改dev目錄下對(duì)應(yīng)的adminservice和configservice的服務(wù)配置
在dev目錄下創(chuàng)建adminservice和configservice兩個(gè)目錄
然后將對(duì)應(yīng)的adminservice和configservice的zip包上傳到對(duì)應(yīng)的目錄下,解壓

① Adminservice目錄下解壓之后文件如下:

image.png

② 修改apollo-adminservice.conf文件中對(duì)應(yīng)日志打印目錄

image.png

③ 修改config目錄下application-github.properties文件中對(duì)應(yīng)的數(shù)據(jù)源配置

image.png

④ 修改scripts目錄下startup.sh文件中的使用端口及日志打印目錄

image.png

通過上述修改,dev環(huán)境的adminservice服務(wù)就修改完成了

⑤ Configservice目錄下解壓后文件如下:

image.png

⑥ 所需修改的地方和上述234一樣,有一點(diǎn)需要注意4中的端口不能定義重復(fù),我這里configservice使用的是8080端口,全部修改完成之后,對(duì)應(yīng)的服務(wù)的配置就全部完成了

⑦ 打開數(shù)據(jù)庫(kù)dev環(huán)境對(duì)應(yīng)的ApolloConfigDBDev數(shù)據(jù)庫(kù),找到ServerConfig表,第一行數(shù)據(jù)是eureka的配置,注意value值一定要是configservice服務(wù)使用的端口。如下圖:

image.png

通過上述操作,將對(duì)應(yīng)的服務(wù)全部修改完成后,啟動(dòng)各自scripts目錄下startup.sh腳本即可,啟動(dòng)成功后,configservice中會(huì)自帶eureka服務(wù),所以通過頁(yè)面訪問ip:8080/就可以訪問到eureka了

image.png

訪問ip:8070/就可以訪問apollo配置界面了

image.png

默認(rèn)初始用戶密碼:apollo/admin

通過上面的操作就完成了portal和dev環(huán)境的部署,其他的環(huán)境和dev同理,操作都一樣。**需要注意的是每個(gè)環(huán)境的ApolloConfigDB數(shù)據(jù)庫(kù) ServerConfig表,第一行數(shù)據(jù)是eureka的配置,注意value值一定要是configservice服務(wù)使用的端口,如果這里端口沒有更改,就會(huì)使用默認(rèn)將服務(wù)注冊(cè)到8080的eureka上面,就會(huì)出現(xiàn)環(huán)境錯(cuò)亂問題 **

我使用的端口如下:
Portal端口:8070
dev-configservice:8080
dev-adminservice:8090
fat-configservice:8081
fat-adminservice:8091
uat-configservice:8082
uat-adminservice:8092
pro-configservice:8085
pro-adminservice:8093

配置界面訪問:ip:8070
代碼中服務(wù)配置(四個(gè)環(huán)境):

apollo:
  meta: http://ip:8080/
  bootstrap:
    enabled: true
    namespaces: application 
env: dev
apollo:
  meta: http://ip:8081/
  bootstrap:
    enabled: true
    namespaces: application 
env: fat
apollo:
  meta: http://ip:8082/
  bootstrap:
    enabled: true
    namespaces: application 
env: uat
apollo:
  meta: http://ip:8085/
  bootstrap:
    enabled: true
    namespaces: application 
env: pro
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容