apollo应用配置集成及使用

1. 开发环境Apollo地址

    用户名:apollo 密码:admin

    开发环境Apollo管理台地址:http://localhost:8070/

    开发环境Apollo Eureka地址:http://localhost:8080/

2. pom.xml引用客户端

<dependency>

    <groupId>com.ctrip.framework.apollo</groupId>

    <artifactId>apollo-client</artifactId>

    <version>1.1.0</version>

</dependency>

3. springboot项目集成

  • properties配置:


    //配置唯一appid既项目创建时的唯一id

    app.id=110000001

    //指定配置中心Eureka地址既metaservice


    apollo.meta=@apollo.meta.service@


    //启动的bootstrap阶段,向Spring容器注入

    apollo.bootstrap.enabled = true


    //指定该项目关联的相关作用域


    apollo.bootstrap.namespaces=application,TEST1.jdbc,部门.作用域

4. spring项目集成

创建/META-INF/app.properties 内容app.id=110000001

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:apollo="http://www.ctrip.com/schema/apollo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.ctrip.com/schema/apollo http://www.ctrip.com/schema/apollo.xsd">
<!-- application 的优先级别 -->
<apollo:config order="2"/>
<!-- 这个是最复杂的配置形式,指示Apollo注入TEST1.jdbc和TEST1.xxljob namespace的配置到Spring环境中,并且顺序在application前面 -->
<apollo:config namespaces="TEST1.xxljob,TEST1.jdbc" order="1"/>
</beans>

5. 使用及应用


//=========== springboot start ===========
// 启动类加上
@Configuration
@EnableApolloConfig
//=========== springboot end =========== //=========== start =========== // 获取注入某个作用域的配置
// 如TEST1.jdbc
@ApolloConfig("部门.作用域")
private Config config; // 获取某个值
@Value("${key}")
private String value; // 监听多个或单个作用域
@ApolloConfigChangeListener({"application", "TEST1.jdbc"})
private void anotherOnChange(ConfigChangeEvent changeEvent) {
System.out.println("===================");
// 获取key为test的change属性 包括新值老值等
ConfigChange change = changeEvent.getChange("test");
System.out.println(String.format("Found change - key: %s, oldValue: %s,"
+ " newValue: %s, changeType: %s", change.getPropertyName(), change.getOldValue(), change.getNewValue(), change.getChangeType()));
System.out.println("===================");
} //监听所有作用域
@ApolloConfigChangeListener
private void someOnChange(ConfigChangeEvent changeEvent) {
//如果值发生修改了 获取属性
if (changeEvent.isChanged("batch")) {
batch = config.getIntProperty("batch", 100);
}
} //获取指定类型属性
public int getTimeout() {
return config.getIntProperty("timeout", 200);
} //=========== end ===========

6. 注意项

  • XXXXXXConfigurer类

    org.springframework.beans.factory.config.PropertyPlaceholderConfigurer如使用以上类请替换成org.springframework.context.support.PropertySourcesPlaceholderConfigurer。
    另外Spring 3.1以后就不建议使用PropertyPlaceholderConfigurer了,要改用PropertySourcesPlaceholderConfigurer。
  • 多环境eureka地址动态切换


    1. VM options修改eureka地址

    -apollo.meta.service=XXXXX.XXX.XXX


    2. 使用maven profile

    <profiles>

        <profile>

            <id>local</id>

            <activation>

                <activeByDefault>true</activeByDefault>

            </activation>

            <properties>

                <apollo.meta.service>
                    http://localhost:8080
                </apollo.meta.service>

            </properties>

        </profile>

        <profile>

            <id>dev</id>

            <properties>

                <apollo.meta.service>
                    http://devhost:38080
                </apollo.meta.service>

            </properties>

        </profile>

        <profile>

            <id>pro</id>

            <properties>

                <apollo.meta.service>
                    http://prohost:38080
                </apollo.meta.service>

            </properties>

        </profile>

    </profiles>

apollo应用配置集成及使用的更多相关文章

  1. apollo 项目配置中心开源框架部署

    apollo 于我带来的好处 1. 项目之前的配置信息全部都在 resources 目录下,当然这里我使用的是 Spring Boot 搭建的项目.使用 apollo 后,配置信息全部转移到 apol ...

  2. springboot集成Apollo分布式配置

    安装Apollo服务 1.安装mysql 地址:https://www.cnblogs.com/xuaa/p/10782352.html 2.下载Apollo源码到本地 地址:https://gith ...

  3. 携程Apollo统一配置中心的搭建和使用

    原文链接:https://blog.csdn.net/luhong327/article/details/81453001 一.Apollo配置中心介绍 1.What is Apollo 1.1 Ap ...

  4. 携程阿波罗(Apollo)配置中心

    携程阿波罗(Apollo) https://www.cnblogs.com/xiaxiaolu/p/10025597.html 一.瞎扯点什么 1.1 阿波罗 ​ 阿波罗是希腊神话中的光明之神.文艺之 ...

  5. python访问Apollo获取配置

    操作系统 : CentOS7.3.1611_x64 Python 版本 : 3.6.8 Apollo源码地址: https://github.com/ctripcorp/apollo 访问Apollo ...

  6. netcore项目中使用 SpringCloudConfig 和apollo做配置中心

    版权所有,转载请注明出处 https://www.cnblogs.com/netqq/p/14251403.html 一.使用apollo作为配置中心 首先apollo 项目简介和安装请自行百度,本文 ...

  7. Apollo 中配置String、Map和List和默认值

    摘要:在Apollo 中,配置String.Map和List等类型的信息,同时设置默认值. 综述   随着业务需求的变更,需要在Apollo中配置一个Map<String, List>类型 ...

  8. apollo与springboot集成实现动态刷新配置

    分布式apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性. 本 ...

  9. 携程apollo系列-客户端集成

    本文讲解如何在 Java 程序中集成 Apollo 配置, 主要涉及到一些基础用法. 对于一些高级用法, 比如如何加密/解密配置项 (可用于数据库密码配置), 如何动态切换数据源地址,如何动态切换日志 ...

随机推荐

  1. delphi http 403 获取不到服务器返回的错误消息 用浏览器打开url可以返回

    用delphi的idhttp Get一个url如下: http://117.135.237.4:9090/agent/api/treatmentModeUpdate?userName=VDAwMIMQ ...

  2. Win 8下Rime输入法无法同步的临时解决方法

    意外发现了Rime输入法(OS X上叫鼠须管'Squirrel',windows上叫小狼毫'Weasel',linux上叫中州韵'ibus-rime',连名字都起的这么牛逼),真是神器啊,流畅的速度, ...

  3. asp:Repeater数据源为空时处理方式

    当Repeater的数据源为空时,会显示空白,界面不友好,以下方式可以简单处理. <asp:repeater runat="server" id="rplist2& ...

  4. .Net Core Runtime安装说明

    在开发阶段,都是直接安装.Net Core的SDK,但是在部署的时候你还是直接装SDK吗?当然直接装SDK也没什么问题,也可以少一些麻烦.但是如果你像我一样不喜欢在产线上装SDK,只想装Runtime ...

  5. opencv3.3 安装环境教程以及实现个图片读取功能

    一.opencv3.3安装环境 1. 首先要安装这个opencv3.3,我们必须要安装一个python (IDLE:集成开发环境),我自己安装了IDLE3.6和pycharm2017,这些软件都可以去 ...

  6. mongodb 日志清理

    #!/bin/bash #Rotate the MongoDB logs to prevent a single logfile from consuming too much disk space. ...

  7. [USACO17FEB]Why Did the Cow Cross the Road III P(CDQ分治)

    题意 两列$n$的排列,相同的数连边,如果一对数有交叉且差的绝对值$>k$,则$++ans$,求$ans$ 题解 可以把每一个数字看成一个三元组$(x,y,z)$,其中$x$表示在第一列的位置, ...

  8. python2 中 unicode 和 str 之间的转换及与python3 str 的区别

    在python2中字符串分为unicode 和 str 类型 Str To Unicode 使用decode(), 解码 Unicode To Str 使用encode(), 编码 返回数据给前端时需 ...

  9. SpringMvc拦截器运行原理。

    首先,先简单的说一下怎么配置SpringMvc的拦截器. 分两步,第一步先定义一个类,实现HandlerInterceptor接口. import javax.servlet.http.HttpSer ...

  10. Redis-Java 交互的应用

    一.首先介绍一下Redis Redis是目前业界使用最广泛的内存数据存储.相比memcached,Redis支持更丰富的数据结构,例如hashes, lists, sets等,同时支持数据持久化.除此 ...