分布式配置中心
剝離配置文件,實現動態修改,自動更新。
【假設沒有分布式配置中心,修改配置文件后都需要重啟服務,對於數量龐多的微服務開發來說,就會非常繁瑣】
分布式配置中心有哪些
- disconf(依賴zookeeper)
- zookeeper
- diamond (阿里巴巴)
- Apollo
- Redis
- xxl-job
為什么選擇Apollo
Apollo除了功能完備之外,在國內的普及度也相當廣泛,也就意味着國內Apollo的生態非常活躍。雖然中國式過馬路的行為並不提倡,但群眾的眼睛有時還是雪亮的。
實戰
環境准備:
- 阿里雲CentOS7.6
- jdk1.8
安裝jdk1.8
yum search jdk
yum install java-1.8.0-openjdk.x86_64(可選)
java -version
安裝MySQL
- 配置yum源
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
yum localinstall mysql57-community-release-el7-8.noarch.rpm
- 安裝mysql
yum install mysql-community-server
- 啟動mysql
systemctl start mysqld
systemctl restart mysqld
- 查看啟動狀態:
systemctl status mysqld
- 設置開機自啟
systemctl enable mysqld
systemctl daemon-reload
- 查看默認生成密碼
grep 'temporary password' /var/log/mysqld.log
- 登錄修改密碼
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NoPassword564925080!';
mysql5.7默認安裝了密碼安全檢查插件(validate_password),默認密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,並且長度不能少於8位。否則會提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements錯誤.
- 授權遠程登錄用戶
GRANT ALL PRIVILEGES ON *.* TO 'userhq'@'%' IDENTIFIED BY 'NoPassword564925080!' WITH GRANT OPTION;
flush privileges;
開放3306端口:
使用SQLyog遠程連接:
下載安裝包
https://github.com/ctripcorp/apollo/wiki/Quick-Start
推薦用百度網盤加速器下載:http://pandownload.com/
按照文檔創建數據庫
文檔:https://github.com/ctripcorp/apollo/wiki/Quick-Start
- ApolloPortalDB
- ApolloConfigDB
- 導入SQL語句
配置數據庫連接信息,修改demo.sh
服務器IP或者虛擬機IP,另外就是用戶名和密碼
將修改好的文件夾上傳到服務器
運行demo.sh腳本
./demo.sh start
如果無法運行可能是因為沒有添加可執行權限:
chmod +x demo.sh
如果啟動失敗,可以嘗試將數據庫連接的用戶名密碼改為授權遠程登錄的用戶密碼。比如上文的userhq。
開啟服務器8070端口:
默認用戶名為apollo
密碼為admin
SUCCESS