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