springboot配置-集成apollo
apollo相关信息:https://github.com/ctripcorp/apollo
以下为单机测试,完整代码:https://github.com/2010yhh/springBoot-demos/tree/master/springboot-apollo。
1.启动
1)导入sql
2)修改配置
3)启动
访问:http://localhost:8070/ 管理台
访问:http://localhost:8080/ eureka注册中心
2.springboot配置-集成apollo
应用;环境;集群;namespace4级配置。
1)配置文件中通过下面配置区分不同应用,同一应用的不同集群
app.id= springboot-apollo
#app的集群
#apollo.cluster=cluster2
2)通过@EnableApolloConfig注解的属性区分不同的namespace
@EnableApolloConfig(value = {"FX.apollo", "application.yml"}, order = 1)
如果配置了集群,但是没找到,会用默认集群:default的配置;没找到namespace会用默认namespace:application的配置。
本文示例配置文件:
#修改端口启动多个进程
server.port= 8050
#访问的根路径
server.context-path=/springboot-apollo
#你在apollo的应用ID
app.id= springboot-apollo
#DEV,FAT,UAT,PRO
#apollo.portal.envs=
#app的集群 apollo.cluster=cluster2
#apollo.cluster=cluster1
#连接apollo的配置,注册中心
apollo.meta = http://localhost:8080
# 主动拉取配置时间间隔,单位分钟
apollo.refreshInterval: 1
#Spring Boot集成方式(推荐),使配置在更早的阶段注入;这种情况不用使用@EnableApolloConfig注解
# will inject 'application' namespace in bootstrap phase
apollo.bootstrap.enabled = true
# will inject 'application' namespaces in bootstrap phase
#这里注入上面配置集群的namespace为TEST1.namespace0,如果找不到对应的namespace,应用启动失败
apollo.bootstrap.namespaces =TEST1.namespace0
# put apollo initialization before logging system initialization
#Apollo的加载顺序放到日志系统加载之前
#apollo.bootstrap.eagerLoad.enabled=true
#apollo.autoUpdateInjectedSpringProperties=true
3.测试
1)新建2个集群cluster1,cluster2;cluster1新建3个namespace:TEST1.namespace0,TEST1.namespace1,TEST1.namespace2。TEST1.namespace0用来测试springboot配置文件加载方式。
3个集群的每个namespace都新建配置
serviceTimeout = 100 serviceRetryTimes = 1
,但是设置不同的值,来区分。
本地缓存:
2)
注入不同集群,不同namespace时的配置,
从配置文件注入的配置,也是修改后立即生效。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/18373.html