分布式配置中心-Apollo安装与简单使用

一、简介

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
image.png

二、安装

1、环境要求
  • jdk1.8
  • mysql 5.6+
2、首先在apollo,下载,我们需要的包,并解压,我们会看到三个jar文件,我们用1.3举例。

image.png

3、所需数据库准备

在Apollo的githubsql脚本,下载,apolloconfigdb.sql和apolloportaldb.sql
image.png

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对应的地址,可以得到,如下:就证明我们安装成功了。

image.png

三、使用

1、有默认的管理员账号

输入用户名 apollo,密码 admin 后登录后,点击SampleApp进入配置界面。

2、进入后,我们可以创建一个测试项目

image.png
注意这里的应用id,之后会用到。

3、创建完项目后,就可以添加几个配置

image.png

配置都是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)编写测试代码

image.png

@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的值。

image.png
记得发布下,
image.png
我们再一次调用/test接口,这时候,我们看到name的值已经变了。

端口:8081 姓名:李四变量值:test

四、四个核心模块及其主要功能

1)configService
  • 提供配置获取接口
  • 提供配置推送接口
  • 服务于Apollo客户端
2)AdminService
  • 提供配置管理接口
  • 提供配置修改发布接口
  • 服务于管理界面Portal
3)Client
  • 为应用获取配置,支持实时更新
  • 通过MetaServer获取ConfigService的服务列表
  • 使用客户端软负载SLB方式调用ConfigService
4)Portal
  • 配置管理界面
  • 通过MetaServer获取AdminService的服务列表
  • 使用客户端软负载SLB方式调用AdminService
    以上就是apollo的简单使用,之后,我们再研究更高级的用法。
# 工具   微服务  

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×