Apollo快速搭建

[github地址:] https://github.com/ctripcorp/apollo

Apollo(阿波羅)是攜程框架部門研發(fā)的分布式配置中心,能夠集中化管理應(yīng)用不同環(huán)境、不同集群的配置,配置修改后能夠?qū)崟r(shí)推送到應(yīng)用端,并且具備規(guī)范的權(quán)限、流程治理等特性,適用于微服務(wù)配置管理場(chǎng)景。比Spring Cloud Config安裝復(fù)雜很多,而且官方的安裝文檔因?yàn)榭紤]得特別全面,寫得比較詳細(xì),不方便我們快速部署。

這里只是簡(jiǎn)單的介紹如何在windows環(huán)境下部署Apollo 配置中心,需要詳細(xì)了解Apollo配置中心設(shè)計(jì)、架構(gòu)剖析、詳細(xì)的部署方案請(qǐng)?jiān)L問上面的github地址找wiki文檔即可。

一、部署簡(jiǎn)介

Apollo主要部署3個(gè)組件

  • Portal:管理配置的頁面

  • Admin Service:配置管理服務(wù)(為Portal提供接口)

  • Config Service:配置服務(wù)(為客戶端提供配置接)

20190930103443.png

二、準(zhǔn)備環(huán)境

  • windows

  • jdk 1.8

  • mysql 5.6.5+

三、下載部署操作

1.下載代碼

下載地址:git@github.com:ctripcorp/apollo.git

目錄結(jié)構(gòu)如下圖:

1569145517951.png

2.創(chuàng)建數(shù)據(jù)庫

2.1 創(chuàng)建ApolloPortalDB

通過各種MySQL客戶端導(dǎo)入apolloportaldb.sql文件即可。

1.3.0版本開始為了支持Flyway,sql位置和命名從之前的scripts/sql/apolloportaldb.sql改為了scripts/db/migration/portaldb/V1.0.0__initialization.sql

導(dǎo)入成功后,可以通過執(zhí)行以下sql語句來驗(yàn)證:

select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` limit 1;
Id Key Value Comment
1 apollo.portal.envs dev 可支持的環(huán)境列表

注:ApolloPortalDB只需要在生產(chǎn)環(huán)境部署一個(gè)即可

2.2 創(chuàng)建ApolloConfigDB

通過各種MySQL客戶端導(dǎo)入apolloconfigdb.sql即可。

1.3.0版本開始為了支持Flyway,sql位置和命名從之前的scripts/sql/apolloconfigdb.sql改為了scripts/db/migration/configdb/V1.0.0__initialization.sql

導(dǎo)入成功后,可以通過執(zhí)行以下sql語句來驗(yàn)證:

select `Id`, `Key`, `Value`, `Comment` from `ApolloConfigDB`.`ServerConfig` limit 1;
Id Key Value Comment
1 eureka.service.url http://127.0.0.1:8080/eureka/ Eureka服務(wù)Url

注:ApolloConfigDB需要在每個(gè)環(huán)境部署一套,如環(huán)境1、環(huán)境2和環(huán)境3分別部署3套ApolloConfigDB

3.通過源碼構(gòu)建安裝包

3.1 配置數(shù)據(jù)庫連接信息

Apollo服務(wù)端需要知道如何連接到你前面創(chuàng)建的數(shù)據(jù)庫,所以需要編輯scripts/build.sh,修改ApolloPortalDBApolloConfigDB相關(guān)的數(shù)據(jù)庫連接串信息。

#apollo config db info
apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
apollo_config_db_username=用戶名
apollo_config_db_password=密碼(如果沒有密碼,留空即可)

# apollo portal db info
apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?useSSL=false&characterEncoding=utf8
apollo_portal_db_username=用戶名
apollo_portal_db_password=密碼(如果沒有密碼,留空即可)

3.2 配置各環(huán)境meta service地址

Apollo Portal需要在不同的環(huán)境訪問不同的meta service(apollo-configservice)地址,所以需要在打包時(shí)提供這些信息,也是在scripts/build.bat中編輯。不需要的環(huán)境可以用::直接注釋掉。

set dev_meta="http://localhost:8080"
::set fat_meta="http://someIp:8080"![1569200742976.png](https://upload-images.jianshu.io/upload_images/17638643-aa065342c8b267a6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

::set uat_meta="http://anotherIp:8080"
set pro_meta="http://yetAnotherIp:8080"

3.3 執(zhí)行編譯、打包

做完上述配置后,就可以執(zhí)行scripts/build.bat編譯和打包了。

該腳本會(huì)依次打包apollo-configserviceapollo-adminservice,apollo-portal。

apollo-configservice安裝包

位于apollo-configservice/target/目錄下的apollo-configservice-x.x.x-github.zip

apollo-adminservice安裝包

位于apollo-adminservice/target/目錄下的apollo-adminservice-x.x.x-github.zip

apollo-portal安裝包

位于apollo-portal/target/目錄下的apollo-portal-x.x.x-github.zip

4.部署Apollo服務(wù)端

4.1 部署apollo-configservice

解壓安裝包后執(zhí)行scripts/startup.sh即可。如需停止服務(wù),執(zhí)行scripts/shutdown.sh。

注1:如要調(diào)整服務(wù)的日志輸出路徑,可以修改scripts/startup.shapollo-adminservice.conf中的LOG_DIR。

注2:如要調(diào)整服務(wù)的監(jiān)聽端口,可以修改scripts/startup.sh中的SERVER_PORT。

4.2 部署apollo-adminservice

解壓安裝包后執(zhí)行scripts/startup.sh即可。如需停止服務(wù),執(zhí)行scripts/shutdown.sh.

注1:如要調(diào)整服務(wù)的日志輸出路徑,可以修改scripts/startup.shapollo-adminservice.conf中的LOG_DIR。

注2:如要調(diào)整服務(wù)的監(jiān)聽端口,可以修改scripts/startup.sh中的SERVER_PORT。

4.3 部署apollo-portal

解壓安裝包后執(zhí)行scripts/startup.sh即可。如需停止服務(wù),執(zhí)行scripts/shutdown.sh.

注1:如要調(diào)整服務(wù)的日志輸出路徑,可以修改scripts/startup.shapollo-adminservice.conf中的LOG_DIR。

注2:如要調(diào)整服務(wù)的監(jiān)聽端口,可以修改scripts/startup.sh中的SERVER_PORT。

5.訪問登錄

全部啟動(dòng)后,默認(rèn)訪問地址:localhost:8070

假如有修改apollo-portal監(jiān)聽的端口,則需要訪問相對(duì)應(yīng)的端口號(hào)。

默認(rèn)賬號(hào)/密碼:apollo/admin

1569200742976.png

到這里,apollo的安裝部署就成功結(jié)束了。

最后編輯于
?著作權(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ù)。

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