搭建apollo高可用分布式配置中心(自定義環境)
下載apollo源碼包和jar包
https://github.com/ctripcorp/apollo/releases
這個是快速安裝包 (單機環境)
https://github.com/ctripcorp/apollo/wiki/Quick-Start
需求:搭建apollo一共五個環境 三個自定義環境 分布式 高可用
分別是
DEV 開發環境
DAILY 測試環境
PRE 預發環境
BETA 灰度環境
PROD 生產環境
自定義環境列表可以參考這個 需要下載源碼包改代碼
需要先安裝 idea和mvn然后配置倉庫等
需要添加的代碼有四處
1

2

3

4

按照上面參考改完后直接運行源碼里的build.sh

打包好后找到源碼包里的這三個文件



可以在這里改也可以傳到服務器里改配置 看自己喜好
服務器環節
[root@localhost ~]# yum install glibc.i686
[root@localhost ~]# tar zxvf jdk-8u221-linux-i586.tar.gz
[root@localhost ~]# mv jdk1.8.0_221/ /usr/local/java
[root@localhost ~]# vi /etc/profile
JAVA_HOME=/usr/local/java/
JAVA_BIN=/usr/local/java/bin
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/sbin:/bin
CLASSPATH=.:/lib/dt.jar:/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
[root@localhost ~]# source /etc/profile
[root@localhost ~]# ln -s /usr/local/java/bin/* /usr/local/bin/
[root@localhost ~]# java –version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) Client VM (build 25.221-b11, mixed mode)
測試環境為了方便,使用yum安裝數據庫
[root@localhost ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
[root@localhost ~]# rpm -ivh mysql57-community-release-el7-8.noarch.rpm
[root@localhost ~]# yum -y install mysql-server
[root@localhost ~]# vi /etc/my.cnf
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server = utf8
collation-server = utf8_unicode_ci
skip-character-set-client-handshake
transaction-isolation = READ-COMMITTED
[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log
2019-07-05T02:13:24.902657Z 1 [Note] A temporary password is generated for root@localhost: /w6mAIS+SWp+ 最后面有一個隨機密碼
[root@localhost ~]# mysql -uroot –p
Enter password: 復制密碼到這里
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'pwd@123123A';
現在可以跑apollo了 首先修改sql文件然后導入
修改apolloportaldb.sql中的 ServerConfig
1 apollo.portal.envs dev,daily,pre,beta,pro 可支持的環境列表 0 default 2019-07-27 09:35:33 2019-07-27 09:37:01
2 organizations [{"orgId":"TEST1","orgName":"開發一組"},{"orgId":"TEST2","orgName":"開發二組"},{"orgId":"TEST3","orgName":"開發三組"},{"orgId":"TEST4","orgName":"測試組"},{"orgId":"TEST5","orgName":"前端組"},{"orgId":"TEST6","orgName":"后端組"},{"orgId":"TEST7","orgName":"運維組"}] 部門列表 0 default 2019-07-27 09:35:33 apollo 2019-07-27 12:12:16

如果一個服務器配置多個環境需要改apolloconfigdb.sql數據庫表ServerConfig
1 eureka.service.url default http://localhost:8080/eureka/ Eureka服務Url,多個service以英文逗號分隔,修改ip和端口
建議使用Navicat Premium
進入數據庫給root授權任何地方可以登陸
grant all on *.* to 'root'@'%' identified by'pwd@123123A';
flush privileges;
exit
管理端導入apolloportaldb
進入數據庫輸入命令 source apolloportaldb.sql;
其他環境導入apolloconfigdb.sql
進入數據庫輸入命令source apolloconfigdb.sql;
數據庫配置完畢
導入apollo文件 到linux服務器
[root@yy ~]#mkdir /usr/local/Apollo
[root@yy ~]# cd /usr/local/apollo/
管理端使用工具導入apollo-portal-1.4.0-github下的文件
[root@yy apollo]# ls
apollo-portal-1.4.0.jar apollo-portal-1.4.0-sources.jar apollo-portal.conf config
scripts
然后修改配置文件
首先修改數據庫連接文件
[root@yy apollo]# vi config/application-github.properties
# DataSource
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/apolloportaldb?characterEncoding=utf8
#數據庫連接地址端口等
spring.datasource.username = root
#數據庫連接用戶
spring.datasource.password = pwd@123123A
#數據庫連接密碼
:wq
再修改分布式配置文件
[root@yy apollo]# vi config/apollo-env.properties
local.meta=http://localhost:8080
dev.meta=http://fill-in-dev-meta-server:8080
daily.meta=http://192.168.163.201:8080
pre.meta=${pre_meta}
beta.meta=http://192.168.163.200:8080
fat.meta=http://fill-in-fat-meta-server:8080
uat.meta=http://fill-in-uat-meta-server:8080
lpt.meta=${lpt_meta}
pro.meta=http://fill-in-pro-meta-server:8080
管理端完成
配置各個環境的apollo
[root@localhost ~]# mkdir /usr/local/apollo
[root@localhost ~]# cd /usr/local/apollo/
[root@localhost apollo]# mkdir conf
[root@localhost apollo]# mkdir admin
[root@localhost apollo]# ls
admin conf
[root@localhost apollo]# cd conf/
導入文件夾apollo-configservice-1.4.0-github 下的文件
[root@localhost conf]# pwd
/usr/local/apollo/conf
[root@localhost conf]# ls
apollo-configservice-1.4.0.jar apollo-configservice-1.4.0-sources.jar apollo-configservice.conf config scripts
修改數據庫連接文件
[root@localhost conf]# vi config/application-github.properties
# DataSource
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/apolloconfigdb?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = pwd@123123A
:wq
[root@localhost apollo]# cd /usr/local/apollo/admin/
導入文件夾apollo-adminservice-1.4.0-github 下的文件
[root@localhost admin]# ls
apollo-adminservice-1.4.0.jar apollo-adminservice-1.4.0-sources.jar apollo-adminservice.conf config scripts
修改數據庫連接文件
[root@localhost admin]# vi config/application-github.properties
# DataSource
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/apolloconfigdb?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = pwd@123123A
:wq
多台環境配置一樣舉例一個
開啟服務
開啟環境服務器中的config 后再開啟admin 等待全部環境服務器都開啟后,再開啟管理端
[root@localhost ~]# chmod +x /usr/local/apollo/conf/scripts/startup.sh
[root@localhost ~]# /usr/local/apollo/conf/scripts/startup.sh start
Fri Jul 26 15:17:03 CST 2019 ==== Starting ====
Started [83655]
Waiting for server startup.....................
Fri Jul 26 15:18:55 CST 2019 Server started in 105 seconds!
啟動成功后啟動admin
[root@localhost ~]# chmod +x /usr/local/apollo/admin/scripts/startup.sh
[root@localhost ~]# /usr/local/apollo/admin/scripts/startup.sh start
Fri Jul 26 15:19:53 CST 2019 ==== Starting ====
Started [86239]
Waiting for server startup......................
Fri Jul 26 15:21:49 CST 2019 Server started in 110 seconds!
全部開啟后就可以開啟管理端了
[root@yy ~]# chmod +x /usr/local/apollo/scripts/startup.sh
[root@yy ~]# /usr/local/apollo/scripts/startup.sh start
Fri Jul 26 15:22:58 CST 2019 ==== Starting ====
Started [90851]
Waiting for server startup.............
Fri Jul 26 15:24:08 CST 2019 Server started in 65 seconds!

訪問 http://ip:8070 控制頁面

用戶名 :Apollo
密碼:admin
自定義環境列表生效

修改組或添加也可以在 管理員工具>系統參數里>key搜索 organizations

查看系統信息

現在就可以配置nginx代理然后給個域名 然后給寫備份腳本 然后投入使用


