热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DuiC一致配置管理2

为何设想DuiC在工作中我们经常要根据差别环境设置差别的参数,让项目的天真性、可用性变得更高,那天真的设置就变得必不可少,虽然现在已存在许多设置治理解决方案,然则治理体式格局局限性

为何设想 DuiC

在工作中我们经常要根据差别环境设置差别的参数,让项目的天真性、可用性变得更高,那天真的设置就变得必不可少,虽然现在已存在许多设置治理解决方案,然则治理体式格局局限性大,顺应局限窄。

DuiC 在设想初就考虑到设置的运用局限,将设置猎取体式格局设想为 RESTful API 的体式格局,可支撑任何服务器端,客户端以及 WEB 轻松猎取设置。其次 DuiC 治理设置一致采纳 YAML 的体式格局,并供应 WEB 编辑器及语法高亮,语法校验等功用,下降设置修正的错误率。

DuiC 源码:
https://github.com/zhudyos/duic

已完成的功用

  1. 搜检设置状况
  2. 经由过程 key 猎取某个设置
  3. 经由过程 name/profile 猎取团体设置
  4. 多个 profile 设置深度兼并
  5. 设置权限治理
  6. 分布式设置治理
  7. 容器布置

Swagger 文档:
https://app.swaggerhub.com/ap…

Docker 镜像:
https://hub.docker.com/r/zhud…

Java Client API

DuiC 供应 Java 客户端 API 协助你疾速猎取设置,支撑 Android/Java/JavaWeb/Spring 猎取设置同时支撑热加载设置。

duic-java-client:
https://github.com/zhudyos/du…

Java/Android 运用

运用 API 供应的 ConfigUtils 工具包猎取设置。
建立 Config 实例并将设置为 ConfigUtils 的默许设置,运用。

Config cOnfig= new Config.Builder()
.baseUri("https://duic.zhudy.io/api/v1")
.name("hello")
.profile("world")
// .configToken("...")
// .reloadPlot(new ReloadPlot(10, TimeUnit.SECONDS)) // 重载
// .failFast(true) // 疾速失利
// .listener() // 设置加载监听
.build();
ConfigUtils.setDefaultConfig(config);

Java Web 运用

运用 API 供应的 ConfigUtils 工具包猎取设置。
在 web.xml 中设置监听器



duicConfigLocation
classpath:duic.properties


io.zhudy.duic.config.web.DuicConfigContextListener

在 duic.properties 文件中增添设置治理中心信息

duic.base.uri=https://duic.zhudy.io/api/v1
duic.name=hello
duic.profile=world
duic.config.token=
duic.reload.period=10
duic.reload.unit=SECONDS
duic.fail.fast=false
# 多个 DuicListener 采纳英文逗号(,)分开
duic.listeners=xx.MyDuicListener

在 Spring 中运用

  1. 运用 API 供应的 ConfigUtils 工具包猎取设置
  2. 运用 @Value 的体式格局注入设置(引荐

以上2种体式格局都支撑热加载,引荐运用 @Value 的体式格局注入设置,这类体式格局关于你的代码没有任何的浸入性,支撑 spring3.2 以上的版本运用。

  1. 运用注解的体式格局初始化

    @Bean
    public static DuicConfigBeanFactoryPostProcessor duicConfigBeanFactoryPostProcessor() {
    DuicConfigBeanFactoryPostProcessor processor = new DuicConfigBeanFactoryPostProcessor();
    processor.setBaseUri("https://duic.zhudy.io/api/v1");
    processor.setName("hello");
    processor.setProfile("world");
    return processor;
    }

  2. 运用 XML 的体式格局初始化





注入设置

@Component
public class Example {
@Value("${k1.string}")
private String k1;
}

Spring Boot 支撑

DuiC 也供应了 duic-spring-cloud-config-client 来支撑 spring-boot,运用 DuiC 治理设置能够完整替换 spring-cloud-config。

duic-spring-cloud-config-client:
https://github.com/zhudyos/du…

该工具包支撑 @ConfigurationProperties@Value 注入设置,同时也支撑热加载。
注重假如你运用 @ConfigurationProperties 注入设置而且想要热加载设置须要合营运用 @RefreshScope 注解。

关于更多 @RefreshScope 的材料请检察 spring-cloud 官方文档:https://cloud.spring.io/sprin…

运用示例在 bootstrap.yml 文件中增添以下设置

spring:
application:
name: samples (1)
duic:
spring:
cloud:
config:
watch:
enabled: true (2)
initial_delay: 10000 (3)
fixed_delay: 10000 (4)
uri: https://duic.zhudy.io/api/v1 (5)
profile: first,second (6)
# token: [TOKEN] (7)

duic docker-compose

https://github.com/zhudyos/du…

关于 DuiC 越发细致的形貌,能够检察堆栈中在 readme。

在线演示平台:
https://duic.zhudy.io/index.html

e-mail: kevinz@weghst.com

password: 123456

人人能够运用在线演示平台,尝试运用其供应的 API 及 SDK。
友谊提示:服务器设置较差,接见速率能够不是很快,请体贴。


推荐阅读
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • Cadence SPB 16.5 安装指南与注意事项
    本文提供了详细的 Cadence SPB 16.5 安装步骤,包括环境配置、安装过程中的关键步骤以及常见问题的解决方案。适合初次安装或遇到问题的技术人员参考。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • 帝国cms各数据表有什么用
    CMS教程|帝国CMS帝国cmsCMS教程-帝国CMS精易编程助手源码,ubuntu桥接设置,500错误是tomcat吗,爬虫c原理,php会话包括什么,营销seo关键词优化一般多 ... [详细]
  • 本文介绍了多种Eclipse插件,包括XML Schema Infoset Model (XSD)、Graphical Editing Framework (GEF)、Eclipse Modeling Framework (EMF)等,涵盖了从Web开发到图形界面编辑的多个方面。 ... [详细]
  • 本文详细介绍了Spring AOP注解的基本概念及其实现方式,并通过实例演示了如何在项目中使用这些注解进行面向切面的编程。旨在帮助开发者更好地理解和运用Spring AOP功能。 ... [详细]
  • 探讨了生成时间敏感的一次性伪随机密码的方法,旨在通过加入时间因素防止重放攻击。 ... [详细]
  • 本文详细介绍了在 Windows 7 上安装和配置 PHP 5.4 的 Memcached 分布式缓存系统的方法,旨在减少数据库的频繁访问,提高应用程序的响应速度。 ... [详细]
  • 深入解析轻量级数据库 SQL Server Express LocalDB
    本文详细介绍了 SQL Server Express LocalDB,这是一种轻量级的本地 T-SQL 数据库解决方案,特别适合开发环境使用。文章还探讨了 LocalDB 与其他轻量级数据库的对比,并提供了安装和连接 LocalDB 的步骤。 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 本文深入探讨了在Spring Boot中处理RESTful风格的表单请求的方法,包括请求参数处理、请求映射以及RESTful设计原则的应用。文章详细介绍了如何利用HTTP动词(如GET、POST、PUT、DELETE)来操作资源,并结合Spring Boot的注解(如@GetMapping、@PostMapping等)实现高效、清晰的请求处理逻辑。通过实例分析,展示了如何在实际项目中应用这些技术,提高开发效率和代码可维护性。 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 尤洋:夸父AI系统——大规模并行训练的深度学习解决方案
    自从AlexNet等模型在计算机视觉领域取得突破以来,深度学习技术迅速发展。近年来,随着BERT等大型模型的广泛应用,AI模型的规模持续扩大,对硬件提出了更高的要求。本文介绍了新加坡国立大学尤洋教授团队开发的夸父AI系统,旨在解决大规模模型训练中的并行计算挑战。 ... [详细]
  • 半导体IP作为芯片设计的关键组成部分,是集成电路开发中的核心要素之一。这种经过验证、可重复使用的模块具备特定功能,通常由第三方供应商提供,能够显著提升设计效率和可靠性,降低开发成本和周期。在现代集成电路设计中,半导体IP的合理选择与应用对项目的成功至关重要。 ... [详细]
  • 本文推荐了六款高效的Java Web应用开发工具,并详细介绍了它们的实用功能。其中,分布式敏捷开发系统架构“zheng”项目,基于Spring、Spring MVC和MyBatis技术栈,提供了完整的分布式敏捷开发解决方案,支持快速构建高性能的企业级应用。此外,该工具还集成了多种中间件和服务,进一步提升了开发效率和系统的可维护性。 ... [详细]
author-avatar
摄影爱好者Summer_100
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有