前言
本小节我们将系统学习一下Apollo Client 从配置中心获取配置的几种实现方法。、
首先声明一点,Apollo github wiki中有说明JAVA客户端如何获取Apollo配置中心的配置。获取配置的方法与场景大概如下:
- 获取配置方式
- API
- 整合Spring,然后通过Spring的IOC特性获取。
- 获取配置属性
- 获取单个属性值
- 获取聚合对象属性值(一个对象的多个属性)
- 获取配置命名空间
- 获取默认的namespace(默认命名空间)
- 自定义优先级来获取多个namespcace中的属性
本小节就不在重复说明了,这里只是提出一种想法和场景假设来更方便高效地获取配置信息。
案例
-
第一步,模拟场景
在实际的应用场景中一个服务节点或者一个Client的配置信息可能会有很多种形式,比如需要定义三个application.properties/dustyone.yml/customized.properties namespace才能支持节点正常运行,其中dustyone.yml中的配置信息是具有聚合对象属性特性的,而customized.properties中的只是一些零散的配置,作为一个Apollo Client要制定出比较又要的解决方案来实现配置信息的读取,同时还要实时地监听配置信息的更新状态,一旦任何一个配置项发生更新/删除/新建,客户端都应做出相应的反应机制。 -
第二步,准备案例
-
配置中心配置信息准备
-
application.properties
timeout = 1500 server.port = 8087 spring.application.name = microservice-deal-cloud eureka.client.serviceUrl.defaultZone = http://localhost:8080/eureka/ eureka.instance.hostname = Swift eureka.instance.prefer-ip-address = true eureka.instance.metadata-map.zone = Asia eureka.instance.metadata-map.customizedMetadata = eurekaCustomizedMetadata e
-
-