记一次SparkStreaming读取Apollo配置url问题解决思路

使用scala开发读取Apollo中mysql的配置参数时url错误
官方提供配置方法:
1.0.0版本开始支持以下方式配置apollo meta server信息,按照优先级从高到低分别为:

通过Java System Property apollo.meta
可以通过Java的System Property apollo.meta来指定
在Java程序启动脚本中,可以指定-Dapollo.meta=http://config-service-url
如果是运行jar文件,需要注意格式是java -Dapollo.meta=http://config-service-url -jar xxx.jar
也可以通过程序指定,如System.setProperty(“apollo.meta”, “http://config-service-url”);
通过Spring Boot的配置文件
可以在Spring Boot的application.properties或bootstrap.properties中指定apollo.meta=http://config-service-url
该配置方式不适用于多个war包部署在同一个tomcat的使用场景

通过操作系统的System EnvironmentAPOLLO_META
可以通过操作系统的System Environment APOLLO_META来指定
注意key为全大写,且中间是_分隔
通过server.properties配置文件
可以在server.properties配置文件中指定apollo.meta=http://config-service-url
对于Mac/Linux,文件位置为/opt/settings/server.properties
对于Windows,文件位置为C:\opt\settings\server.properties
通过app.properties配置文件
可以在classpath:/META-INF/app.properties指定apollo.meta=http://config-service-url
通过Java system property ${env}_meta
如果当前env是dev,那么用户可以配置-Ddev_meta=http://config-service-url
使用该配置方式,那么就必须要正确配置Environment,详见1.2.4.1 Environment
通过操作系统的System Environment ${ENV}_META (1.2.0版本开始支持)
如果当前env是dev,那么用户可以配置操作系统的System Environment DEV_META=http://config-service-url
注意key为全大写
使用该配置方式,那么就必须要正确配置Environment,详见1.2.4.1 Environment
通过apollo-env.properties文件
用户也可以创建一个apollo-env.properties,放在程序的classpath下,或者放在spring boot应用的config目录下
使用该配置方式,那么就必须要正确配置Environment,详见1.2.4.1 Environment
文件内容形如:

配置文件app.properties

app.id=iov-livedata-cli

配置文件apollo-env.properties

dev.meta=http://config.dev.ccbuluo.cn/apollo-configservice
fat.meta=http://config.test.ccbuluo.cn/apollo-configservice
uat.meta=http://config.uat.ccbuluo.cn/apollo-configservice
lpt.meta=http://config.qa.ccbuluo.cn/apollo-configservice
pro.meta=http://config.ccbuluo.com/apollo-configservice```

运行程序时

19/10/17 16:49:37 INFO provider.DefaultServerProvider: Loading /opt/settings/server.properties
19/10/17 16:49:37 INFO provider.DefaultServerProvider: Environment is set to null. Because it is not available in either (1) JVM system property
‘env’, (2) OS env variable ‘ENV’ nor (3) property ‘env’ from the properties InputStream.
19/10/17 16:49:37 WARN internals.DefaultMetaServerProvider: Could not find meta server address, because it is not available in neither (1) JVM sy
stem property ‘apollo.meta’, (2) OS env variable ‘APOLLO_META’ (3) property ‘apollo.meta’ from server.properties nor (4) property ‘apollo.meta’ f
rom app.properties
19/10/17 16:49:37 WARN core.MetaDomainConsts: Meta server address fallback to http://apollo.meta for env UNKNOWN, because it is not available in
all MetaServerProviders
19/10/17 16:49:40 INFO scheduler.JobScheduler: Added jobs for time 1571302180000 ms
19/10/17 16:49:41 WARN internals.AbstractConfigRepository: Sync config failed, will retry. Repository class com.ctrip.framework.apollo.internals.
RemoteConfigRepository, reason: Get config services failed from http://apollo.meta/services/config?appId=iov-livedata-cli&ip=192.168.0.62 [Cause:
Could not complete get operation [Cause: apollo.meta]]
19/10/17 16:49:43 WARN internals.LocalFileConfigRepository: Sync config from upstream repository class com.ctrip.framework.apollo.internals.Remot
eConfigRepository failed, reason: Get config services failed from http://apollo.meta/services/config?appId=iov-livedata-cli&ip=192.168.0.62 [Caus
e: Could not complete get operation [Cause: apollo.meta]]
19/10/17 16:49:45 INFO scheduler.JobScheduler: Added jobs for time 1571302185000 ms
19/10/17 16:49:46 WARN internals.RemoteConfigLongPollService: Long polling failed, will retry in 1 seconds. appId: iov-livedata-cli, cluster: def
ault, namespaces: application, long polling url: null, reason: Get config services failed from http://apollo.meta/services/config?appId=iov-lived
ata-cli&ip=192.168.0.62 [Cause: Could not complete get operation [Cause: apollo.meta]]
19/10/17 16:49:48 WARN internals.LocalFileConfigRepository: Sync config from upstream repository class com.ctrip.framework.apollo.internals.Remot
eConfigRepository failed, reason: Get config services failed from http://apollo.meta/services/config?appId=iov-livedata-cli&ip=192.168.0.62 [Caus
e: Could not complete get operation [Cause: apollo.meta]]
19/10/17 16:49:48 WARN internals.AbstractConfigRepository: Sync config failed, will retry. Repository class com.ctrip.framework.apollo.internals.
LocalFileConfigRepository, reason: Load config from local config failed! [Cause: Cannot read from local cache file /opt/data/iov-livedata-cli/con
fig-cache/iov-livedata-cli+default+application.properties]
19/10/17 16:49:50 WARN internals.RemoteConfigLongPollService: Long polling failed, will retry in 2 seconds. appId: iov-livedata-cli, cluster: def
ault, namespaces: application, long polling url: null, reason: Get config services failed from http://apollo.meta/services/config?appId=iov-lived
ata-cli&ip=192.168.0.62 [Cause: Could not complete get operation [Cause: apollo.meta]]
19/10/17 16:49:50 INFO scheduler.JobScheduler: Added jobs for time 1571302190000 ms
19/10/17 16:49:52 WARN internals.LocalFileConfigRepository: Sync config from upstream repository class com.ctrip.framework.apollo.internals.Remot
eConfigRepository failed, reason: Get config services failed from http://apollo.meta/services/config?appId=iov-livedata-cli&ip=192.168.0.62 [Caus
e: Could not complete get operation [Cause: apollo.meta]]
19/10/17 16:49:52 WARN internals.DefaultConfig: Init Apollo Local Config failed - namespace: application, reason: Load config from local config f
ailed! [Cause: Cannot read from local cache file /opt/data/iov-livedata-cli/config-cache/iov-livedata-cli+default+application.properties].
19/10/17 16:49:52 WARN internals.DefaultConfig: Could not load config for namespace application from Apollo, please check whether the configs are
released in Apollo! Return default value now!
19/10/17 16:49:54 WARN internals.RemoteConfigLongPollService: Long polling failed, will retry in 4 seconds. appId: iov-livedata-cli, cluster: def
ault, namespaces: application, long polling url: null, reason: Get config services failed from http://apollo.meta/services/config?appId=iov-lived
ata-cli&ip=192.168.0.62 [Cause: Could not complete get operation [Cause: apollo.meta]]

导致连接不上mysql:
java.sql.SQLException: No suitable driver found for

>  19/10/17 16:49:37 INFO provider.DefaultApplicationProvider: App ID is set to iov-livedata-cli by app.id property from /META-INF/app.properties
19/10/17 16:49:37 INFO provider.DefaultServerProvider: Loading /opt/settings/server.properties
19/10/17 16:49:37 INFO provider.DefaultServerProvider: Environment is set to null. Because it is not available in either (1) JVM system property
'env', (2) OS env variable 'ENV' nor (3) property 'env' from the properties InputStream.
19/10/17 16:49:37 WARN internals.DefaultMetaServerProvider: Could not find meta server address, because it is not available in neither (1) JVM sy
stem property 'apollo.meta', (2) OS env variable 'APOLLO_META' (3) property 'apollo.meta' from server.properties nor (4) property 'apollo.meta' f
rom app.properties
19/10/17 16:49:37 WARN core.MetaDomainConsts: Meta server address fallback to http://apollo.meta for env UNKNOWN, because it is not available in
all MetaServerProviders
19/10/17 16:49:40 INFO scheduler.JobScheduler: Added jobs for time 1571302180000 ms
19/10/17 16:49:41 WARN internals.AbstractConfigRepository: Sync config failed, will retry. Repository class com.ctrip.framework.apollo.internals.
RemoteConfigRepository, reason: Get config services failed from http://apollo.meta/services/config?appId=iov-livedata-cli&ip=192.168.0.62 [Cause:
 Could not complete get operation [Cause: apollo.meta]]

appid读取到了,但是url始终读取不到

后来自己看发现

19/10/17 16:49:37 INFO provider.DefaultApplicationProvider: App ID is set to iov-livedata-cli by app.id property from /META-INF/app.properties
19/10/17 16:49:37 INFO provider.DefaultServerProvider: Loading /opt/settings/server.properties

读取了app.properties和服务器上的/opt/settings/server.properties文件,并没有去读apollo-env.properties文件中的内容
于是将

dev.meta=http://config.dev.ccbuluo.cn/apollo-configservice
fat.meta=http://config.test.ccbuluo.cn/apollo-configservice
uat.meta=http://config.uat.ccbuluo.cn/apollo-configservice
lpt.meta=http://config.qa.ccbuluo.cn/apollo-configservice
pro.meta=http://config.ccbuluo.com/apollo-configservice`

写入 /opt/settings/server.properties 文件成功,后来发现原来要在linux端配置Environment就可以了.

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值