1. 程式人生 > 實用技巧 >Apollo配置中心搭建過程

Apollo配置中心搭建過程

Apollo搭建

官網GitHub地址:

https://github.com/ctripcorp/apollo

原始碼下載地址:

https://github.com/ctripcorp/apollo/releases

選擇版本進行下載:
https://github.com/ctripcorp/apollo/releases/download/v1.7.1/apollo-adminservice-1.7.1-github.zip
https://github.com/ctripcorp/apollo/releases/download/v1.7.1/apollo-configservice-1.7.1-github.zip
https://github.com/ctripcorp/apollo/releases/download/v1.7.1/apollo-portal-1.7.1-github.zip

主要元件說明:

adminservice、configservice、portal等

configservice

提供配置獲取介面
提供配置更新推送介面(基於Http long polling)
服務端使用 Spring DeferredResult實現非同步化,從而大大增加長連線數量
目前使用的tomcat embed預設配置是最多10000個連線
介面服務物件為Apollo客戶端

adminservice

提供配置管理介面
提供配置修改、釋出等介面
介面服務物件為Portal

Portal

提供Web介面供使用者管理配置
通過Meta Server獲取Admin Service服務列表(IP+Port),通過IP+Port訪問服務
在Portal側做load balance、錯誤重試

安裝

確保主機的JAVA、maven環境

配置MySQL資料庫

# 下載官網的sql指令碼
wget https://raw.githubusercontent.com/ctripcorp/apollo/master/scripts/sql/apolloconfigdb.sql
wget https://raw.githubusercontent.com/ctripcorp/apollo/master/scripts/sql/apolloportaldb.sql
[root@localhost]# mysql -uroot -p
Enter password: 
mysql> source apolloconfigdb.sql
Query OK, 0 rows affected (0.00 sec)
.........................
mysql> source apolloportaldb.sql
Query OK, 0 rows affected (0.00 sec)
.........................
mysql> flush privileges;
ok
mysql> show databases
    -> ;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| ApolloConfigDB     |
| ApolloPortalDB     |
| mysql              |
| performance_schema |
| sonar              |
| sys                |
+--------------------+
7 rows in set (0.00 sec)
mysql> quit
Bye

解壓軟體包

unzip apollo-adminservice-1.7.1-github.zip
unzip apollo-configservice-1.7.1-github.zip
unzip apollo-portal-1.7.1-github.zip

修改各元件的application.properties

注:在configservice元件中application.properties配置的資料庫連線地址中的庫為ApolloConfigDB,否則服務報錯。
注:在adminservice元件中配置的資料庫連線地址中的庫為ApolloConfigDB,否則服務報錯。
注:在protal中配置的資料庫連線地址中的庫必須為ApolloPortalDB,否則服務報錯。

vim 解壓後文件夾/config/application-github.properties
# DataSource
spring.datasource.url = jdbc:mysql://mysql主機IP:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 123

修改protal元件的apollo-env.properties

local.meta=http://localhost:8080
dev.meta=http://localhost: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

啟動&停止

按順序執行各元件資料夾下的config/scripts下的啟動、停止指令碼即可start.sh/shutdown.sh

configservice-->adminservice-->protal

[root@cka-m2 apollo]# ./config/scripts/startup.sh 
Mon Aug 24 03:51:59 EDT 2020 ==== Starting ==== 
Started [6567]
Waiting for server startup.....
Mon Aug 24 03:52:25 EDT 2020 Server started in 25 seconds!

[root@cka-m2 apollo]# ./admin/scripts/startup.sh 
Mon Aug 24 03:53:26 EDT 2020 ==== Starting ==== 
Already running [6831]
Waiting for server startup.....
Mon Aug 24 03:53:52 EDT 2020 Server started in 25 seconds!

[root@cka-m2 apollo]# ./portal/scripts/startup.sh 
Mon Aug 24 03:54:03 EDT 2020 ==== Starting ==== 
Started [7086]
Waiting for server startup......
Mon Aug 24 03:54:34 EDT 2020 Server started in 30 seconds!


預設埠:
configservice --> 8080
adminservice --> 8090
protal --> 8070

[root@cka-m2 apollo]# ss -tnl
State      Recv-Q Send-Q                      Local Address:Port                                     Peer Address:Port              
LISTEN     0      128                                     *:22                                                  *:*                  
LISTEN     0      100                             127.0.0.1:25                                                  *:*                  
LISTEN     0      128                                    :::8080                                               :::*                  
LISTEN     0      128                                    :::22                                                 :::*                  
LISTEN     0      100                                   ::1:25                                                 :::*                  
LISTEN     0      128                                    :::8090                                               :::*                  
LISTEN     0      128                                    :::8070                                               :::*                  
LISTEN     0      80                                     :::3306                                               :::*               

訪問