一、简介
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
二、安装
1、环境要求
- jdk1.8
- mysql 5.6+
2、首先在apollo,下载,我们需要的包,并解压,我们会看到三个jar文件,我们用1.3举例。
3、所需数据库准备
在Apollo的githubsql脚本,下载,apolloconfigdb.sql和apolloportaldb.sql
4、将下载的数据库脚本运作在自己的数据库上面,这样会创建出俩个数据库,
ApolloConfigDB和ApolloPortalDB。
5、我们可以自己编写一个eureka-server并启动eureka-server。
6、更新ApolloConfigDB库中ServerConfig表的eureka.service.url的地址为我们自己的。
UPDATE ServerConfig SET VALUE='自己eureka.service.url' WHERE KEY='eureka.service.url';
7、分别启动刚才我们下载的jar文件
1)apollo-configservice-1.3.0.jar
命令:
java -Xms256m -Xmx256m -Dserver.port=8085 -Dapollo_profile=github -Denv=DEV -Deureka.instance.preferIpAddress=true -Deureka.instance.ipAddress=10.10.10.10 -Dspring.datasource.url=jdbc:mysql://10.10.10.10:3305/ApolloConfigDB?characterEncoding=utf-8 -Dspring.datasource.username=root -Dspring.datasource.password=root -jar apollo-configservice-1.3.0.jar
注意更改这里的数据库信息。
2)apollo-adminservice-1.3.0.jar
java -Xms256m -Xmx256m -Dserver.port=8086 -Dapollo_profile=github -Deureka.instance.preferIpAddress=true -Deureka.instance.ipAddress=10.10.10.10 -Denv=DEV -Dspring.datasource.url=jdbc:mysql://10.10.10.10:3305/ApolloConfigDB?characterEncoding=utf-8 -Dspring.datasource.username=root -Dspring.datasource.password=root -jar apollo-adminservice-1.3.0.jar
注意更改这里的数据库信息。
3)apollo-portal-1.3.0.jar
java -Xms256m -Xmx256m -Dserver.port=8087 -Dapollo_profile=github,auth -Ddev_meta=http://10.10.10.10:8085/ -Dspring.datasource.url=jdbc:mysql://10.10.10.10:3305/ApolloPortalDB?characterEncoding=utf-8 -Dspring.datasource.username=root -Dspring.datasource.password=fengpt -jar apollo-portal-1.3.0.jar
注意
①更改这里的数据库信息。
②-Ddev_meta 为apollo-configservice 服务的地址
8、按第七步,启动成功后,访问portal对应的地址,可以得到,如下:就证明我们安装成功了。
,
三、使用
1、有默认的管理员账号
输入用户名 apollo,密码 admin 后登录后,点击SampleApp进入配置界面。
2、进入后,我们可以创建一个测试项目
注意这里的应用id,之后会用到。
3、创建完项目后,就可以添加几个配置
配置都是key-value模式的。并且配置需要发布,才可以生效。
4、到目前为止,我们就简单使用了apollo,我们用springboot,测试下。
1)新建一个springboot项目
2)加入所需pom
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.3.0</version>
</dependency>
3)编写配置文件
# 与配置中心的AppId一致
app.id=apollo-test
# 默认情况下meta server和config service是部署在同一个JVM进程
apollo.meta=http://10.10.10.10:8085
# 集成到Spring Boot
apollo.bootstrap.enabled = true
apollo.cluster=dev
4)编写测试代码
@RestController
public class TestController {
@Value("${com.fengpt.test}")
private String value;
@Value("${name}")
private String name;
@Value( "${server.port}" )
String port;
@GetMapping("test")
public String get(){
return "端口:"+port+" 姓名:"+name+"" +"变量值:"+value;
}
}
@SpringBootApplication
@EnableApolloConfig
public class ApolloTestApplication {
public static void main(String[] args) {
SpringApplication.run(ApolloTestApplication.class, args);
}
}
注意:启动类加:@EnableApolloConfig
5)测试
调用/test接口,查看数据
端口:8081 姓名:张三变量值:test
这时候,我们通过apollo,改变下name的值。
记得发布下,
我们再一次调用/test接口,这时候,我们看到name的值已经变了。
端口:8081 姓名:李四变量值:test
四、四个核心模块及其主要功能
1)configService
- 提供配置获取接口
- 提供配置推送接口
- 服务于Apollo客户端
2)AdminService
- 提供配置管理接口
- 提供配置修改发布接口
- 服务于管理界面Portal
3)Client
- 为应用获取配置,支持实时更新
- 通过MetaServer获取ConfigService的服务列表
- 使用客户端软负载SLB方式调用ConfigService
4)Portal
- 配置管理界面
- 通过MetaServer获取AdminService的服务列表
- 使用客户端软负载SLB方式调用AdminService
以上就是apollo的简单使用,之后,我们再研究更高级的用法。
评论区