環境:
PRO: Server1:172.16.2.16 服務: apollo-configservice | apollo-adminservice | applo-portal
FAT: Server2:172.16.2.17 服務: apollo-configservice | apollo-adminservice
UAT: Server3:172.16.2.18 服務: apollo-configservice | apollo-adminservice
每個環境都要部署獨立的mysql資料庫,不同的資料庫用于存放不同環境的同一個KEY的值。每台伺服器上都要configservice和adminservice。configservice用于資料的配置管理,adminservice用于和用戶端通訊,将key的值釋出到用戶端上
準備:
三台伺服器分别安裝JDK1.8,Maven3.5.0,Mysql5.7 Git1.7.1
安裝:configservice和adminservice,三台伺服器上都需要安裝
1
2
<code>cd</code> <code>/opt</code>
<code>git clone</code>
<a href="https://github.com/ctripcorp/apollo.git"></a>
修改build.sh腳本
Server1配置
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<code>###修改build.sh腳本,修改資料庫位址和賬号密碼。</code>
<code>vim </code><code>/opt/apollo/scripts/build</code><code>.sh</code>
<code>apollo_config_db_url=jdbc:mysql:</code><code>//127</code><code>.0.0.1:3306</code><code>/ApolloConfigDB</code><code>?characterEncoding=utf8</code>
<code>apollo_config_db_username=root</code>
<code>apollo_config_db_password=123456</code>
<code># apollo portal db info</code>
<code>apollo_portal_db_url=jdbc:mysql:</code><code>//127</code><code>.0.0.1:3306</code><code>/ApolloPortalDB</code><code>?characterEncoding=utf8</code>
<code>apollo_portal_db_username=root</code>
<code>apollo_portal_db_password=123456</code>
<code>##修改三個環境的apollo伺服器configservice位址</code>
<code># meta server url, different environments should have different meta server addresses</code>
<code>dev_meta=http:</code><code>//localhost</code><code>:8080</code>
<code>fat_meta=http:</code><code>//172</code><code>.16.0.17:8080</code>
<code>uat_meta=http:</code><code>//172</code><code>.16.0.18:8080</code>
<code>pro_meta=http:</code><code>//172</code><code>.16.0.16:8080</code>
注意:隻有部署了apollo-portal服務的伺服器上需要将所有環境的位址寫上去,其他環境的不用,比如
Server2的配置如下:
<code>fat_meta=http:</code><code>//172</code><code>.16.2.17:8080</code>
<code>uat_meta=http:</code><code>//anotherIp</code><code>:8080</code>
<code>pro_meta=http:</code><code>//yetAnotherIp</code><code>:8080</code>
Server3的配置如下:
<code>fat_meta=http:</code><code>//someIp</code><code>:8080</code>
<code>uat_meta=http:</code><code>//172</code><code>.16.2.18:8080</code>
apollo-portal是一個web控制台,用來做配置管理的。 服務是用來管理不同環境下的admin
apollo-configservice和apollo-adminservice:
需要把自己的IP和端口注冊到Meta Server(apollo-configservice本身)
1、修改apollo-adminservice或apollo-configservice 的bootstrap.yml檔案,加入以下配置
<code>eureka:</code>
<code> </code><code>instance:</code>
<code> </code><code>homePageUrl: http:</code><code>//</code><code>${指定的IP}:${指定的Port}</code>
<code> </code><code>preferIpAddress: </code><code>false</code>
Server1的apollo-configservice/src/main/resources/bootstrap.yml檔案配置:
<code> </code><code>home-page-url: http:</code><code>//172</code><code>.16.0.16:8080</code>
<code> </code><code>hostname</code><code>: ${</code><code>hostname</code><code>:localhost}</code>
<code> </code><code>preferIpAddress: </code><code>true</code>
Server1的apollo-adminservice/src/main/resources/bootstrap.yml檔案配置:
<code> </code><code>home-page-url: http:</code><code>//172</code><code>.16.0.16:8090</code>
Server2和Server3隻需要将上面兩個檔案的中home-page-url的位址改成自己的IP即可。
導入apolloconfigdb.sql檔案到資料庫,并修改Eureka服務Url的值
先登入到資料庫,然後執行
<code>source</code> <code>/opt/apollo/scripts/sql/apolloconfigdb</code><code>.sql;</code>
修改資料庫ApolloConfigDB中ServerConfig表Eureka服務Url的值
<code>use ApolloConfigDB;</code>
<code>show tables;</code>
<code>select</code> <code>* from ServerConfig;</code>
<code>update ServerConfig </code><code>set</code> <code>Value=</code><code>'http://172.16.2.16:8080/eureka/'</code> <code>where Id=1;</code>
以上操作三台伺服器上都要做,Eureka服務Url的值的改成各自的IP位址
Server1上導入apolloportaldb.sql 檔案到資料庫,并修改部門
先登入到資料庫,然後執行:
<code>source</code> <code>/opt/apollo/scripts/sql/apolloportaldb</code><code>.sql;</code>
修改環境為pro,uat,fat
17
18
19
20
21
22
23
<code>use ApolloPortalDB;</code>
<code>mysql> show tables;</code>
<code>+--------------------------+</code>
<code>| Tables_in_ApolloPortalDB |</code>
<code>| App |</code>
<code>| AppNamespace |</code>
<code>| Authorities |</code>
<code>| Consumer |</code>
<code>| ConsumerAudit |</code>
<code>| ConsumerRole |</code>
<code>| ConsumerToken |</code>
<code>| Favorite |</code>
<code>| Permission |</code>
<code>| Role |</code>
<code>| RolePermission |</code>
<code>| ServerConfig |</code>
<code>| UserRole |</code>
<code>| Users |</code>
<code>14 rows </code><code>in</code> <code>set</code> <code>(0.00 sec)</code>
<code> </code><code>select</code> <code>* from ServerConfig;</code>
<code>update ServerConfig </code><code>set</code> <code>Value=</code><code>'fat,uat,pro'</code> <code>where Id=1;</code>
建構
分别在三台伺服器上執行./build.sh
将建構生成的壓縮包拷貝到/data/目錄下 解壓縮後,啟動服務
Server1
<code>cp</code> <code>/opt/apollo/apollo-configservice/target/apollo-configservice-0</code><code>.9.1-SNAPSHOT-github.zip </code><code>/data</code>
<code>cp</code> <code>/opt/apollo/apollo-adminservice/target/apollo-adminservice-0</code><code>.9.1-SNAPSHOT-github.zip </code><code>/data</code>
<code>cp</code> <code>/opt/apollo/apollo-portal/target/apollo-portal-0</code><code>.9.1-SNAPSHOT-github.zip </code><code>/data</code>
<code>cd</code> <code>/data</code>
<code>unzip apollo-adminservice-0.9.1-SNAPSHOT-github.zip -d apollo-adminservice</code>
<code>unzip apollo-configservice-0.9.1-SNAPSHOT-github.zip -d apollo-configservice</code>
<code>unzip apollo-portal-0.9.1-SNAPSHOT-github.zip -d apollo-portal</code>
建立log路徑, apollo三個服務日志路徑是固定的/opt/logs/下的100003171 100003172 100003173三個目錄100003173是portal服務的log目錄,是以不安裝portal服務的機器上不用建立該目錄
<code>mkdir</code> <code>-p </code><code>/opt/logs/</code><code>{100003171,100003172,100003173}</code>
修改權限為777
<code>chmod</code> <code>777 </code><code>/opt/logs/</code><code>*</code>
我的機器上由于/data目錄挂載的是資料盤,空間大,是以是将/opt/logs下的三個目錄軟連接配接到/data/logs/目錄下的
<code>ln</code> <code>-s </code><code>/data/logs/100003171</code> <code>/opt/logs/100003171</code>
<code>ln</code> <code>-s </code><code>/data/logs/100003172</code> <code>/opt/logs/100003172</code>
<code>ln</code> <code>-s </code><code>/data/logs/100003173</code> <code>/opt/logs/100003173</code>
修改portal服務啟動腳本中的服務端口,預設我8080,修改為8070,否則和configservice服務端口沖突。
然後分别啟動portal、configservice、adminservice服務。啟動腳本位于zip包加壓縮後的目錄下的scripts目錄下
<code>ll </code><code>/data/apollo-adminservice/scripts/</code>
<code>total 8</code>
<code>-rwxr-xr-x 1 root root 339 Dec 13 15:57 </code><code>shutdown</code><code>.sh</code>
<code>-rwxr-xr-x 1 root root 3906 Dec 13 15:57 startup.sh</code>
<code>ll </code><code>/data/apollo-configservice/scripts/</code>
<code>-rwxr-xr-x 1 root root 340 Dec 13 15:57 </code><code>shutdown</code><code>.sh</code>
<code>-rwxr-xr-x 1 root root 3907 Dec 13 15:57 startup.sh</code>
<code>ll </code><code>/data/apollo-portal/scripts/</code>
<code>-rwxr-xr-x 1 root root 333 Dec 13 15:57 </code><code>shutdown</code><code>.sh</code>
<code>-rwxr-xr-x 1 root root 3900 Dec 13 17:12 startup.sh</code>
本文轉自 曾哥最愛 51CTO部落格,原文連結:http://blog.51cto.com/zengestudy/2050628,如需轉載請自行聯系原作者