基于Redis的分布式配置管理中心
基于Redis的分布式配置管理中心
Java 分布式应用
共4Star
详细介绍
客户端
Maven配置
<dependency>
<groupId>com.tinet</groupId>
<artifactId>clink-config-client</artifactId>
<version>1.0.0</version>
</dependency>
Spring配置文件
<bean class="com.tinet.ccic.config.RedisPropertySourcesPlaceholderConfigurer">
<property name="appId" value="myAppId" />
<property name="locations">
<list>
<value>classpath*:app.properties</value>
</list>
</property>
</bean>
设置环境变量或JVM启动参数
环境变量方式
export config.server=localhost:6379
export config.environment=dev
JVM启动参数方式
-Dconfig.server=localhost:6379
-Dconfig.environment=dev
在程序中获取配置
import org.springframework.core.env.Environment;
@Autowired
private Environment environment;
String value = environment.getProperty(key);
文件缓存
- 客户端会在${user.home}/${appId}.properties中缓存Redis中的配置项内容。
- 若没有连接Redis或Redis中找不到配置项,客户端会从文件缓存中加载。
配置项的加载顺序
- Redis > 文件缓存 > 配置文件(app.properties)
- 即Redis和文件缓存中都找不到配置项时,客户端会从配置文件(app.properties)中加载。
- 在本地开发环境,可以不连接Redis,只使用配置文件(app.properties),以便于测试。
服务端
GUI尚未实现,暂时只能在key=config:{$config.environment}的Redis Hash结构中手工添加。