码迷,mamicode.com
首页 > 其他好文 > 详细

Apollo配置中心解惑(一):关于一个portal管理多个环境,要求环境相互之间不影响,独立

时间:2018-04-24 01:15:07      阅读:2986      评论:0      收藏:0      [点我收藏+]

标签:ima   style   作用   支持   独立   开发   start   高可用   url   

关于作者的回答很官方,不太懂:

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服务,这个有空验证下,也希望感兴趣的朋友验证下?

 

 

 

 

 

Apollo配置中心解惑(一):关于一个portal管理多个环境,要求环境相互之间不影响,独立

标签:ima   style   作用   支持   独立   开发   start   高可用   url   

原文地址:https://www.cnblogs.com/xiaohouzai/p/8923463.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!