广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Quarkus集成apollo配置中心
  • 422
分享到

Quarkus集成apollo配置中心

2024-04-02 19:04:59 422人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录前言Quarkus的config构成microProfileconfig设计集成apollo 前言 Quarkus默认的配置文件和Spring Boot 一样,默认读取

前言

Quarkus默认的配置文件和Spring Boot 一样,默认读取application.properties文件。

apollo是一个配置集中管理的开源项目,已被广泛应用。

下面我们就分析下Quarkus的配置加载结构,将apollo集成进来。

Eclipse MicroProfile Config:https://GitHub.com/eclipse/microprofile-config/

smallrye-config:Https://github.com/smallrye/smallrye-config

Quarkus的config构成

Quarkus的配置功能是基于Eclipse MicroProfile Config配置规范而来的,MicroProfile Config本身不提供配置功能的实现,只提供了基础的配置api抽象,smallrye-config是这个api的其中一个实现,Quarkus里用的就是smallrye-config。

microProfile config设计

1、可以通过ConfigProvider#getConfig()访问应用程序的当前配置。

2、一个配置包括从org.eclipse.microprofile.config.spi.ConfigSource接口收集的列表。

这些ConfigSource根据其序号进行排序。这样,可以从外部以较低的重要性覆盖配置。

默认情况下,有3个默认的ConfigSources:

  • System.getProperties() (ordinlal =400)
  • System.getenv()(ordinal =300)
  • ClassPath上的所有META-INF / microprofile-config.properties文件。(默认ordinal = 100,可通过每个文件内的config_ordinal属性分别配置)

因此,可以在与应用程序打包在一起的上述文件中指定默认值,以后可以为每个部署覆盖默认值。较高的序数优先于较低的序数。

从microProfile config设计来看,配置文件应该是META-INF / microprofile-config.properties文件才对,但是除了上面默认的三个配置源外,Quarkus也提供了一个,代码见:

io.quarkus.runtime.configuration.ApplicationPropertiesConfigSource,

如:

public abstract class ApplicationPropertiesConfigSource extends PropertiesConfigSource {
    private static final long serialVersionUID = -4694780118527396798L;
    static final String APPLICATION_PROPERTIES = "application.properties";
    static final String MP_PROPERTIES = "META-INF/microprofile-config.properties";
    ApplicationPropertiesConfigSource(InputStream is, int ordinal) {
        super(readProperties(is), APPLICATION_PROPERTIES, ordinal);
    }
    ApplicationPropertiesConfigSource(InputStream is, String nm, int ordinal) {
        super(readProperties(is), nm, ordinal);
    }
    private static Map readProperties(final InputStream is) {
        if (is == null) {
            return Collections.emptyMap();
        }
        try (Closeable ignored = is) {
            try (InputStreamReader isr = new InputStreamReader(is, StandardCharsets.UTF_8)) {
                try (BufferedReader br = new BufferedReader(isr)) {
                    final Properties properties = new Properties();
                    properties.load(br);
                    return (Map) (Map) properties;
                }
            }
        } catch (IOException e) {
            throw new IOError(e);
        }
    }
}

集成apollo 

综上,集成apollo就变得异常简单了,首先实现ConfigSource接口,我的实现如下:


public class ApolloConfigSource implements ConfigSource {
    private final static String CONFIG_SOURCE_NAME = "Apollo";
    private final Config config = ConfigService.getAppConfig();
    @Override
    public SetgetPropertyNames() {
        return config.getPropertyNames();
    }
    @Override
    public int getOrdinal() {
        return 600;
    }
    @Override
    public Map getProperties() {
        Map properties = new HashMap<>(6);
        for (String key : getPropertyNames()) {
            properties.put(key, config.getProperty(key, null));
        }
        return properties;
    }
    @Override
    public String getValue(String propertyName) {
        return config.getProperty(propertyName, null);
    }
    @Override
    public String getName() {
        return CONFIG_SOURCE_NAME;
    }
}

第二步,在META-INF/services下,创建文件

org.eclipse.microprofile.config.spi.ConfigSource

将你的实现全路径名称写入这个文件,声明配置源即可,如下图所示: 

 现在,你可以将你的application.properties中的所有配置全部复制到apollo中了,然后删除这个文件,重新启动项目,你会发现一起运行正常

以上就是Quarkus集成apollo配置中心的详细内容,更多关于Quarkus集成apollo配置的资料请关注编程网其它相关文章!

--结束END--

本文标题: Quarkus集成apollo配置中心

本文链接: https://www.lsjlt.com/news/140219.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Quarkus集成apollo配置中心
    目录前言Quarkus的config构成microProfileconfig设计集成apollo 前言 Quarkus默认的配置文件和spring boot 一样,默认读取...
    99+
    2022-11-13
  • SpringBoot如何集成Apollo配置中心
    这篇文章将为大家详细讲解有关SpringBoot如何集成Apollo配置中心,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。系统环境SpringBoot 版本:2.1.8.RELEASEApollo 版本:...
    99+
    2023-06-02
  • 使用Springboot整合Apollo配置中心
    Apollo简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理...
    99+
    2022-11-12
  • 集成apollo动态日志取缔logback-spring.xml配置
    目录前言APOLLO动态日志spring日志系统热更新日志级别apollo日志配置变更动态下发实现日志调整热更新消灭LOGBACK-SPRING.XML配置Logback加载原理ja...
    99+
    2022-11-13
  • 如何使用Springboot整合Apollo配置中心
    本篇内容介绍了“如何使用Springboot整合Apollo配置中心”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Apollo简介Apoll...
    99+
    2023-06-20
  • k8s如何部署高可用配置中心apollo
    这篇文章主要讲解了“k8s如何部署高可用配置中心apollo”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“k8s如何部署高可用配置中心apollo”吧!部署...
    99+
    2022-10-19
  • spring cloud如何集成nacos配置中心
    目录spring cloud集成nacos配置中心一、添加依赖二、添加bootstrap.yml配置文件三、添加远程配置nacos作为SpringCloud配置中心一、背景介绍二、项...
    99+
    2022-11-12
  • SpringBoot整合Apollo配置中心快速使用详解
    目录一、简介二、使用1. 测试项目搭建2. Apollo配置中心的配置3. 项目启动与测试4.常见整合问题附录一、简介 1.Apollo 是什么?Apollo(阿波罗)是携程框架部门...
    99+
    2022-11-12
  • springboot logback如何从apollo配置中心读取变量
    目录springbootlogback从apollo配置中心读取变量1、在apollo配置中心添加2、项目的application.yml配置文件配置如下3、在logback.xml...
    99+
    2022-11-12
  • 集成apollo动态日志取缔logback-spring.xml配置的方法
    这篇文章主要介绍“集成apollo动态日志取缔logback-spring.xml配置的方法”,在日常操作中,相信很多人在集成apollo动态日志取缔logback-spring.xml配置的方法问题上存在疑惑,小编查阅了各式资料,整理出简...
    99+
    2023-06-29
  • SpringBoot怎么集成Nacos实现注册中心与配置中心
    这篇文章主要介绍“SpringBoot怎么集成Nacos实现注册中心与配置中心”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot怎么集成Nacos实现注册中心与配置中心”文章能帮助大...
    99+
    2023-07-05
  • Quarkus中RESTEasy Reactive集成合并master分支
    目录前言它是什么?为什么非常重要?还有什么其他好处?新的请求/响应过滤器设计新*Param注解更简单的参数和上下文注入新的最佳消息正文阅读器/编写器默认内容类型CDI整合每类异常映射...
    99+
    2022-11-13
  • Quarkus中ConfigSourceInterceptor的加密配置实现
    目录前言配置拦截器ConfigSourceInterceptor内置的实现加密配置实现结语前言 加密配置是一个很常见的需求,在spring boot生态中,已经有非常多的第三方sta...
    99+
    2022-11-13
  • docker compose 一键部署分布式配置中心Apollo的过程详解
    简介 说起分布式肯定要想到分布式配置中心、分布式日志、分布式链路追踪等 在分布式部署中业务往往有很多配置比如: 应用程序在启动和运行时需要读取一些配置信息,配置基本上伴随着应用程序的...
    99+
    2022-11-12
  • SpringCloud安装Nacos完成配置中心
    目录1. Nacos介绍2. docker安装Nacos2.1 docker-compose.yaml2.2 启动后访问控制台3.Springboot集成Nacos3.1 pom依赖...
    99+
    2022-11-13
  • hystrix配置中Apollo与Archaius对比分析
    目录前言ARCHAIUS警告日志我们遇到的问题HYSTRIX在FEIGN中的加载过程SPRINGBOOT自动加载HYSTRIXHYSTRIX的动态兜底配置APOLLO配置驱动HYST...
    99+
    2022-11-13
  • hystrix配置中Apollo与Archaius有什么不同
    这篇文章主要介绍了hystrix配置中Apollo与Archaius有什么不同的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇hystrix配置中Apollo与Archaius有什么不同文章都会有所收获,下面我们...
    99+
    2023-06-29
  • 3、配置中心
    公众号: java乐园 1、 当一个系统中的配置文件发生改变的时候,经常的做法是重新启动该服务,才能使得新的配置文件生效,spring cloud config可以实现微服务中的所有系统的配置文件的统一管理,而且还可以实现当配置文件发生变...
    99+
    2023-01-31
    中心
  • php-eclipse集成配置(Ecli
    1.安装php,配置php  解压php5到指定目录这里直接放到c盘,即:C:\php  修改php目录下的php.ini-development为php.ini,打开php.ini修改如下内容:    extension_dir = “....
    99+
    2023-01-31
    php eclipse Ecli
  • 如何在Java中对Apollo配置进行更新
    这期内容当中小编将会给大家带来有关如何在Java中对Apollo配置进行更新,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作