DuiC 统一配置管理 2
為什么設(shè)計(jì) DuiC
在工作中我們時(shí)常要根據(jù)不同環(huán)境配置不同的參數(shù),讓項(xiàng)目的靈活性、可用性變得更高,那靈活的配置就變得必不可少,雖然目前已經(jīng)存在很多配置管理解決方案,但是管理方式局限性大,適應(yīng)范圍窄。
DuiC 在設(shè)計(jì)初就考慮到配置的應(yīng)用范圍,將配置獲取方式設(shè)計(jì)為 RESTful API 的方式,可支持任何服務(wù)器端,客戶端以及 WEB 輕松獲取配置。其次 DuiC 管理配置統(tǒng)一采用 YAML 的方式,并提供 WEB 編輯器及語(yǔ)法高亮,語(yǔ)法校驗(yàn)等功能,降低配置修改的錯(cuò)誤率。
DuiC 源碼: https://github.com/zhudyos/duic已實(shí)現(xiàn)的功能
Docker 鏡像: https://hub.docker.com/r/zhud...
Java Client API
DuiC 提供 Java 客戶端 API 幫助你快速獲取配置,支持 Android/Java/JavaWeb/Spring 獲取配置同時(shí)支持熱加載配置。
duic-java-client:https://github.com/zhudyos/du...Java/Android 使用
使用 API 提供的 ConfigUtils 工具包獲取配置。
創(chuàng)建 Config 實(shí)例并將設(shè)置為 ConfigUtils 的默認(rèn)配置,使用。
Java Web 使用
使用 API 提供的 ConfigUtils 工具包獲取配置。
在 web.xml 中配置監(jiān)聽器
在 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 # 多個(gè) DuicListener 采用英文逗號(hào)(,)分隔 duic.listeners=xx.MyDuicListener在 Spring 中使用
以上2種方式都支持熱加載,推薦使用 @Value 的方式注入配置,這種方式對(duì)于你的代碼沒(méi)有任何的浸入性,支持 spring3.2 以上的版本使用。
使用注解的方式初始化
@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; }使用 XML 的方式初始化
<bean id="duicConfigBeanFactoryPostProcessor" class="io.zhudy.duic.config.spring.duicConfigBeanFactoryPostProcessor"><property name="baseUri" value="https://duic.zhudy.io/api/v1"/><property name="name" value="hello"/><property name="profile" value="world"/> </bean>注入配置
@Component public class Example {@Value("${k1.string}")private String k1; }Spring Boot 支持
DuiC 也提供了 duic-spring-cloud-config-client 來(lái)支持 spring-boot,使用 DuiC 管理配置可以完全替代 spring-cloud-config。
duic-spring-cloud-config-client:https://github.com/zhudyos/du...該工具包支持 @ConfigurationProperties 及 @Value 注入配置,同時(shí)也支持熱加載。
注意如果你使用 @ConfigurationProperties 注入配置并且想要熱加載配置需要配合使用 @RefreshScope 注解。
關(guān)于更多 @RefreshScope 的資料請(qǐng)查看 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...關(guān)于 DuiC 更加詳細(xì)的描述,可以查看倉(cāng)庫(kù)中在 readme。
在線演示平臺(tái):https://duic.zhudy.io/index.htmle-mail: kevinz@weghst.com
password: 123456
大家可以使用在線演示平臺(tái),嘗試使用其提供的 API 及 SDK。
友情提醒:服務(wù)器配置較差,訪問(wèn)速度可能不是很快,請(qǐng)?bào)w諒。
總結(jié)
以上是生活随笔為你收集整理的DuiC 统一配置管理 2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 分布式系统事务一致性解决方案
- 下一篇: Centos7系统创建Docker本地仓