Apollo的搭建

Apollo的搭建

1.环境准备

jdk : 1.8+         mysql  5.6.5+

2.下载

两种方式:

a.下载源码自己编译(需要修改源码的可以选择)

源码:https://github.com/ctripcorp/apoll

b.编译好的直接使用

地址:Releases · apolloconfig/apollo · GitHub

3.将apollo-adminservice 、apollo-configservice和apollo-portal上传至服务器并解压

4.编辑配置文件

a.修改apollo-adminservice和apollo-configservice文件config/application-github.properties

# DataSource

spring.datasource.url = jdbc:mysql://sh-cdb-2h0hokg2.sql.tencentcdb.com:61540/kxg_apollo_config_db_dev?characterEncoding=utf8

spring.datasource.username = kxg_apollo

spring.datasource.password = QmFzZTY05piv572R57uc5LiK5pyA5bi46KeB55

b.修改apollo-portal文件config/application-github.properties

# DataSource

spring.datasource.url = jdbc:mysql://sh-cdb-2h0hokg2.sql.tencentcdb.com:61540/kxg_apollo_portal_db_dev?characterEncoding=utf8

spring.datasource.username = kxg_apollo

spring.datasource.password = QmFzZTY05piv572R57uc5LiK5pyA5bi46KeB55

c.修改apollo-portal文件config/apollo-env.properties

#local.meta=http://localhost:8080

dev.meta=http://localhost:8080      8899 和configservice中的端口一样,改成外置eureka另说

pro.meta=http://localhost:8080   

5.公网使用

修改apollo-adminservice和apollo-configservice文件scrips/start.sh

PS -: 注意端口占用

Apollo的使用

导入maven依赖

<dependency>

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

    <artifactId>apollo-client</artifactId>

    <version>1.7.0</version>

</dependency>

<dependency>

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

    <artifactId>apollo-core</artifactId>

    <version>1.7.0</version>

</dependency>

在recourse的目录下配置

写一个java类

import com.ctrip.framework.apollo.Config;

import com.ctrip.framework.apollo.model.ConfigChange;

import com.ctrip.framework.apollo.model.ConfigChangeEvent;

import com.ctrip.framework.apollo.spring.annotation.ApolloConfig;

import com.ctrip.framework.apollo.spring.annotation.ApolloConfigChangeListener;

import org.springframework.beans.factory.annotation.Value;

/**

 * @Author: Niu Lilu

 * @Date: 2020/8/9 9:49

 * @Description:牛立露你写点注释吧!

 */

public class TestJavaConfigBean {

    @ApolloConfig("application")

    private Config config; //inject config for namespace application

    @Value("${batch:400}")//如果配置中心没有值,默认key为test的value值为test

    private String name;

    //config change listener for namespace application

    @ApolloConfigChangeListener("application")

    private void anotherOnChange(ConfigChangeEvent changeEvent) {

        ConfigChange change = changeEvent.getChange("batch");

        System.out.println(String.format("Found change - key: %s, oldValue: %s,"

                + " newValue: %s, changeType: %s", change.getPropertyName(), change.getOldValue(), change.getNewValue(), change.getChangeType()));

    }

}

启动类注解

使用

@RestController

public class TestApolloAnnotationBean {

    @ApolloConfig

    private Config config; //inject config for namespace application

    @Value("${batch:100}")

    private int batch;

    //config change listener for namespace application

    @ApolloConfigChangeListener

    private void someOnChange(ConfigChangeEvent changeEvent) {

        //update injected value of batch if it is changed in Apollo

        if (changeEvent.isChanged("batch")) {

            batch = config.getIntProperty("batch", 100);

        }

    }

    //config change listener for namespace application

    @ApolloConfigChangeListener("application")

    private void anotherOnChange(ConfigChangeEvent changeEvent) {

        if (changeEvent.isChanged("batch")) {

            batch = config.getIntProperty("batch", 100);

        }

    }

    //example of getting config from injected value

    //the program needs to update the injected value when batch is changed in Apollo using @ApolloConfigChangeListener shown above

    public int getBatch() {

        return this.batch;

    }

    @GetMapping("/")

    public String get(){

        return getBatch()+"";

    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/111308.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

集成测试规范

集成测试是指将所有模块或组件组合在一起&#xff0c;测试整个系统是否符合预期的功能和性能要求。以下是一个简单的集成测试模板&#xff0c;可以根据具体的测试需求进行修改和扩展&#xff1a; 1. 测试计划 a. 测试范围&#xff1a;测试的模块或组件&#xff0c;以及需要覆…

卷王问卷考试系统SurveyKing,开源调查问卷和考试系统源码

卷王问卷考试系统/SurveyKing是一个功能最强大的开源调查问卷和考试系统&#xff0c;可以快速部署&#xff0c;并适用于各行业。该系统提供了在线表单设计、数据收集、统计和分析等功能&#xff0c;支持20多种题型&#xff0c;多种创建问卷方式和多种问卷设置。 无论您是需要进…

力扣刷题 day49:10-19

1.二进制手表 二进制手表顶部有 4 个 LED 代表 小时&#xff08;0-11&#xff09;&#xff0c;底部的 6 个 LED 代表 分钟&#xff08;0-59&#xff09;。每个 LED 代表一个 0 或 1&#xff0c;最低位在右侧。 例如&#xff0c;下面的二进制手表读取 "4:51" 。 给你…

centos 7.9 安装python 3.10的tls问题,

本地开发升级成了py3.10.6,服务器测试时安装py3.10.4 发现无法正常使用pip3 pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. 印象中py3的高版本依赖高版本的openssl,centos 7下默认的openssl为1.0.x, 问题很简…

异步加载JS的方法

异步加载 JavaScript (JS) 文件是提高网页性能的一种常用技术&#xff0c;这样可以使页面在等待 JS 文件加载和执行时不会阻塞。以下是一些异步加载 JS 的方法&#xff1a; 使用 <script> 标签的 async 属性 通过将 <script> 标签的 async 属性设为 true&#xf…

Java后端开发(六)-- 二维码的生成

目录 1. 需要的jar导入 2. ConvertToMultipartFile类 3. QRCodeUtil(二维码工具类) 4.示例演示: 1. 需要的jar导入 <!-- 生成二维码 --><dep

Linux Docker图形化工具Portainer如何进行远程访问

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 Portainer 是一个轻量级的容器管理工具&#xff0c;可以通过 Web 界面对 Docker 容器进行管理和监控。它提供了可…

1814_ChibiOS中的时间以及时间间隔处理

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. 时间的相关配置&#xff0c;有tick的计数精度、时钟频率、间隔时间精度、时间类型大小等不同的配置。这些参数&#xff0c;涉及到系统的时间计数…

日志回滚工作原理剖析及在文件系统的作用

日志回滚原理 当涉及到崩溃恢复和一致性保护时&#xff0c;日志回滚是一种常见的机制。它通过记录写入操作到一个事务日志中&#xff0c;而不是直接应用到文件系统&#xff0c;以保护文件系统的一致性。下面是日志回滚的一般工作原理&#xff1a; 日志记录&#xff1a;在进行写…

FPGA驱动SDRAM

文章目录 一.SDRAM简介&#xff08;手册分析&#xff09;1.1存储空间1.2特征1.3引脚1.4内部结构1.5需要关注的一些时间1.6模式寄存器1.7命令真值表 二.时序分析&#xff08;手册分析&#xff09;2.1Avalon时序2.2行激活时序2.3列读写时序2.4读数据2.5写数据 三.初步设计3.1状态…

vue3插件开发,上传npm

创建插件 在vue3工程下&#xff0c;创建组件vue页: toolset.vue。并设置组件名称。注册全局组件。新建index.js文件。内容如下&#xff0c;可在main.js中引入index.js&#xff0c;注册该组件进行测试。![在这里插入图片描述](https://img-blog.csdnimg.cn/a3409d2cbeec41c797d5…

springboot整合tkmybatis和tkmybatis 逆向工程

1.添加依赖 <!--mybaits--> <dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>2.0.3</version> </dependency> 打入mybatis.xml <resources><resourc…

零基础学习HTML5

1. 使用软件 vscode 谷歌浏览器 vscode下载地址&#xff1a;https://code.visualstudio.com/ 谷歌可以使用360软件管家安装 2. 安装插件 在vscode中安装插件&#xff1a;open in browser&#xff0c;点击Extensions后搜索对应插件名然后点击安装Install 安装完成后可在htm…

linux 下的java gate服务断掉的原因及解决思路

一.查询断掉的原因 1.查看gate日志&#xff0c;发现没有报错信息&#xff0c;突然就断了 2.查看是不是OOM导致 dmesg | grep java 发现确实Out of Memory了 3.发生问题的原因&#xff1a; 默认情况下, Linux kernels(内核)允许进程申请的量超过系统可用内存. 这是因为,在大多数…

org.apache.sshd的SshClient客户端 连接服务器执行命令 示例

引入依赖 <dependency><groupId>org.apache.sshd</groupId><artifactId>sshd-core</artifactId><version>2.9.1</version></dependency>示例代码&#xff0c;可以直接执行&#xff0c;也可以做替换命令、维护session等修改 p…

计算机操作系统-第十一天

目录 1、进程的状态 创建态与就绪态 运行态 终止态 新建态 结束态 进程状态的转换 进程的组织方式 链接方式&#xff08;常见&#xff09; 索引方式&#xff08;少见&#xff09; 本节思维导图 1、进程的状态 创建态与就绪态 1、进程正在被创建时&#xff0c;处于…

零基础搭建个人网站详细流程

最近两天&#xff0c;为了给自己的工具类APP备案&#xff0c;买了阿里云ECS和域名。虽然很想说离线工具APP不用联网&#xff0c;但是现实就很无语。言归正传&#xff0c;既然买了总不能将它们闲置着&#xff0c;就诞生了建站的想法&#xff0c;至少还能放个用户协议和隐私协议。…

01-初识HTML和CSS

1.HTML与CSS 1.1.什么是HTML&#xff1f;什么是CSS&#xff1f; HTML是HyperText Markup Language(超文本标记语言) ​ 它不是一种编程语言&#xff0c;而是一种标记语言&#xff0c;用于告诉浏览器如何构造你的页面。它可以由一系列HTML元素组合成web开发人员想要的简单或者…

nodejs+vue云旅青城系统-旅游网站

用户可以实现首页、个人中心、订票信息管理、路线制定管理等。不仅使服务管理难度变低了&#xff0c;还提升了管理的灵活性。目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 …

互联网Java工程师面试题·Java 总结篇·第九弹

目录 75、阐述 JDBC 操作数据库的步骤。 76、Statement 和 PreparedStatement 有什么区别&#xff1f;哪个性 能更好&#xff1f; 77、使用 JDBC 操作数据库时&#xff0c;如何提升读取数据的性能&#xff1f;如何提升更新数据的性能&#xff1f; 78、在进行数据库编程时&a…