热门标签 | 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。
友谊提示:服务器设置较差,接见速率能够不是很快,请体贴。


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • 本文介绍了Paxos的世界中关于复制日志与状态机的概念和重要性。通过存储日志来实现数据的持久化,并通过日志流来记录数据的变化,而不是直接持久化数据本身。这样做的好处是简化了持久化存储的操作,并且方便多机之间的数据同步。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
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社区 版权所有