《springcloud学习》十七 读取apollo配置

前言

社长,一个爱学习,爱分享的程序猿,始终相信,付出总会有回报的。知识改变命运,学习成就未来。爱拼才会赢!
程序猿学社的GitHub,已整理成相关技术专刊,欢迎Star:
https://github.com/ITfqyd/cxyxs

目录

1项目

1.1 新增项目

​ 1.2增加配置

1.2.1  读取配置

1.2.2  读取配置代码

1.3 删除项目

2.新增部门

3.namespace

3.1 新增命名空间


1项目

1.1 新增项目

《springcloud学习》十七 读取apollo配置_第1张图片

《springcloud学习》十七 读取apollo配置_第2张图片

设置appid,保证唯一

《springcloud学习》十七 读取apollo配置_第3张图片 1.2增加配置

《springcloud学习》十七 读取apollo配置_第4张图片

新增后,记得点击发布,不然,读取不到配置。 

1.2.1  读取配置

    《springcloud学习》十七 读取apollo配置_第5张图片

在idea下增加VM环境变量

《springcloud学习》十七 读取apollo配置_第6张图片

点击edit configuration

《springcloud学习》十七 读取apollo配置_第7张图片

-Dapp.id=apollo-test -Dapollo.meta=http://localhost:8080

 Dapp.id是应用id,也就是创建项目时的id

1.2.2  读取配置代码

  pom.xml

  
            com.ctrip.framework.apollo
            apollo-client
            1.1.0
        

测试类

package com.fyqd.apollo;

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

/**
 * Description:
 * Author: wude
 * Date:  2019/11/22 11:10
 * Modified By:
 */
public class ConfigTest {
    public static void main(String[] args) throws InterruptedException {
        Config config = ConfigService.getAppConfig(); //config instance is singleton for each namespace and is never null
        while (true){
            Thread.sleep(1000);
            String value = config.getProperty("jdbc.username",null);
            System.out.println("value:"+value);
        }
    }
}

注意:经过测试发现,如果名称为user.name,取到的是系统的用户名,可能是环境名冲突了,所以大家尽量避免这类问题。

测试:一般测试,一般改配置的值,发现控制台打印的都是最新的值,说明文件已经热部署勒。

1.3 删除项目

《springcloud学习》十七 读取apollo配置_第8张图片

找到对应项目的appid

《springcloud学习》十七 读取apollo配置_第9张图片

先查询再删除。 

2.新增部门

    通过organizations查询

《springcloud学习》十七 读取apollo配置_第10张图片

可以对value进行修改,仿json格式。 

3.namespace

可以里面为命令空间,等价于我们项目中的一个配置文件。可以这样理解。

3.1 新增命名空间

《springcloud学习》十七 读取apollo配置_第11张图片

《springcloud学习》十七 读取apollo配置_第12张图片

如果只能本项目可调用,可设置成private

《springcloud学习》十七 读取apollo配置_第13张图片

 3.2公有namespace

在项目开发过程中,我们可能有一些公共的配置,那么我们需要创建公共的配置namespace

1.先新增一个公有项目

《springcloud学习》十七 读取apollo配置_第14张图片

2.新增namespace

《springcloud学习》十七 读取apollo配置_第15张图片

创建一个公有的namespace,记住一定要选择public 

《springcloud学习》十七 读取apollo配置_第16张图片

《springcloud学习》十七 读取apollo配置_第17张图片 选择要添加公有配置的项目

《springcloud学习》十七 读取apollo配置_第18张图片

《springcloud学习》十七 读取apollo配置_第19张图片 绑定公有的命名空间《springcloud学习》十七 读取apollo配置_第20张图片

配置页面就多了一个关联的配置 

《springcloud学习》十七 读取apollo配置_第21张图片 可以根据如下代码,简单的测试一下,公有配置是否可以调用

pom.xml

  
            com.ctrip.framework.apollo
            apollo-client
            1.1.0
        

测试类

package com.fyqd.apollo;

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

/**
 * Description:
 * Author: wude
 * Date:  2019/11/22 11:10
 * Modified By:
 */
public class ConfigTest {
    public static void main(String[] args) throws InterruptedException {
        Config config  = ConfigService.getConfig("TEST3.commom");
        //Config config = ConfigService.getAppConfig(); //config instance is singleton for each namespace and is never null
        while (true){
            Thread.sleep(1000);
            String value = config.getProperty("server.zookeeper",null);
            System.out.println("value:"+value);
        }
    }
}

idea启动配置main的环境变量

-Dapp.id=apollo-test -Dapollo.meta=http://localhost:8080

注意:这里的id是在apollo项目中的id 

《springcloud学习》十七 读取apollo配置_第22张图片

测试结果:

《springcloud学习》十七 读取apollo配置_第23张图片

 

注意:公有的配置是不能在关联的那个项目下修改的,只能覆盖。但是,也生效

《springcloud学习》十七 读取apollo配置_第24张图片

3.3创建集群

为什么要有集群,例如,MQ里面存放交易信息,上海MQ,深圳MQ,北京MQ,其实上,只是ip不同而已。这是我们就需要用到集群。

《springcloud学习》十七 读取apollo配置_第25张图片

《springcloud学习》十七 读取apollo配置_第26张图片

《springcloud学习》十七 读取apollo配置_第27张图片

这里就有两个集群勒,默认是有一个default集群。

3.3.1 集群环境同步配置

《springcloud学习》十七 读取apollo配置_第28张图片

《springcloud学习》十七 读取apollo配置_第29张图片

《springcloud学习》十七 读取apollo配置_第30张图片

《springcloud学习》十七 读取apollo配置_第31张图片通过上述操作,配置就可以同步过来,记得发布一下。

3.3.2  集群环境测试

1.导入maven依赖

2.vm设置

《springcloud学习》十七 读取apollo配置_第32张图片

-Dapp.id=apollo-test -Dapollo.cluster=shtest -Dapollo.meta=http://localhost:8080

 shtest是集群的名称

3.代码

package com.fyqd.apollo;

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

/**
 * Description:
 * Author: wude
 * Date:  2019/11/22 11:10
 * Modified By:
 */
public class ConfigTest {
    public static void main(String[] args) throws InterruptedException {
        //指定namespace空间
        Config config  = ConfigService.getConfig("application");
        //Config config = ConfigService.getAppConfig(); //config instance is singleton for each namespace and is never null
        while (true){
            Thread.sleep(1000);
            //设置需要获取属性的值
            String value = config.getProperty("jdbc.username",null);
            System.out.println("value:"+value);
        }
    }
}

《springcloud学习》十七 读取apollo配置_第33张图片

打印的输出,是对应项目下,对象集群下的值

后记

程序猿学社的GitHub,欢迎Star:
https://github.com/ITfqyd/cxyxs
觉得有用,可以点赞,关注,评论,留言四连发。

 

你可能感兴趣的:(#,apollo)