Apollo配置中心解惑(一):關於一個portal管理多個環境,要求環境相互之間不影響,獨立


關於作者的回答很官方,不太懂:

https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97#2131-%E8%B0%83%E6%95%B4apolloportaldb%E9%85%8D%E7%BD%AE

 

 

 

需要注意的是ApolloPortalDB只需要在生產環境部署一個即可,而ApolloConfigDB需要在每個環境部署一套,如fat、uat和pro分別部署3套ApolloConfigDB

2.1.3.1 調整ApolloPortalDB配置

配置項統一存儲在ApolloPortalDB.ServerConfig表中。

1.apollo.portal.envs - 可支持的環境列表

默認值是dev,如果portal需要管理多個環境的話,以逗號分隔即可(大小寫不敏感),如:

DEV,FAT,UAT,PRO

注1:只在數據庫添加環境是不起作用的,需要配合修改scripts/build.sh,,然后執行即可,添加新增環境對應的meta server地址。具體參考:2.3 配置各環境meta service地

  

rem apollo config db info
set apollo_config_db_url="jdbc:mysql://127.0.0.1:3306/ApolloConfigDB?characterEncoding=utf8"
set apollo_config_db_username="root"
set apollo_config_db_password="root"

rem apollo portal db info
set apollo_portal_db_url="jdbc:mysql://127.0.0.1:3306/ApolloPortalDB?characterEncoding=utf8"
set apollo_portal_db_username="root"
set apollo_portal_db_password="root"

rem meta server url, different environments should have different meta server addresses
set dev_meta="http://127.0.0.1:8080"
set fat_meta="http://127.0.0.1:8080"
set uat_meta="http://127.0.0.1:8080"
set pro_meta="http://127.0.0.1:8080"

 

注2:一套Portal可以管理多個環境,但是每個環境都需要獨立部署一套Config Service、Admin Service和ApolloConfigDB

 

(執行每套的時候需要在application的program argsments中輸入:-Dpro_meta=%pro_meta% --server.port=8091) ,前面一個指定環境,后一個指定運行端口。

 

注3:如果希望添加自定義的環境名稱,具體步驟可以參考部署&開發遇到的常見問題#42-添加自定義的環境

 

 

 

===========================================================================================

 

 

配置項統一存儲在ApolloConfigDB.ServerConfig表中,需要注意每個環境的ApolloConfigDB.ServerConfig都需要單獨配置。

(要是運行四個環境需要復制三份apolloConfigDB數據庫,並修改對應的eureka.service.url地址,最好建立兩個,高可用。

1.eureka.service.url - Eureka服務Url

不管是apollo-configservice還是apollo-adminservice都需要向eureka服務注冊,所以需要配置eureka服務地址。 按照目前的實現,apollo-configservice本身就是一個eureka服務,所以只需要填入apollo-configservice的地址即可,如有多個,用逗號分隔(注意不要忘了/eureka/后綴)。

需要注意的是每個環境只填入自己環境的eureka服務地址,比如FAT的apollo-configservice是1.1.1.1:8080和2.2.2.2:8080,UAT的apollo-configservice是3.3.3.3:8080和4.4.4.4:8080,PRO的apollo-configservice是5.5.5.5:8080和6.6.6.6:8080,那么:

  1. 在FAT環境的ApolloConfigDB.ServerConfig表中設置eureka.service.url為:
http://1.1.1.1:8080/eureka/,http://2.2.2.2:8080/eureka/
  1. 在UAT環境的ApolloConfigDB.ServerConfig表中設置eureka.service.url為:
http://3.3.3.3:8080/eureka/,http://4.4.4.4:8080/eureka/
  1. 在PRO環境的ApolloConfigDB.ServerConfig表中設置eureka.service.url為:
http://5.5.5.5:8080/eureka/,http://6.6.6.6:8080/eureka/

注1:這里需要填寫本環境中全部的eureka服務地址,因為eureka需要互相復制注冊信息

注2:如果希望將Config Service和Admin Service注冊到公司統一的Eureka上,可以參考部署&開發遇到的常見問題 - 將Config Service和Admin Service注冊到單獨的Eureka Server上章節

 

問題如下:

  我運行了兩套環境,在同一個eureka服務集群環境下,數據庫不同,但是修改了其中一個的配置,另外一個環境會同步修改的配置,但是需要自己手動點發布才能生效,如果管理員不點擊的話,那就相當於是兩套不同的配置了吧?麻煩懂的哥們分享下????

 

   按照作者的說法我要是運行四個環境,並且要獨立,那就是需要八個eureka服務,這個有空驗證下,也希望感興趣的朋友驗證下?

 

 

 

 

 


免責聲明!

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



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