Springboot/SpringCloud项目使用Apollo配置中心获取配置信息

背景介绍:当前项目为springcloud微服务,整个微服务框架中分布式系统服务和集群的数量相当多,每一个服务都有着自己的配置,之前所有服务的配置信息都使用springcloud配置中心,启动服务时会从配置中心拉取对应服务的配置文件获取配置信息,现在需要将所有配置信息迁移到Apollo配置中心,由Apollo管理配置信息。
一、配置Apollo配置中心并为应用添加配置信息
1、部署和启动Apollo配置中心(参考以下链接快速在本地环境部署、启动Apollo配置中心)
https://github.com/ctripcorp/apollo/wiki/Quick-Start
2、打开 http://localhost:8070 进入配置中心
在这里插入图片描述
3、创建应用
在这里插入图片描述
注意:
4、创建集群
在这里插入图片描述
5、创建namespace,一个namespace对应应用的一个配置文件,一个应用可以通过创建多个namespace来添加多个配置文件。建议大家创建namespace时都只选择private类型(properties格式),不要滥用公共的namespace(仅适用于大规模公用的基础组件配置)
在这里插入图片描述
这个可以选择配置文件的格式,比如常见的properties和yml。
6、打开第二步配置中心页面上的应用,查看、增加、修改和删除应用配置信息
在这里插入图片描述
在这个页面可以添加、修改和删除具体的配置信息。
注意,properties和yml文件添加配置的方式不太一样。
二、配置Apollo客户端,使用客户端从Apollo配置中心获取配置信息
1、SpringCloud应用添加Apollo客户端

(1)指定apollo meta server(config server)地址
服务器/opt/settings/server.properties文件中配置了当前环境的信息以及对应apollo meta server的地址,即告诉客户端应该去哪里拉取配置。

应用接入时无需再指定env和apollo.meta 。 (若应用所在服务器没有该文件,可通过-Denv=xxx -Dapollo.meta=xxx JVM启动参数指定)

测试环境server.properties文件内容如下:

env=SIT
apollo.meta=http://apolloconfig.xxs.sit

(2)在application.properties文件添加以下配置信息

    app.id = apollodemo     //应用的名称
    apollo.bootstrap.enabled = true    //是否注入到spring的Environment
    apollo.bootstrap.eagerLoad.enabled = true    //将Apollo配置加载提到初始化日志系统之前
    apollo.bootstrap.namespaces = application

(3)本地配置缓存路径

Mac/Linux: /opt/data/
Windows: C:\opt\data\

Apollo客户端会把从服务端获取到的配置在本地文件系统缓存一份,用于在遇到服务不可用,或网络不通的时候,依然能从本地恢复配置,不影响应用正常运行。本地缓存路径默认位于以下路径(可通过JVM参数-Dapollo.cacheDir指定),所以请确保/opt/data或C:\opt\data\目录存在,且应用有读写权限。
(4)添加Apollo客户端的maven依赖,一般的公司都会对其封装,这里借用一下携程的。

		<dependency>
            <groupId>com.ctrip.framework.apollo</groupId>
            <artifactId>apollo-client</artifactId>
            <version>1.0.0</version>
        </dependency>

(5) 如果想对配置信息进行加密,可以用工具生成rsa密钥对,在Apollo配置中心创建应用时填入生成的公钥信息。并将私钥文件放在指定目录中。
生成的私钥文件只可更改文件名称,不可更改文件内容或添加后缀名,也不可新建空白文件粘贴私钥文件内容,以免私钥无效,导致无法对加密的配置进行解密。
将私钥存放于服务器/data/jar/apollo_private/ 目录下,并在脚本中加入JVM启动参数
-Dapollo.private.key=/data/jar/apollo_private/xxx_private_key 指定私钥加载路径(xxx_private_key替换为自己的私钥名称),注意放入的私钥名称不可与目录下已存在的私钥名称相同。
2、SpringCloud应用正常启动即可从Apollo配置中心获取配置信息。

猜你喜欢

转载自blog.csdn.net/qq_39387856/article/details/87101813