Apollo+springboot 集成学习

Apollo+springboot 集成学习


前言

该文章主要对Apollo进行简单的入门介绍,对配置信息进行讲解操作,实战Springboot集成Apollo,读取配置信息过程。


一、Apollo是什么?

2016年5月,携程开源的配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后可以实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理的场景。Apollo的功能主要用于配置应用软件的参数、各种功能的开关、服务器地址、数据库地址,支持灰度发布、热度发布。

1.什么是配置?

配置是应用程序启动和运行需要读取的信息,配置伴随着应用程序的整个生命周期,配置是独立于程序的只读变量

2.Apollo主要基于四个维度的参数配置

application (应用) :就是一个项目,订单服务,用户服务,都是一个项目 一个应用,
environment (环境) :由于开发和测试的迭代进行,会衍生出不同的环境,程序员在不同的环境上进行开发和部署,不同的环境配置会有所不同
cluster (集群) :一套服务在不同的地方,可能部署不同的地址,例如上海 北京集群
namespace (命名空间) :可以对配置进行分门别类的管理,就衍生出了命名空间,命名空间可以关联,可以有私有 也可以为公有。

3.Apollo构成?

主要包括服务端和客户端

4. Apollo 的执行流程

管理员 —在 Apollo配置中心 (服务端)发布配置----配置中心服务器---- 配置更新推送到 Apollo客户端 —应用程序获取配置 更新通知
另外,为了防止网络中断导致数据不一致问题,客户端也会在本地缓存配置参数

二、Apollo 安装

1.下载 apollo-quick-start.zip 可以联系我,我发您,也可以网上查找;

2.下载后解压缩就可以了,不用安装
在这里插入图片描述
3.配置 ApolloPortalD ApolloConfigDB 数据库信息 ,压缩包中的sql 文件夹是相关库的sql语句 ,在数据库中运行即可
在这里插入图片描述
在这里插入图片描述
4.打开MYSQL 将两个sql 拖拽进去 执行即可,执行后看到两个库信息
在这里插入图片描述
在这里插入图片描述
5.回到文件夹下 ,使用记事本打开 demo.sh ,配置数据库信息,修改数据库用户名和密码 ,以及两个库的大小写问题,其他不用动,修改之后 保存 关闭。
在这里插入图片描述
在这里插入图片描述
6. 之后回到文件夹中,右键选择GIT bash here ,输入命令 ./demo.sh start ,运行后 localhost:8070就是apollo的地址。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

7.启动apollo所需的3个服务apollo-configservice、apollo-adminservice、apollo-portal,http://localhost:8080/是注册中心的地址,http://localhost:8080/ 是 apollo-adminservice,我们这里主要将的是8070端口的服务,apollo服务器端的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、 Apollo 项目简单配置 与 Springboot 集成

1.首次访问 Apollo http://localhost:8070
用户名:apollo
密码:admin

进入之后是空项目的,因为我之前建立的,所以有项目,可以忽略。
在这里插入图片描述
2.管理项目 创建部门 系统参数中 在key 中搜索organizations,安装相应的格式 添加 微服务部门 用户管理部门 ,名字随意,自己起名就好
在这里插入图片描述
在这里插入图片描述
3. 创建项目 选择相应的部门 项目ID 很重要是apollo客户端 查找配置的索引一定要记了 ,其中应用负责人,是可以定义角色的,但是apollo属于超级管理员,可以看到所有的项目,当然如果你选择其他的角色,相应的角色进入apollo中,就只能看到自己的服务
在这里插入图片描述
在这里插入图片描述
4.可以自定义应用负责人 ,也是可以自己定义的,大家可以自己拓展训练,定义,然后再根据用户民登录,这里我还是用的超级管理员
在这里插入图片描述
在这里插入图片描述
5.进入day01项目 就可以添加配置 信息了,添加相应的信息,之后进行发布,这样之后我们的配置信息就发布了,接下来就使用客户端进行读取应用配置,推送给应用程序,应用程序进行使用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6.创建MAVEN项目, 新建maven项目 添加apollo客户端 ,客户端拿到配置,程序读取配置
在这里插入图片描述7.配置pom 文件 ,apollo客户端配置

<dependencies>
    <dependency>
        <groupId>com.ctrip.framework.apollo</groupId>
        <artifactId>apollo-client</artifactId>
        <version>1.1.2</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.36</version>
    </dependency>

</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <source>8</source>
                <target>8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

8.测试获取配置信息,在main 中创建包,并创建测试类,程序不断的读配置类 ,当修改后会立马更新,

package com.lili.apollo;

import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigService;

public class apolloTest {
    public static void main(String[] args) {
        Config appConfig = ConfigService.getAppConfig();
        while (true)
        {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            String value=appConfig.getProperty("canido",null);
            System.out.println("canido:" +value);
        }
    }
}

9.设置运行变量,点击运行,然后立马关闭,因为没有配置参数,也会失败的,配置变量 -Dapp.id=day01 -Denv=DEV -Ddev_meta=http://localhost:8080 ,这里的id很重要
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10.之后运行程序 ,会读到配置信息,如果同步修改配置,也会实时更新的。
在这里插入图片描述

四 、Apollo 空间配置与Springboot的集成

1.项目的配置信息可以通过空间进行类别管理。
在这里插入图片描述
2.创建空间,空间可以分为公有和私有,私有就是只能自己的项目用,如果公有的,其他的项目也可以通过关联得到
在这里插入图片描述

在这里插入图片描述
3.建立成功后,会在项目中看到以空间命名的配置,添加相应的配置信息,进行分类管理,添加配置信息,并发布
在这里插入图片描述
在这里插入图片描述
4.在简单的配置读取Springboot 的基础上,读取namespace空间中的配置,步骤一样,就是使用的方法不一样。指定空间名称,之后读取配置,项目id不变
在这里插入图片描述

public class apolloTest {
    public static void main(String[] args) {

        Config config = ConfigService.getConfig("day01-namespace01");
        while (true)
        {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            String value=config.getProperty("namespace01.canido",null);
            System.out.println("namespace01.canido:" +value);
        }
    }

在这里插入图片描述
五、创建新环境
在这里插入图片描述

apollo.portal.envs
在这里插入图片描述

总结

Apollo 配置中心,总的来说思想很简单,就是读取一个只读变量,我们在这里只是简单的运用,道理都是一样,结合到项目中后,繁多复杂的配置会管理的比较井井有条。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

free_girl_fang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值