[TOC]node
官方的文檔坑比較多,在這裏記錄一下mysql
從github上克隆源碼到本機,項目結構以下圖1所示:git
<div align=center>github
<center>圖1</center>spring
<div align=left>sql
部署單節點或集羣,只關心3個工程:數據庫
#!/bin/bash ## 修改日誌存放目錄和服務端口 SERVICE_NAME=apollo-configservice ## 日誌目錄,建議修改在啓動apollo服務的用戶目錄下,避免使用超級用戶啓動服務 LOG_DIR=/home/sharing/apollo_node_1/logs/ ## 服務端口 SERVER_PORT=8080 ... ...
## 若是apollo部署在雲上或者多網卡的機器上,則必須執行erueka實例的地址(即configserver的地址/eureka) ## 當部署在雲上的時候,因爲沒有隻有內網網卡,會致使configserver註冊到eureka的地址的爲內網ip,致使客戶端(應用程序)鏈接失敗,沒法使用 ## 當部署在多網卡上的時候,因爲有多個網卡的存在,而configserver默認獲取第一個合法的ip,這個ip不必定是外網能訪問的ip,一樣會致使客戶端鏈接失敗 ## 多網卡的狀況下,能夠在spring cloud配置要忽略的網卡名稱,具體參考Spring Cloud的文檔 ## 因此建議指定erueka的實例地址 ########### The following is the same for configservice, adminservice, portal ########### export JAVA_OPTS="$JAVA_OPTS -XX:+UseParNewGC -XX:ParallelGCThreads=4 ... export JAVA_OPTS="$JAVA_OPTS -Dserver.port=$SERVER_PORT
添加eureka實例的地址:windows
########### The following is the same for configservice, adminservice, portal ########### export JAVA_OPTS="$JAVA_OPTS -XX:+UseParNewGC -XX:ParallelGCThreads=4 ... export JAVA_OPTS="$JAVA_OPTS -Deureka.instance.ip-address=你的外網IP -Deureka.instance.prefer-ip-address=true -Dserver.port=$SERVER_PORT ...
apollo-adminservice: 同上bash
apollo-portal: 同上服務器
修改構建腳本 構建腳本路徑:/apollo/scripts/build.sh或/apollo/scripts/build.bat 分別修改 config db 和 portal db 的數據庫鏈接信息,以及多個meta server(即configService)的地址:
#!/bin/sh # apollo config db info apollo_config_db_url=jdbc:mysql://IP:PORT/ApolloConfigDB?characterEncoding=utf8 apollo_config_db_username=username apollo_config_db_password=password # apollo portal db info apollo_portal_db_url=jdbc:mysql://IP:PORT/ApolloPortalDB?characterEncoding=utf8 apollo_portal_db_username=username apollo_portal_db_password=password # meta server url, different environments should have different meta server addresses ## 開發環境 dev_meta=http://IP1:PORT1,IP2:PORT2 ## 測試環境 fat_meta=http://IP:PORT ## BETA環境 uat_meta=... ## 生產環境 pro_meta=...
,
隔開。執行上述修改後的build.sh(windows執行build.bat),以後會在各自模塊的target文件夾下生成zip壓縮包,複製到服務器上,解壓並執行scripts目錄下的startup.sh,啓動順序:configService -> adminService -> portal,等待啓動完成後,打開portal頁面便可以管理配置信息。 默認的初始管理員帳戶和密碼:apollo/admin
從這裏下載
解壓文件,修改apollo-configservice、apollo-adminservice和apollo-portal的config目錄下的application-github.properties,添加數據庫配置信息和eureka實例ip(portal無需註冊到服務)等。
修改apollo-portal的config目錄下的app.properties,填寫dev、fat、uat以及pro的meta server地址。
導入兩個sql文件建庫
apolloportaldb.sql apolloconfigdb.sql 修改ApolloConfigDB的ServerConfig表,Key爲 eureka.service.url的Value字段,更新爲你的eureka實例地址,如http://1.1.1.1:8080/eureka/,即同configService的ip和端口。多個節點,地址用
,
隔開。
參考apollo的官方的部署架構圖:
<div align=center>
圖2
圖3
<div align=left>
,
隔開,不然configService和adminService不能註冊到eureka。<div align=center>
圖4
<div align=left> 同一個環境的多個節點應該分別部署在不一樣的機器,實現多活。
注意:端口和日誌路徑默認在startup腳本里面有配置,因爲apollo服務是基於SpringBoot的,system properties的入參優先級最高,因此須要修改startup的配置纔會生效。或者刪除startup裏面關於日誌路徑和端口的配置,就可使外部的端口和日誌路徑配置生效。
步驟總結:
,
隔開)。其餘總結: