springcloud配置中心_Spring Cloud集成Apollo分布式配置中心(含源代码)

在Spring Cloud项目中使用Apollo 分布式配置中心之前,需要先启动Apollo的配置服务端。

4b746acaa88d830dbf82ae62f042a2ac.png

具体操作步骤,可参看如下链接:

携程Apollo(阿波罗)分布式配置中心-总体架构设计和核心概念

携程Apollo 分布式配置中心-本地单机部署(详细操作步骤)

1. 创建 config-client-apollo 项目

(1)添加依赖项:

com.ctrip.framework.apollo

apollo-client

1.0.0

org.springframework.cloud

spring-cloud-starter-netflix-eureka-client

引入Apollo 的客户端依赖。

(2)在项目resources/META-INF/app.properties 中指定appId。

说明:Java 客户端通过 classpath:/META-INF/app.properties 来指定 appId。

9a65437a95e21faf7a96d86da52bda2d.png

app.id=123456789

Apollo 客户端在运行时需要知道当前应用是谁,从而可以去获取对应的配置。每个应用都需要有唯一的身份标识——appId。Apollo客户端根据这个appId 到Apollo 服务端获取对应的配置信息。

(3)在项目application.yml 配置文件中,配置apollo相关选项。

注入默认application namespace的配置示例,apollo.bootstrap.enabled = true

可以在Spring Boot的application.properties或bootstrap.properties中指定apollo.meta=http://config-service-url

如下图配置中,设置 apollo.meta = http://localhost:8080

b9a03df8e60e8cc835e45197f0d45a82.png

可以通过Java system property 设置 ${env}_meta,如果当前env是dev,那么用户可以配置-Ddev_meta=http://config-service-url

还可以通过apollo-env.properties文件设置 ${env}_meta,如下所示。

用户也可以创建一个apollo-env.properties,放在程序的classpath下,或者放在spring boot应用的config目录下。

文件内容形如:

dev.meta=http://localhost:8080

fat.meta=http://apollo.fat.xxx.com

uat.meta=http://apollo.uat.xxx.com

pro.meta=http://apollo.xxx.com

如果通过以上各种手段都无法获取到Meta Server地址,Apollo最终会fallback到http://apollo.meta作为Meta Server地址。

2. 设置 config-client-apollo 项目的启动项设置

在代码和配置项都完成之后,设置apollo client端项目的启动项设置。

ba9415bda37c2ea07e44e4682ce71fab.png

主要是 VM options 选择的设置(启动参数是通过VM 参数设置的):-Denv=dev -Ddev_meta=http://localhost:8080

3. config-client-apollo 中相关代码

通过Java Config的方式,可以使用@Value的方式注入配置项。

@Value("${config_info:default}")

private String config;

3ad0e5fb1659f49e8e109eb7f939a59c.png

Apollo同时还增加了新的Annotation来简化在Spring环境中的使用。@ApolloConfig - 用来自动注入Config对象。

示例代码如下:

@ApolloConfig

private Config config; //inject config for namespace application

@ApolloConfig("application")

private Config anotherConfig; //inject config for namespace application

下面的代码仅仅是演示目的。

f3f337a4f47855a4bc91907825954ea5.png

4. 启动Eureka、config-client-apollo 项目,同时在 Apollo portal 配置相应的参数值。

ca67868bfde1dc1c5d33afc1b3b23e49.png

在Apollo portal 中配置相应的参数。

3cba3a97d0cfd31a8b2753b9965addbd.png
c86e0aeac2c845c15de31b115f4ba3be.png

然后,访问如下地址,查看返回值。

http://localhost:9018/configConsumer/getConfigInfo

5e9495096f4e08f486b1bdc85bf058f9.png

Github项目源代码

项目源代码来自《重新定义Spring Cloud 实战》:

https://github.com/rickiechina/spring-cloud-code/tree/master/ch12-10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值