Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/zhudyos/duic

分布式配置中心,集中化配置管理,应用配置权限管理,配置实时更新等功能
https://github.com/zhudyos/duic

configuration configuration-management distributed-configuration kotlin spring-boot spring-webflux

Last synced: 5 days ago
JSON representation

分布式配置中心,集中化配置管理,应用配置权限管理,配置实时更新等功能

Awesome Lists containing this project

README

        

:email: [email protected]

image:https://img.shields.io/travis/zhudyos/duic.svg["Travis",link="https://travis-ci.org/zhudyos/duic"]
image:https://img.shields.io/docker/pulls/zhudyos/duic.svg["Docker Pulls",link="https://hub.docker.com/r/zhudyos/duic/"]
image:https://img.shields.io/github/license/zhudyos/duic.svg["GitHub license",link="https://github.com/zhudyos/duic/blob/master/LICENSE"]

```
______ _ ______
|_ _ `. (_) .' ___ |
| | `. \ __ _ __ / .' \_|
| | | |[ | | | [ || |
_| |_.' / | \_/ |, | |\ `.___.'\
|______.' '.__.'_/[___]`.____ .'

```
= duic 配置中心

duic 是采用 kotlin 与 spring-webflux 开发的配置中心。通过 HTTP 的方式获取配置信息,可管理任何语言、应用的配置。设计目标是统一不同应用的配置管理方式,打造更人性化的配置编辑方式,提供更灵活的配置获取方式。

* 支持 mongodb, mysql, postgresql 存储配置信息
* 支持多配置合并
* 支持按需获取配置
* 支持用户权限控制
* 支持 ip/token 访问限制
* 支持分布式集群配置管理
* 支持 docker

== 特性
* **集中配置管理, 多应用多环境配置**
+
在 web 控制台中你可以创建多个配置,相同应用不同环境的配置可以使用(**profile**)区分,同一个应用下多个(**profile**)配置可以合并 https://duic.zhudy.io/index.html[https://duic.zhudy.io/index.html]
* **配置数据类型/数据格式**
+
duic 采用 yaml 文件格式管理配置,天生支持数据类型及数据格式
* **HTTP 方式拉取配置**
+
duic 采用 HTTP 的方式拉取配置,所以你可以在任何应用中使用 duic 配置管理
* **配置状态检查**
+
支持配置状态检查,如果配置发生变动该状态也会相应变化,使用方可根据状态的变化重载配置
+
`GET {base_uri}/apps/states/{name}/{profiles}`
* **多配置合并**
+
相同应用(**name**)下的多个配置(**profile**)可以合并配置,相同 **key** 的配置将以深度合并的方式返回
+
`GET {base_uri}/apps/{name}/{profile},{profile2},{profile3}`
+
合并方式按照请求 **URL** 中 **profile** 顺序,后者覆盖前者
* **按需获取配置**
+
你有时可能需要获取某个 **key** 的配置而不是整个 **profile** 的配置
+
`GET {base_uri}/apps/{name}/{profile}/{key}`
+
**key** 支持按 `.` 分隔, **父 `key` 可以获取子项的所有配置**
+
[IMPORTANT]
====
* **获取 `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\nfirst\nmultiple\nlines"
}
```
* **获取 `k1.string` 项的配置**
+
request::
`$ curl https://duic.zhudy.io/api/v1/apps/sample/first/k1.string`
response::
+
```
{
"value":"samples first k1 string"
}
```
====
* **完美支持 spring-boot**
+
duic 不仅可以管理你的业务配置,同时还可以管理 spring-boot 自身的任何配置,你可以像在 `application.yaml` 文件中编辑配置一样的编辑它,
同时我们还提供了 https://github.com/zhudyos/duic-spring-cloud-config-client[duic-spring-cloud-config-client],该库支持 `@ConfigurationProperties` `@Value`
注解,同时还支持配置热加载
* **配置权限管理**
+
支持配置权限管理,用户只可以修改自身拥有权限的配置
* **配置支持 IP 访问限制**
+
每个 **profile** 的配置都可以设置 IP 访问控制,不在访问限制内的 IP 将无法获取配置信息
* **配置支持 TOKEN 校验**
+
访问有 TOKEN 校验的配置必须在请求中带上 TOKEN,TOKEN 校验失败将无法获取配置信息
* **支持 docker 部署**
+
https://hub.docker.com/r/zhudyos/duic[https://hub.docker.com/r/zhudyos/duic]
* **部署简单**
+
duic 部署非常简单,只依赖一个数据库存储配置数据,不依赖其它任何中间件,即可实现分布式集群部署
* **高性能**
+
duic 是采用 spring-webflux 开发,能最大化利用机器的硬件资源,同时 duic 是直接将所有可用的配置直接加载在内存中,在拉取配置时
直接从内存中返回配置信息,对于数据库没有任何压力

== 资源
* **https://github.com/zhudyos/duic-java-client[duic-java-client]**
+
java 版本客户端程序::
** 支持 java
** 支持 spring
* **https://github.com/zhudyos/duic-spring-cloud-config-client[duic-spring-cloud-config-client]**
+
spring-boot 配置客户端程序
* **https://github.com/zhudyos/duic-examples[duic-examples 示例程序]**

== https://github.com/zhudyos/duic/wiki[文档]

== 已知用户
[TIP]
====
按登记顺序展示

如果你正在使用 duic,欢迎在 https://github.com/zhudyos/duic/issues/3[https://github.com/zhudyos/duic/issues/3] 登记。仅作为开源参考,不作其它用途
====
image::doc/images/know-users/2339.png[么么直播]

== 相关项目
. https://projects.spring.io/spring-boot/[Spring Boot]
. https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html[Spring WebFlux]
. https://vuetifyjs.com[Vuetify]

== 感谢
image::doc/images/jetbrains-blackandwhite.png[JetBrains,100,100,link="https://www.jetbrains.com/?from=duic"]