apollo在liunx環境實戰(三)


1. apollo在liunx環境實戰(三)

1.1. 准備

  1. 下載apollo源碼 https://github.com/ctripcorp/apollo

1.2. 創建數據庫

  1. 在自己的liunx環境下的mysql運行它的創庫語句

1.3. 配置數據庫

  1. 其中環境列表配置,部門配置,請配置數據庫

  2. eureka地址配置

1.4. 構建三個服務configservice,adminservice,portal

  1. 它提供了兩種方式,一種不用自己定制的直接下載它已經打包好的zip包,地址如下

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

  1. 另一種就是自己打包源碼,我采用的自己打包源碼,優點就是可以保證代碼最新

1.4.1. 打包源碼

  1. 打包前

  2. 打包

  3. 我用的git bash模擬liunx運行sh的打包腳本,然后被坑了一把,不知道為什么,打包后對應的數據庫url地址就是沒有配進去,有知道原因和如何解決的麻煩告知一聲,Thanks♪(・ω・)ノ

  4. 我后來是直接手動打開壓縮包,把配置文件數據庫地址修改了一遍,然后覆蓋

1.5. 上傳服務器

  1. 把三個服務打包后的zip包上傳到服務器

  2. 我編寫了一點腳本啟動順手點

[root@izbp1itlw36onyj4m9b4hiz docker-apollo]# ls
adminservice  configservice  deleteAll.sh  portal
[root@izbp1itlw36onyj4m9b4hiz docker-apollo]# cd adminservice/
[root@izbp1itlw36onyj4m9b4hiz adminservice]# ls
apollo-adminservice-1.4.0-SNAPSHOT-github.zip  build.sh  Dockerfile  start.sh
[root@izbp1itlw36onyj4m9b4hiz adminservice]# cat build.sh 
#!/bin/bash
docker build -t apollo-adminservice .
[root@izbp1itlw36onyj4m9b4hiz adminservice]# cat start.sh 
#!/bin/bash
docker run -p 8090:8090 -d -v /tmp/logs:/opt/logs --name apollo-adminservice apollo-adminservice
[root@izbp1itlw36onyj4m9b4hiz adminservice]# cd ../configservice/
[root@izbp1itlw36onyj4m9b4hiz configservice]# ls
apollo-configservice-1.4.0-SNAPSHOT-github.zip  build.sh  Dockerfile  start.sh
[root@izbp1itlw36onyj4m9b4hiz configservice]# cat build.sh 
#!/bin/bash
docker build -t apollo-configservice .
[root@izbp1itlw36onyj4m9b4hiz configservice]# cat start.sh 
#!/bin/bash
docker run -p 8080:8080 -d -v /tmp/logs:/opt/logs --name apollo-configservice apollo-configservice
[root@izbp1itlw36onyj4m9b4hiz configservice]# cd ../portal/
[root@izbp1itlw36onyj4m9b4hiz portal]# ls
apollo-portal-1.4.0-SNAPSHOT-github.zip  build.sh  Dockerfile  start.sh
[root@izbp1itlw36onyj4m9b4hiz portal]# cat build.sh 
#!/bin/bash
docker build -t apollo-portal .
[root@izbp1itlw36onyj4m9b4hiz portal]# cat start.sh 
#!/bin/bash
docker run -p 8070:8070 -d -v /tmp/logs:/opt/logs --name apollo-portal apollo-portal
[root@izbp1itlw36onyj4m9b4hiz portal]# cd ..
[root@izbp1itlw36onyj4m9b4hiz docker-apollo]# cat deleteAll.sh 
#!/bin/bash
docker stop `docker ps -a | grep apollo-adminservice | awk '{print $1}'`&docker rm `docker ps -a | grep apollo-adminservice | awk '{print $1}'`&docker rmi `docker images | grep apollo-adminservice | awk '{print $3}'`

docker stop `docker ps -a | grep apollo-configservice | awk '{print $1}'`&docker rm `docker ps -a | grep apollo-configservice | awk '{print $1}'`&docker rmi `docker images | grep apollo-configservice | awk '{print $3}'`

docker stop `docker ps -a | grep apollo-portal | awk '{print $1}'`&docker rm `docker ps -a | grep apollo-portal | awk '{print $1}'`&docker rmi `docker images | grep apollo-portal | awk '{print $3}'`

  1. 最后的刪除腳本沒優化過,我用來一鍵刪除部署的三個docker容器的,刪除一次失敗隔個幾秒再刪,直到全部鏡像刪掉

1.6. 構建鏡像運行

  1. 基於1.4的腳本,先后運行configservice的build.sh,start.sh,再是adminserivce,portal

1.7. 測試

  1. 訪問服務器地址:8080,顯示了adminservice和configservice就正確了

  2. 訪問服務器地址:8070,顯示如下,我已經創建了兩個項目

  1. 創建新項目,進去后如下

1.8. 接入客戶端

  1. 仍舊以apollo提供的demo為例

1.8.1. 前置准備

  1. 在window中需要配置 C:\opt\settings\server.properties 該文件屬性,內容如下,模擬該客戶端環境,eureka地址
env=DEV
apollo.meta=http://ip:8080
  1. 修改客戶端app.properties中,app.id=你新建項目中配置的appid

1.8.2. 啟動客戶端

  1. 第一次啟動可能有些警告啥的,因為第一次沒有本地緩存讀不到,忽略它,只要你再界面配置了屬性,第一次啟動后就會有本地緩存了

  2. 控制台輸入屬性名回車,后台界面修改屬性提交,客戶端也能接收到改變,再次獲取,屬性值改變

Apollo Config Demo. Please input key to get the value. Input quit to exit.
> count
> [apollo-demo][main]2019-03-19 10:49:27,240 INFO  [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Loading key : count with value: 20
[apollo-demo][Apollo-Config-1]2019-03-19 11:33:50,330 INFO  [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Changes for namespace application
[apollo-demo][Apollo-Config-1]2019-03-19 11:33:50,334 INFO  [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Change - key: count, oldValue: 20, newValue: 30, changeType: MODIFIED
count
> [apollo-demo][main]2019-03-19 11:33:54,232 INFO  [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Loading key : count with value: 30


免責聲明!

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



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