读取apollo配置

目录

1项目

1.1 新增项目

​ 1.2增加配置

1.2.1  读取配置

1.2.2  读取配置代码

1.3 删除项目

2.新增部门

3.namespace

3.1 新增命名空间


1项目

1.1 新增项目

设置appid,保证唯一

 1.2增加配置

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

1.2.1  读取配置

    

在idea下增加VM环境变量

点击edit configuration

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

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

1.2.2  读取配置代码

  pom.xml

  <dependency>
            <groupId>com.ctrip.framework.apollo</groupId>
            <artifactId>apollo-client</artifactId>
            <version>1.1.0</version>
        </dependency>

测试类

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 删除项目

找到对应项目的appid

先查询再删除。 

2.新增部门

    通过organizations查询

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

3.namespace

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

3.1 新增命名空间

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

 3.2公有namespace

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

1.先新增一个公有项目

2.新增namespace

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

 选择要添加公有配置的项目

 绑定公有的命名空间

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

 可以根据如下代码,简单的测试一下,公有配置是否可以调用

pom.xml

  <dependency>
            <groupId>com.ctrip.framework.apollo</groupId>
            <artifactId>apollo-client</artifactId>
            <version>1.1.0</version>
        </dependency>

测试类

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 

测试结果:

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

3.3创建集群

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

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

3.3.1 集群环境同步配置

通过上述操作,配置就可以同步过来,记得发布一下。

3.3.2  集群环境测试

1.导入maven依赖

2.vm设置

-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);
        }
    }
}

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

如果你热衷技术,喜欢交流,欢迎加入我们! 

发布了261 篇原创文章 · 获赞 344 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/qq_16855077/article/details/103197221