Apollo配置中心及客户端使用
本文只实现了Apollo配置中心及客户端的搭建和简单使用,想了解Apollo的详细配置以及更多功能请参考官方文档:Apollo官方文档
一、Apollo配置中心
官方文档:Quick Start
1、本地测试使用(windows环境):
1.1、准备工作
1.1.1、版本要求
jdk版本:
apollo服务端:1.8+
apollo客户端:1.7+
笔者jdk版本:1.8
mysql版本:
5.6.5+
笔者mysql版本:8.0.11
1.1.2、下载安装包
下载Quick Start安装包
笔者选择的是从百度网盘下载
1.2、数据库创建并修改配置
1.2.1、创建数据库(2个)
- 解压下载好的Quick Start安装包
- 进入到sql目录,在mysql客户端(笔者使用navicat)执行目录下的两个sql,即apolloconfigdb.sql和apolloportaldb.sql
1.2.2、配置数据库连接信息
修改解压之后的安装包里的demo.sh文件,主要修改下图红框中的数据库连接的url、username、password
1.3、启动Apollo配置中心
进入到demo.sh文件所在的目录,然后右键鼠标打开Git bash窗口,执行命令
./demo.sh start
当看到如下输出后,就说明启动成功了!
可以看到启动了两个应用,分别是8080端口的Config Service应用和8070端口的Portal应用。
访问http://localhost:8080/可以看到是一个eureka注册中心。
访问http://localhost:8070/可以看到是Apollo配置中心,默认用户名apollo密码admin,之后我们的主要操作都是在Apollo配置中心里面。
1.4、Apollo配置中心使用(初始化数据)
- 创建项目
- 新增配置,key:testName,value:jerry
- 发布配置。
二、Apollo客户端搭建
官方文档:Java客户端使用指南
1、环境要求
Java: 1.7+ 笔者版本1.8
Guava: 15.0+ 笔者版本20.0
springboot项目
2、Maven Dependency
<!-- apollo -->
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.1.0</version>
</dependency>
3、application.yml
server:
port: 8081
spring:
application:
name: apolloDemo
app:
## 配置中心AppId
id: apollo-demo
apollo:
## Config Service应用地址
meta: http://192.168.2.105:8080
bootstrap:
# 在项目启动的bootstrap阶段,向Spring容器注入被托管的application.properties文件的配置信息
enable: true
## 配置中心namespace
namespaces: application
4、启动类+@EnableApolloConfig注解
@EnableApolloConfig
@SpringBootApplication
public class ApolloApplication {
public static void main(String[] args) {
SpringApplication.run(ApolloApplication.class, args);
}
}
5、编写测试类
@RestController
public class ApolloTestController {
/**
* testName为步骤1.4中新增配置的key
* apollo为默认值,即当获取不到testName时name的默认值
*/
@Value("${testName:apollo}")
private String name;
@RequestMapping("getName")
public String getName() {
return name;
}
}
6、测试
6.1、测试读取配置是否成功
- 启动项目
- 项目启动成功之后请求http://localhost:8081/getName/得到步骤1.4中配置的value值jerry即代表配置成功。
6.2、测试配置的修改发布功能
- 去Apollo配置中心修改key为testName的值,并发布
- 发布完成之后再次请求http://localhost:8081/getName/得到修改配置之后的value值即代表配置成功。