Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。
Apollo支持4个维度管理Key-Value格式的配置:
配置结构图为:
一、portal启动参数如下:
# meta server url
#由于我portal和dev环境在同一个node所以有下面的红色参数
#dev-start
config_server_url=http://192.168.1.8:8080
admin_server_url=http://192.168.1.8:8090
eureka_service_url=$config_server_url/eureka/
#dev-end
portal_url=http://192.168.1.8:8070
#dev_meta
dev_meta=http://192.168.1.8:8080
#uat_meta
uat_meta=http://192.168.1.9:8080
#prod_meta
pro_meta=http://172.20.201.151:8080
# JAVA OPTS
BASE_JAVA_OPTS=”-Denv=dev”
CLIENT_JAVA_OPTS=”$BASE_JAVA_OPTS -Dapollo.meta=$config_server_url”
SERVER_JAVA_OPTS=”$BASE_JAVA_OPTS -Dspring.profiles.active=github -Deureka.service.url=$eureka_service_url”
PORTAL_JAVA_OPTS=”$BASE_JAVA_OPTS
-Ddev_meta=$dev_meta -Duat_meta=$uat_meta -Dpro_meta=$pro_meta
-Dspring.profiles.active=github,auth -Dspring.resources.cache-period=86400″
新环境如果配置中心在其他老环境已经发布过业务配置,需要从其他config的库进行复制。并修改。
$(var)_meta ,var的值默认有
public enum Env{ LOCAL, DEV, BETA, FWS, FAT, UAT, LPT, PRO, TOOLS, UNKNOWN; ... }
二、Config库中的ServerConfig表 的eureka.service.url值为adminserver端口8080
比如:
三、在PortalDB的Serverconfig表中增加环境
如图所示:
四、启动新环境服务和重启portal,然后登陆刷新portal页面,新的环境将出现。然后就是复制、修改相应配置并发布到新环境。
有可能遇见的问题:
1.portal调用admin服务端口8080不通,请检测防火墙、安全组策略 放开入tcp 8080
2.portal调用了admin的8080后会调用config服务的8090,检测健康状态,请放开8090