Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/growingio/dryad
Config Management & Service Registration and Discovery
https://github.com/growingio/dryad
configuration-management microservice service-discovery service-registration
Last synced: about 1 month ago
JSON representation
Config Management & Service Registration and Discovery
- Host: GitHub
- URL: https://github.com/growingio/dryad
- Owner: growingio
- Created: 2016-03-17T12:07:22.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2020-07-15T05:52:57.000Z (over 4 years ago)
- Last Synced: 2024-04-16T05:12:54.146Z (8 months ago)
- Topics: configuration-management, microservice, service-discovery, service-registration
- Language: Scala
- Homepage:
- Size: 195 KB
- Stars: 6
- Watchers: 14
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Dryad
==================[![Build Status](https://travis-ci.org/growingio/dryad.svg?branch=master)](https://travis-ci.org/growingio/dryad)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.growing/dryad-core_2.12/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.growing/dryad-core_2.12)
[![codecov](https://codecov.io/gh/growingio/dryad/branch/master/graph/badge.svg)](https://codecov.io/gh/growingio/dryad)Dryad 是一个配置文件管理客户端,它提供了配置文件的热加载等功能。并且在不改变原有 Ref 的情况下实现数据的变更。
## 获取
### Consul
```
"io.growing" %% "dryad-consul" % $VERSION
```## 使用
**application.conf**
```conf
dryad {namespace = "default"
group = "prod"provider = "io.growing.dryad.provider.ConsulConfigProvider"
consul {
host = "localhost"
port = 8500
}
}
```**Case Class**
```scala
@Configuration(name = "env.conf", parser = classOf[DevConfigParser])
case class DevConfig(name: String, group: String)class DevConfigParser extends ConfigParser[DevConfig] {
override def parse(config: Config): DevConfig = Configs[DevConfig].extract(config).value
}
```**Sample**
```scala
val configSystem = ConfigSystem()
val devConfig = configSystem.get[DevConfig]//devConfig 可以作为一个全局的常量,因为 devConfig 是一个 Config 的 Ref, 当配置文件更新时这个 Ref 会指向新的对象(配置文件更新之后所生成的对象)。
```