跳转到内容

使用 Apollo 作为配置中心

apollo 部署及使用过程

部署过程

  1. 下载三个 zip 包,并解压
  2. 导入数据库
  3. 创建 eureka 服务
  4. 修改数据库中 apolloconfigdb.serverconfig 表中 eureka.service.url 的值为 eureka 的地址
  5. 依次启动 config 、 admin、 portal 服务
  6. 检查 8080 端口占用情况,如果被占用启动时会报错,8080 是 config 所在服务的端口

使用

配置 Apollo

管理台地址的端口为: 8070

初始化用户名密码为: apollo / admin

  1. 创建项目
  2. 创建配置项
  3. 发布
在项目中使用
  1. 在项目的 pom 中引入 Apollo 的客户端
  2. 在项目的 application.yml 文件中添加:
apollo:
  bootstrap:
    enabled: true
    namespaces: application
  meta: http://192.168.1.150:8080 # 此地址为config服务所在的地址
  1. 添加 app.properties 文件
app.id=XXXX
  1. 创建配置文件
@Configuration
@EnableApolloConfig(value = "application", order = 10)
public class AppConfig {
}
  1. 创建配置项并使用
@RestController
@RequestMapping("configConsumer")
@RefreshScope
public class ConfigClientController {

    @Value("${config_info}")
    private String config;

    @RequestMapping("/getConfigInfo")
    public String getConfigInfo(){
        return config;
    }
}

注意事项

  1. 在部署后,在 web 控制台进行配置时,创建了一个项目,如果遇到报错信息: 请联系管理员 等信息,可以去找对应服务的启动文件,启动文件中有日志所在的地址,查看日志即可得知哪里出了问题;如果是端口占用,可以使用 netstat -nultp 命令查看端口占用情况。
  2. 项目启动后,发现一直报错,应先考虑配置文件是否有误。注意: apollo.meta 地址是 config 服务所在的地址,不要写错。
  3. configuration 项目和 administer 项目依赖 eureka,端口是 8080,要看看此端口是否已经被占用。

参考


把 application.yml 文件整体放入 apollo

项目背景

把 springboot 项目中的 application.yml 文件,整个都放入 Apollo 中,启动时项目先从 Apollo 中获取配置文件,然后根据拉取的配置文件进行启动。这样可以达到配置文件保密的效果。

添加依赖

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

添加注解

@EnableApolloConfig

发布配置文件内容

使用 http://www.toyaml.com/index.html 把 yml 格式转成 properties 格式。然后复制出所有的配置项,复制到 Apollo 管理页面上进行发布。

修改配置文件

注释掉之前所有的配置项,只添加下面内容:

app:
  id: 103929
apollo:
  bootstrap:
    enabled: true
    namespaces: application

创建本地缓存目录

cd /opt
sudo mkdir /opt/data
sudo chmod -R 777 data
sudo mkdir /opt/settings
cd settings
sudo touch server.properties
sudo vi server.properties

在 server.properties 文件中添加:

env=DEV
apollo.meta=http://192.168.1.150:8080

启动后进行验证

成功

注意事项

  1. 创建本地目录是重要的步骤,不能省略,否则项目启动时会自己初始化,不会拉取 Apollo 的配置,创建完目录后还需要保证目录的读取权限。
  2. 创建完本地目录后还需要创建 server.properties 文件,用来指定运行的环境。

参考地址

  1. 淘东电商项目(10) -Apollo 分布式配置中心管理 application.yml
  2. 携程 Apollo v1.4 开发指南

修改本地缓存的配置文件的目录地址

大多数公司里面的开发机都是经过部署过的,很多目录并没有读写权限,并且很多大厂内的电脑多是需要自己的账号登陆的,因此,可以把 Apollo 的本地缓存地址放置到用户自己的 Home 目录下。此外,由于配置中心的私密性,并且都是内网环境,因此还把 Apollo 的配置配置地址隐藏掉。这样只需要在家目录下放置 .settings.xml 文件,里面只需要指定环境即可。

make it come true