Apollo配置中心-Api方式与Java方式测试

[toc]

这个部分来演示

  • 创建一个项目并添加测试的key值:timeout=8000 ,batch=9000
  • 通过提供一个token的方式,利用api获取配置信息
  • 创建一个spring boot项目,引入apollo架包,读取配置
  • 通过变跟配置文件,看java项目是不是实时更新配置

创建Apollo项目

  1. 点击添加项目
  2. 输入项目信息,注意应用ID后面也是应用读取的唯一标识
  3. 选择DEV环境,新增配置, 我这里有测试过,所以dev环境多了个gzywtest-c1集群,默认情况下,点击环境都是选择default配置

  4. 点击发布,这样dev环境的配置信息就生效了,接下来来生成一个token测试


利用Apollo Api测试接口

  1. 点击管理员工具-开发平台授权管理

  1. 输入必要的信息,点击创建,生成token

  1. 获取集群下所有Namespace信息接口
    ···
    curl -H ‘Authorization:ab5a901872858535afb48f4da1f7c1c5be522de5‘ \
    -H ‘Content-Type:application/json;charset=UTF-8‘ \
    http://192.168.1.1:8080/openapi/v1/envs/dev/apps/900001/clusters/default/namespaces/application
    ···
    返回结果如下

    
    {
    "appId": "900001",
    "clusterName": "default",
    "namespaceName": "application",
    "comment": "default app namespace",
    "format": "properties",
    "isPublic": false,
    "items": [{
    "key": "redis_host",
    "value": "127.0.0.1",
    "dataChangeCreatedBy": "apollo",
    "dataChangeLastModifiedBy": "apollo",
    "dataChangeCreatedTime": "2018-07-04T16:55:54.000+0800",
    "dataChangeLastModifiedTime": "2018-07-04T16:55:54.000+0800"
    }, {
    "key": "timeout",
    "value": "8000",
    "comment": "",
    "dataChangeCreatedBy": "apollo",
    "dataChangeLastModifiedBy": "apollo",
    "dataChangeCreatedTime": "2018-07-09T11:07:24.000+0800",
    "dataChangeLastModifiedTime": "2018-07-09T11:13:36.000+0800"
    }, {
    "key": "batch",
    "value": "9000",
    "comment": "",
    "dataChangeCreatedBy": "apollo",
    "dataChangeLastModifiedBy": "apollo",
    "dataChangeCreatedTime": "2018-07-09T11:20:02.000+0800",
    "dataChangeLastModifiedTime": "2018-07-09T15:38:02.000+0800"
    }],
    "dataChangeCreatedBy": "apollo",
    "dataChangeLastModifiedBy": "apollo",
    "dataChangeCreatedTime": "2018-07-04T16:11:00.000+0800",
    "dataChangeLastModifiedTime": "2018-07-04T16:11:00.000+0800"
    }
* 结构url的参数规则如下:

![](http://i2.51cto.com/images/blog/201807/13/b33c8b06860ad718981228618a33138f.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
*  Api更多文档参考,参考 https://github.com/ctripcorp/apollo/wiki/Apollo%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0

---

### Java的接入方式
*  参考 https://github.com/ctripcorp/apollo/wiki/Java%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97

其实官方的源包下已经包含一个apollo-demo的项目,如果你在看了上一篇的部署apollo项目后,应该记得脚本最后有一个上传本地架包到maven的步骤,这个就是如果想进行java搭建必须的操作,需要将编译好的架包上传到私有源上去. 因为我实在没调通官方的demo项目,所以根据官方的demo项目自己创建一个新的项目来调试,简单讲述下实现的代码,后面提供下载

1.   打开  http://start.spring.io/  ,输入简单的选项,点击生成项目后下载到本地
![](http://i2.51cto.com/images/blog/201807/13/79fe86478a3f2a122ebd541f9d395e0b.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

1.  引入eclipse

 ![](http://i2.51cto.com/images/blog/201807/13/1e63406fb89585f1625fbfb94bf732d9.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
    * 我这里引入过,所以不能再引入,正常输入目录后,eclipse扫描后点击finish就可以引入

 ![](http://i2.51cto.com/images/blog/201807/13/a5c9912039dba831f7684776a6dadae5.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

1. 在pom.xml中添加下列包
```xml
<!--  引入的包#####################  -->
        <dependency>
            <groupId>com.ctrip.framework.apollo</groupId>
            <artifactId>apollo-client</artifactId>
            <version>0.11.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.ctrip.framework.apollo</groupId>
            <artifactId>apollo-core</artifactId>
            <version>0.11.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>25.1-jre</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.inject/guice -->
        <dependency>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
            <version>4.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
        </dependency>
  1. 将官方apollo-demo下的 com.ctrip.framework.apollo.demo 拷贝到我们的demo下,这里仅测试官方推荐的java读取方式,删除多余的文件,最后的结构如下

  2. 添加运行的环境选择,这里用DEV环境
    
    #我的是window下测试,所以在
  3. C:\opt\settings\server.properties 添加内容 : ENV=dev
  4. 在eclipse 的 META-INF目录下创建一个 app.properties文件添加内容 : app.id=900001
  5. 在 pom.xml上右键选择run - maven install ,然后在 AnnotationApplication 右键run - spring boot app

  1. 运行的输出应该能看到如下输出

    * 在console回车会看到

更新配置,测试是否实时更新配置

  1. 从portal修改dev环境的timeout值变成3000
  2. 发布配置
  3. 可以看到console输出中,timeout已经变更了值

    • 更多的java接入教程,参考https://github.com/ctripcorp/apollo/wiki/Java%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97

原文地址:http://blog.51cto.com/brucewang/2141655

时间: 2024-10-09 14:18:56

Apollo配置中心-Api方式与Java方式测试的相关文章

Apollo配置中心介绍

1.What is Apollo 1.1 背景 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关.参数的配置.服务器的地址-- 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境.分集群管理配置,完善的权限.审核机制-- 在这样的大环境下,传统的通过配置文件.数据库等方式已经越来越无法满足开发人员对配置管理的需求. Apollo配置中心应运而生! 1.2 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境.不同集群的

基于winserver的Apollo配置中心分布式&amp;集群部署实践(正确部署姿势)

前言 前几天对Apollo配置中心的demo进行一个部署试用,现公司已决定使用,这两天进行分布式部署的时候,每一步都踩着坑过来的.因此写文档与需要的朋友分享. 此篇文章不代表官方部署流程,只是自己的部署的实践方式,屏蔽了一些官方的多余的部署讲解.如果有问题还请到Apollo的wiki文档进行查看:https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D

(一)Apollo配置中心介绍

1.What is Apollo 1.1 背景 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关.参数的配置.服务器的地址…… 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境.分集群管理配置,完善的权限.审核机制…… 在这样的大环境下,传统的通过配置文件.数据库等方式已经越来越无法满足开发人员对配置管理的需求. Apollo配置中心应运而生! 1.2 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境.不同集群的

Centos7中使用Docker部署Apollo配置中心

采用微服务开发框架开发项目时会涉及多个系统,如果要更改配置参数需要在多个系统间逐一更改,比较费时,而且容易遗漏,效率低下,次问题可以采用Apollo配置中心的方式解决,下面将介绍如何配置: 准备环境:本地环境win7/win10,docker所在服务器centos7 第一步 下载Apollo到本地并解压到磁盘,URL:https://github.com/ctripcorp/apollo (linux: wget https://github.com/ctripcorp/apollo/archi

Apollo配置中心组件讲解

Apollo配置中心有什么组件,组件有什么作用 ? 从编译出来的jar包展开来讲,或是说运行包来说,只有4个组件,分别是: Portal 提供Web界面供用户管理配置 通过Meta Server获取Admin Service服务列表(IP+Port),通过IP+Port访问服务 在Portal侧做load balance.错误重试 Admin Service 提供配置管理接口 提供配置修改.发布等接口 接口服务对象为Portal Config Service Config Service 包中包

Docker部署Apollo配置中心

开始使用Docker部署Apollo配置中心之前,首先需要机器安装Docker环境本文使用Vresion: 2.0.0.0-mac81 (29211)测试部署,并使用以下镜像: mysql apollo-configservice apollo-adminsrevice apollo-portal 因为本文为纯部署目的,因此不在这里讲解Apollo的一些知识,如有需要可查看官方GitHub地址(https://github.com/ctripcorp/apollo). 上面提到的镜像除了Mysq

Apollo配置中心动态刷新日志级别

Apollo配置中心动态刷新日志级别 添加次配置后,当在apollo上面调整日志级别不需要重启服务器,马上就能生效 /** * 结合apollo动态刷新日志级别 * @author: nj * @date: 2019/1/21:下午5:00 */ @Configuration public class LogListenerConfig { private static final Logger logger = LoggerFactory.getLogger(LoggerConfigurati

apollo 配置中心的安装与使用

请参考:https://blog.csdn.net/z960339491/article/details/80667559 一.简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景. 官方github:https://github.com/ctripcorp/apollo 作者对Apollo对介绍:https://github.com/ctripco

携程 Apollo 配置中心传统 .NET 项目集成实践

官方文档存在的问题 可能由于 Apollo 配置中心的客户端源码一直处于更新中,导致其相关文档有些跟不上节奏,部分文档写的不规范,很容易给做对接的新手朋友造成误导. 比如,我在参考如下两个文档使用传统 .NET 客户端做接入的时候就发现了些问题. ctripcorp/apollo - .Net客户端使用指南 ctripcorp/apollo.net - .Net客户端之与 System.Configuration.ConfigurationManager 集成 两个文档关于标识应用身份的AppI