摘要:配置中心在軟件開發(fā)中隨著業(yè)務(wù)的需要需求的變更程序的靈活我們時(shí)常需要在項(xiàng)目中設(shè)置各種開關(guān)或者配置項(xiàng)在往常時(shí)一般會(huì)采用配置文件的方式但是在這分布式集群時(shí)代采用傳統(tǒng)的配置管理方式顯得有點(diǎn)力不從心同時(shí)在我們的終端我們也時(shí)常需要各種配置在面對(duì)大量的終
______ _ ______ |_ _ `. (_) ." ___ | | | `. __ _ __ / ." \_| | | | |[ | | | [ || | _| |_." / | \_/ |, | | `.___." |______." ".__."_/[___]`.____ ."duic 配置中心
在軟件開發(fā)中隨著業(yè)務(wù)的需要, 需求的變更, 程序的靈活我們時(shí)常需要在項(xiàng)目中設(shè)置各種開關(guān)或者配置項(xiàng). 在往常時(shí)一般會(huì)采用配置文件的方式, 但是在這分布式集群時(shí)代采用傳統(tǒng)的配置管理方式顯得有點(diǎn)力不從心. 同時(shí)在我們的 app/web 終端我們也時(shí)常需要各種配置, 在面對(duì)大量的終端配置獲取請(qǐng)求我們的配置中心需要高性能, 高穩(wěn)定性.
duic 的誕生并不僅僅只是為了解決服務(wù)器應(yīng)用的配置
簡(jiǎn)介duic 是采用 spring-webflux 開發(fā), 通過(guò) RESTful 方式拉取配置, 支持配置合并, 內(nèi)置 web 控制臺(tái)修改配置, 支持配置用戶權(quán)限設(shè)置, 支持配置訪問(wèn) IP 限制, 支持 token 限制, 支持多應(yīng)用多環(huán)境變量, 支持 docker, 支持集群
特性
集中配置管理, 多應(yīng)用多環(huán)境配置
在 web 控制臺(tái)中你可以創(chuàng)建多個(gè)配置, 相同應(yīng)用不同環(huán)境的配置可以使用(profile)區(qū)分, 同一個(gè)應(yīng)用下多個(gè)(profile)配置可以合并 https://duic.zhudy.io/index.html
配置數(shù)據(jù)類型/數(shù)據(jù)格式
duic 采用 yaml 文件格式管理配置, 天生支持?jǐn)?shù)據(jù)類型及數(shù)據(jù)格式
HTTP 方式拉取配置
duic 采用 HTTP 的方式拉取配置, 所以你可以在任何應(yīng)用中使用 duic 配置管理
配置狀態(tài)檢查
支持配置狀態(tài)檢查, 如果配置發(fā)生變動(dòng)該狀態(tài)也會(huì)相應(yīng)變化, 使用方可根據(jù)狀態(tài)的變化重載配置
GET {base_uri}/apps/states/{name}/{profile}
多配置合并
相同應(yīng)用(name)下的多個(gè)配置(profile)可以合并配置, 相同 key 的配置將以深度合并的方式返回
按需取獲取配置
你有時(shí)可能需要獲取某個(gè) key 的配置而不是整個(gè) profile 的配置
GET {base_uri}/apps/{name}/{profile}/{key}
key 支持按 . 分隔, 父 key 可以獲取子項(xiàng)的所有配置
獲取 k1 項(xiàng)的配置
request
$ curl https://duic.zhudy.io/api/v1/apps/sample/first/k1
response{ "string":"samples first k1 string", "int":11, "array":[ 1, 2, 3 ], "multiple_lines":"sample first multiple lines" }獲取 k1.string 項(xiàng)的配置
request
$ curl https://duic.zhudy.io/api/v1/apps/sample/first/k1.string
response{ "value":"samples first k1 string" }
完美支持 spring-boot
duic 不僅可以管理你的業(yè)務(wù)配置, 同時(shí)還可以管理 spring-boot 自身的任何配置, 你可以像在 application.yaml 文件中編輯配置一樣的編輯它, 同時(shí)我們還提供了 duic-spring-cloud-config-client, 該庫(kù)支持 @ConfigurationProperties @Value 注解, 同時(shí)還支持配置熱加載
配置權(quán)限管理
支持配置權(quán)限管理, 用戶只可以修改自身?yè)碛袡?quán)限的配置
配置支持 IP 訪問(wèn)限制
每個(gè) profile 的配置都可以設(shè)置 IP 訪問(wèn)控制, 不在訪問(wèn)限制內(nèi)的 IP 將無(wú)法獲取配置信息
配置支持 TOKEN 校驗(yàn)
訪問(wèn)有 TOKEN 校驗(yàn)的配置必須在請(qǐng)求中帶上 TOKEN, TOKEN 校驗(yàn)失敗將無(wú)法獲取配置信息
支持 docker 部署
https://hub.docker.com/r/zhud...
部署簡(jiǎn)單
duic 部署只依賴于 mongodb, 集群部署也只需要直接啟動(dòng)多個(gè)實(shí)例即可, 不需要其它任何中間件或者服務(wù)
高性能
duic 是采用 spring-webflux 開發(fā), 能最大化利用機(jī)器的硬件資源, 同時(shí) duic 是直接將所有可用的配置直接加載在內(nèi)存中, 在拉取配置時(shí) 直接從內(nèi)存中返回配置信息, 對(duì)于數(shù)據(jù)庫(kù)沒(méi)有任何壓力
duic openapi-3.0 接口文檔
duic-java-client
java 版本客戶端程序
支持 java
支持 spring
duic-spring-cloud-config-client
spring-boot 配置客戶端程序
duic-examples 示例程序
部署服務(wù)配置 application.yml
server: port: 7777 spring: jackson: default_property_inclusion: non_default date_format: yyyy-MM-dd"T"HH:mm:ss joda_date_time_format: yyyy-MM-dd"T"HH:mm:ss property_naming_strategy: CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES data: mongodb: uri: mongodb://127.0.0.1:27017/duic duic: root_email: [email protected] root_password: 123456 jwt: secret: U2FsdGVkX1/jO0KlWumac4yDM8rOgWPkaV0KrSHDynWOP6n8FMJB9uSc8EW/qM+VagrMBAXGpyw= expires_in: 180
應(yīng)用服務(wù)端口
MongoDB 連接地址
默認(rèn)用戶登錄郵箱
默認(rèn)用戶登錄密碼
JWT HMAC256 簽名字符串
JWT 過(guò)期時(shí)間(單位:分鐘)
在 docker-compose 配置中已經(jīng)集成 mongodb, nginx, let’s encrypt, docker-gen 服務(wù)發(fā)現(xiàn)
啟動(dòng)步驟git clone
$ git clone https://github.com/zhudyos/duic-docker-compose.git
進(jìn)入文件夾
cd duic-docker-compose
為 start.sh 授權(quán)
$ chmod +x start.sh
啟動(dòng)
$ ./start.sh
安裝 MongoDB
服務(wù)配置
1. 創(chuàng)建 **config** 文件夾 2. 在 **config** 文件夾中創(chuàng)建配置文件 **application.yml** 3. **application.yml** 配置文件將 **spring.data.mongodb.uri** 連接地址修改為安裝服務(wù)的 MongoDB 連接地址
啟動(dòng)容器
$ docker run -d -p 7777:7777 -v $(pwd)/config:/app/config zhudyos/duic
將 application.yml 配置文件放置在 config 目錄中并掛載到容器的 /app/config 目錄中, duic 則會(huì)使用指定的配置
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27285.html
摘要:配置中心在軟件開發(fā)中隨著業(yè)務(wù)的需要需求的變更程序的靈活我們時(shí)常需要在項(xiàng)目中設(shè)置各種開關(guān)或者配置項(xiàng)在往常時(shí)一般會(huì)采用配置文件的方式但是在這分布式集群時(shí)代采用傳統(tǒng)的配置管理方式顯得有點(diǎn)力不從心同時(shí)在我們的終端我們也時(shí)常需要各種配置在面對(duì)大量的終 ______ _ ______ |_ _ `. (_) . ___ | | | `...
摘要:什么是是配置管理中心,將配置統(tǒng)一管理提供標(biāo)準(zhǔn)的配置格式及編輯方式。如上圖支持任何應(yīng)用,任何語(yǔ)言的配置管理,,,等,同時(shí)采用語(yǔ)法作用配置文件格式,支持?jǐn)?shù)據(jù)類型及結(jié)構(gòu)化配置。前提創(chuàng)建數(shù)據(jù)庫(kù)配置數(shù)據(jù)庫(kù)連接將文件與文件放置在同一目錄中。 什么是配置? 服務(wù)運(yùn)行時(shí)能夠通過(guò)外部動(dòng)態(tài)修改的參數(shù)既是配置。在運(yùn)行時(shí)動(dòng)態(tài)變更服務(wù)的行為,避免業(yè)務(wù)發(fā)生變更需要修改代碼或重啟服務(wù)等等。 什么是 duic? du...
摘要:什么是是配置管理中心,將配置統(tǒng)一管理提供標(biāo)準(zhǔn)的配置格式及編輯方式。如上圖支持任何應(yīng)用,任何語(yǔ)言的配置管理,,,等,同時(shí)采用語(yǔ)法作用配置文件格式,支持?jǐn)?shù)據(jù)類型及結(jié)構(gòu)化配置。前提創(chuàng)建數(shù)據(jù)庫(kù)配置數(shù)據(jù)庫(kù)連接將文件與文件放置在同一目錄中。 什么是配置? 服務(wù)運(yùn)行時(shí)能夠通過(guò)外部動(dòng)態(tài)修改的參數(shù)既是配置。在運(yùn)行時(shí)動(dòng)態(tài)變更服務(wù)的行為,避免業(yè)務(wù)發(fā)生變更需要修改代碼或重啟服務(wù)等等。 什么是 duic? du...
摘要:什么是是配置管理中心,將配置統(tǒng)一管理提供標(biāo)準(zhǔn)的配置格式及編輯方式。如上圖支持任何應(yīng)用,任何語(yǔ)言的配置管理,,,等,同時(shí)采用語(yǔ)法作用配置文件格式,支持?jǐn)?shù)據(jù)類型及結(jié)構(gòu)化配置。前提創(chuàng)建數(shù)據(jù)庫(kù)配置數(shù)據(jù)庫(kù)連接將文件與文件放置在同一目錄中。 什么是配置? 服務(wù)運(yùn)行時(shí)能夠通過(guò)外部動(dòng)態(tài)修改的參數(shù)既是配置。在運(yùn)行時(shí)動(dòng)態(tài)變更服務(wù)的行為,避免業(yè)務(wù)發(fā)生變更需要修改代碼或重啟服務(wù)等等。 什么是 duic? du...
閱讀 2760·2021-09-24 09:47
閱讀 4380·2021-08-27 13:10
閱讀 3031·2019-08-30 15:44
閱讀 1300·2019-08-29 12:56
閱讀 2601·2019-08-28 18:07
閱讀 2625·2019-08-26 14:05
閱讀 2584·2019-08-26 13:41
閱讀 1275·2019-08-26 13:33