攜程apollo系列-個人開發環境搭建


本博客講詳細講解如何在 Windows 搭建攜程 Apollo 服務器 (用戶個人開發). 開發服務器有多種搭建方式:
(1) docker, 搭建過程非常簡單, 推薦有 docker 環境
(2) 部署 Quick start 發行版, 本文采用 Quick start 版部署.


============================
Windows 服務器環境准備
============================
------------------------------
bash 運行環境
------------------------------
Apollo 官方僅提供了一個 bash 腳本啟動文件, 所以需要 Windows 下可以執行 bash 腳本, 推薦安裝 Git bash 軟件包, 官方下載網址為 https://git-for-windows.github.io/, 國內鏡像下載網址為 https://github.com/waylau/git-for-win/


------------------------------
Java
------------------------------
Apollo 服務器需要 Jdk8+, Apollo 客戶端需要 Jdk7+. 這里安裝的是 Jdk8, 如果安裝全路徑中包括空格, 后面啟動 apollo 會有問題, 當然我們也沒有必要重新安裝, 只需要將安裝好的 jdk 文件夾復制一份到沒有空格的目錄下, 比如復制到 D:\my_program\jdk1.8.0_144\


------------------------------
MySQL
------------------------------
Apollo 后台數據庫是 MySQL, 官網要求安裝 5.6.5 以上版本, 我裝的是 5.7


------------------------------
下載 Quick Start 安裝包
------------------------------
下載網址 https://github.com/ctripcorp/apollo/wiki/Quick-Start
並解壓到 D:\my_program\apollo-quick-start 目錄下.


============================
部署過程
============================
------------------------------
創建數據庫
------------------------------
apollo 后台需要兩個數據庫, 一個是配置服務用的, 另一個是 portal 用的, 手工執行下面的 SQL 監本創建這兩個數據庫. sql 腳本為:
1. apollo-quick-start\sql\apolloconfigdb.sql
2. apollo-quick-start\sql\apolloportaldb.sql


------------------------------
demo.sh 文件修改數據庫配置
------------------------------
Quick start 發行版的數據庫配置信息在 demo.sh 文件中, 修改 MySQL 的用戶和密碼即可.

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

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


------------------------------
demo.sh 文件的其他補丁
------------------------------
quick-start 版的啟動腳本 demo.sh 在 Windows 下運行會有一些問題, 需要修改.
1. 在設置 BASE_JAVA_OPTS 之前, 增加 JAVA_HOME 環境變量的設置.
JAVA_HOME="D://my_program/jdk1.8.0_144"

2. 修改工作目錄
原來為 cd "${0%/*}"
修改為 cd D://my_program/apollo-quick-start

3. 注釋掉 java 版本檢查的 if 語句塊:

  #if [[ "$version" < "1.8" ]]; then
  #    echo "Java version is $version, please make sure java 1.8+ is in the path"
  #    exit 1
  #fi


4. 減少內存開銷, 修改 JAVA_OPTS 內存分配
原來為: BASE_JAVA_OPTS="-Denv=dev"
修改為: BASE_JAVA_OPTS="-Xms256m -Xmx256m -Denv=dev"


------------------------------
啟動
------------------------------
cd D:\my_program\apollo-quick-start
d:\my_program\Git\bin\bash.exe demo.sh start


============================
驗證和使用
============================
portal_url=http://localhost:8070
config_server_url=http://localhost:8080
admin_server_url=http://localhost:8090

meta server 和 config service 和 eureka_service 是部署在同一個 JVM 進程,所以 meta server 的地址就是 config service 的地址.
eureka_service_url 的路徑為: eureka_service_url=$config_server_url/eureka/

http://localhost:8080
輸入用戶名 apollo,密碼 admin 后登錄. 該用戶是一個超級管理員.


============================
基本配置
============================
1. 添加用戶
portal 上有管理用戶的界面.

2. 添加超級管理員
需要在 portal DB 中執行下面的 SQL,
select value,t.* from ApolloPortalDB.ServerConfig t
where `key`='superAdmin'
value 字段, 以逗號分割多個 username .

3. 添加部門
需要在 portal DB 中執行下面的 SQL,
select value,t.* from ApolloPortalDB.ServerConfig t
where `key`='organizations'

value 的樣式是,
[{"orgId":"TEST1","orgName":"樣例部門 1"},{"orgId":"TEST2","orgName":"樣例部門 2"}]
apollo 中的部門和用戶沒有什么直接聯系, 部門僅僅是一個顯示項而已.


============================
參考
============================

官方Quick start 文檔
https://github.com/ctripcorp/apollo/wiki/Quick-Start
如何編排和部署容器化的Apollo服務
http://ghoulich.xninja.org/2018/04/25/how-to-build-and-deploy-containerized-apollo-service/
如何編譯安裝Apollo服務器(單機版)
http://ghoulich.xninja.org/2018/04/24/how-to-build-and-install-apollo-in-standalone-mode/

 

==========================================
Apollo 總體架構和官方文檔
==========================================
https://www.infoq.cn/article/open-source-configuration-center-apollo
http://www.infoq.com/cn/articles/ctrip-apollo-configuration-center-architecture
https://nobodyiam.com/2018/07/29/configuration-center-makes-microservices-smart/
https://github.com/ctripcorp/apollo/wiki


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM