apollo官網(wǎng)鏈接:https://www.apolloconfig.com/#/zh/README
Apollo組件簡(jiǎn)介
- Apollo Config Service 是一個(gè)分布式的配置中心,主要負(fù)責(zé)應(yīng)用的配置信息存儲(chǔ)、推送和管理。Config Service 支持多種存儲(chǔ)方式,例如本地文件系統(tǒng)、Git 存儲(chǔ)和數(shù)據(jù)庫(kù)存儲(chǔ)等,同時(shí)也提供基于輪詢和通知兩種方式的配置信息推送機(jī)制。配置中心的目的是讓一組應(yīng)用共享配置信息,并且應(yīng)用可以動(dòng)態(tài)讀取存儲(chǔ)在配置中心的配置信息。
- Apollo Admin Service 是一個(gè)管理后臺(tái)服務(wù),主要提供給管理人員使用,用于管理所有的 Apollo 配置。Admin Service 主要包含兩個(gè)功能:配置項(xiàng)的添加、修改、刪除等管理功能、以及對(duì)環(huán)境、集群和命名空間等對(duì)象進(jìn)行管理的功能。Admin Service 還提供了配置的發(fā)布和回滾功能,以及多種安全認(rèn)證和授權(quán)方式。
- Apollo Portal 是一個(gè)基于 Web 的管理界面,在客戶端上展示配置項(xiàng)的值、歷史,同時(shí)支持修改和發(fā)布。Portal 通過(guò)可視化的方式展示配置信息,讓用戶更加直觀地了解系統(tǒng)的配置情況,同時(shí)提供了一些實(shí)用的功能,例如基于角色的訪問(wèn)控制、灰度發(fā)布等。Portal 主要提供可視化的管理界面,可以看作是 Admin Service 和 Config Service 的前端界面。
數(shù)據(jù)庫(kù)安裝
官方建議使用MySQL5.7以上,點(diǎn)擊查看安裝方法
查看鏈接:數(shù)據(jù)庫(kù)安裝
jdk安裝
官網(wǎng)要求jdk版本為1.8+,本次安裝采用jdk11,可在jdk官網(wǎng)自行尋找所需版本:https://www.oracle.com/java/technologies/java-se-glance.html
下載好所需的版本號(hào),將壓縮包傳到服務(wù)器,本次下載的包為jdk-11.0.6_linux-x64_bin.tar.gz
解壓目錄
tar -xvf jdk-11.0.6_linux-x64_bin.tar.gz
mv jdk-11.0.6 /usr/local/jdk11.0.6
配置環(huán)境變量
# 編輯配置文件
vim /etc/profile
# 新增以下配置
#java
export JAVA_HOME=/usr/local/jdk11.0.6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
生效操作
source /etc/profile
檢查安裝
# 檢驗(yàn)安裝,表示安裝成功
java -version
# 輸出以下結(jié)果
java version "11.0.6" 2020-01-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.6+8-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.6+8-LTS, mixed mode)
數(shù)據(jù)庫(kù)初始化
本次安裝采用2.0.1版本
自行下載sql初始化腳本,該鏈接下有兩個(gè)sql,分別是apolloportaldb.sql以及apolloconfigdb.sql,路徑鏈接如下
https://github.com/apolloconfig/apollo/tree/v2.0.1/scripts/sql
連接數(shù)據(jù)庫(kù)導(dǎo)入sql文件,也可以使用navicat等軟件導(dǎo)入
# 登錄數(shù)據(jù)庫(kù)
mysql -uroot -p
# 登錄成功后導(dǎo)入sql
source /your_local_path/scripts/sql/apolloportaldb.sql
source /your_local_path/scripts/sql/apolloconfigdb.sql
驗(yàn)證,此命令會(huì)輸出支持的環(huán)境列表
select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` limit 1;
導(dǎo)入完成后的數(shù)據(jù)庫(kù)如下圖所示

安裝Apollo
分別下載三個(gè)服務(wù)安裝包adminservice configservice portal
# 創(chuàng)建各個(gè)服務(wù)目錄
mkdir -vp /usr/local/apollo/{apollo-adminservice,apollo-configservie,apollo-portal} && cd /usr/local/apollo
# 下載服務(wù)安裝包
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-adminservice-2.0.1-github.zip apollo-adminservice
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-configservice-2.0.1-github.zip apollo-configservice
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-portal-2.0.1-github.zip apollo-portal
分別解壓安裝包
# 安裝解壓命令
yum install unzip -y
# 開(kāi)始解壓
unzip apollo-adminservice-2.0.1-github.zip
unzip apollo-configservice-2.0.1-github.zip
unzip apollo-portal-2.0.1-github.zip
配置apollo-adminservice
進(jìn)入目錄
cd apollo-adminservice/config
編輯配置文件
vim application-github.properties
# 配置數(shù)據(jù)庫(kù)信息,按實(shí)際填入自己的數(shù)據(jù)庫(kù)鏈接地址以及認(rèn)證信息
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd
配置apollo-configservice
進(jìn)入目錄
cd apollo-configservie/config
編輯配置文件
vim application-github.properties
# 配置數(shù)據(jù)庫(kù)信息,按實(shí)際填入自己的數(shù)據(jù)庫(kù)鏈接地址以及認(rèn)證信息
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd
配置apollo-portal
進(jìn)入目錄
cd apollo-portal/config
編輯配置文件
vim application-github.properties
# 配置數(shù)據(jù)庫(kù)信息,按實(shí)際填入自己的數(shù)據(jù)庫(kù)鏈接地址以及認(rèn)證信息
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd
配置apollo-portal的meta service信息
vim apollo-env.properties
# 假設(shè)DEV的apollo-configservice未綁定域名,地址是1.1.1.1:8080,F(xiàn)AT的apollo-configservice綁定了域名apollo.fat.xxx.com,UAT的apollo-configservice綁定了域名apollo.uat.xxx.com,PRO的apollo-configservice綁定了域名apollo.xxx.com,那么可以如下修改各環(huán)境meta service服務(wù)地址,格式為${env}.meta=http://${config-service-url:port},如果某個(gè)環(huán)境不需要,也可以直接刪除對(duì)應(yīng)的配置項(xiàng)
dev.meta=http://1.1.1.1:8080
fat.meta=http://apollo.fat.xxx.com
uat.meta=http://apollo.uat.xxx.com
pro.meta=http://apollo.xxx.com
此處環(huán)境dev、fat、uat、pro為apollo自帶的環(huán)境,可自行修改成適用于本地的環(huán)境,例如dev、test、beta、ga等,修改方式很簡(jiǎn)單,只需要修改數(shù)據(jù)庫(kù)信息,具體為ApolloPortalDB數(shù)據(jù)庫(kù)下面的ServerConfig表,修改該字段為自定義環(huán)境,如下圖所示

分別啟動(dòng)各個(gè)服務(wù)
啟動(dòng)方式很簡(jiǎn)單,分別執(zhí)行各個(gè)文件夾下的scripts目錄下的啟動(dòng)腳本,根據(jù)需要自定義jvm內(nèi)存
export JAVA_OPTS="-server -Xms2560m -Xmx2560m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=1024m -XX:MaxNewSize=1024m -XX:SurvivorRatio=22"
# 修改完成后執(zhí)行腳本
./startup.sh
查看啟動(dòng)情況
# 查看對(duì)應(yīng)端口啟動(dòng)情況
netstat -lntp
# 輸出如下。三個(gè)端口8070,8080,8090均已啟動(dòng)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 8940/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1138/master
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 7871/zabbix_agentd
tcp6 0 0 :::8080 :::* LISTEN 28825/java
tcp6 0 0 :::22 :::* LISTEN 8940/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1138/master
tcp6 0 0 :::8090 :::* LISTEN 28637/java
tcp6 0 0 :::10050 :::* LISTEN 7871/zabbix_agentd
tcp6 0 0 :::8070 :::* LISTEN 9141/java
tcp6 0 0 :::3306 :::* LISTEN 17678/mysqld
apollo portal接入ldap
portal支持接入ldap來(lái)作為統(tǒng)一用戶認(rèn)證,接入方法如下
創(chuàng)建配置文件
touch apollo-portal/config/application-ldap.yml
編輯配置文件
vim apollo-portal/config/application-ldap.yml
# 具體配置如下
spring:
ltest
base: "ou=test,dc=test,dc=com"
username: "cn=apollo,ou=test,dc=test,dc=com" # 配置管理員賬號(hào),用于搜索、匹配用戶
password: "test@123"
searchFilter: "(cn={0})" # 用戶過(guò)濾器,登錄的時(shí)候用這個(gè)過(guò)濾器來(lái)搜索用戶
urls:
- "ldap://192.168.0.1:389" # ldap服務(wù)器地址
ldap:
mapping: # 配置 ldap 屬性
objectClass: "inetOrgPerson" # ldap 用戶 objectClass 配置
loginId: "cn" # ldap 用戶惟一 id,用來(lái)作為登錄的 id
userDisplayName: "cn" # ldap 用戶名,用來(lái)作為顯示名
email: "mail" # ldap 郵箱屬性
修改啟動(dòng)腳本,修改scripts/startup.sh,指定spring.profiles.active為github,ldap
編輯啟動(dòng)腳本
vim apollo-portal/scripts/startup.sh
# 配置如下
SERVICE_NAME=apollo-portal
## Adjust log dir if necessary
LOG_DIR=/opt/logs/100003173
## Adjust server port if necessary
SERVER_PORT=8070
# 修改此行
export JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=github,ldap"
# 完成后重新啟動(dòng)portal使用ldap登錄即可
浙公網(wǎng)安備 33010602011771號(hào)