1 Star 0 Fork 11

x-man / rtpt

forked from haiker / rtpt 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

RTPT Spring Cloud 动态配置

GitHub issues GitHub forks GitHub stars

Home Add

1. 背景

在个人开发的个人软件和公司的项目中很多地方使用到了动态配置,例如:功能参数、搜索功能权重设置、抽佣比例等。

这些配置不同于平台的静态配置(数据连接池参数等)随时会随着业务的变化而改变,且此类参数大多数属于运营参数需要给运营人员开放修改权限。如果更改就涉及代码配置的更新服务的配置重新启动,如果此类动作过于频繁导致系统集群的不稳定性增加。

2、简介

RTPT是作者本人一些工作中针对具体问题总结的解决方案, 本程序已经在线上运行,如果您发现软件中的BUG或者设计不合理的地方您可以直接提交 Issues 或者 邮件(wo@renzhen.la) 联系我.

3、配置详解

动态配置分为客户端、配置管理中两部分。

客户端使用分为两种:

  • 单独使用,使用第三方中间件存储数据,现在客户端支持Redis,Consul两种.
  • 配合管理中心一起使用

服务端:配置数据中心化管理, 数据保存支持:

  • JDBC
  • Redis
  • Consul

无论是客户端单独使用还是配置管理中心化后期将支持更多的数据存储方案(etcd,zookeeper等)。

3.1、客户端配置

3.1.0 导入依赖包

Maven:

<dependency>
  <groupId>la.renzhen.basis.rtpt</groupId>
  <artifactId>rtpt-client-starter</artifactId>
  <version>1.0.2</version>
</dependency>

Gradle:

compile "la.renzhen.basis.rtpt:rtpt-client-starter:1.0.2"

3.1.1 编写配置绑定类

@FluentConfiguration("demo")
public interface DemoConfig {

    @Data
    public class SubConfig {
        String param3;
        int param4;
    }
    
    @FluentConfiguration.DefaultValue("参数默认值")
    String param1();
    
    int param2();

    @FluentConfiguration.DefaultValue("{\"param3\":\"参数三\"}")
    SubConfig sub();
}

绑定类对应配置key说明:

方法 对应key
DemoConfig#param1() [rtpt.prefix.]demo.param1
DemoConfig#param2() [rtpt.prefix.]demo.param2
DemoConfig#sub#param3 [rtpt.prefix.]demo.sub.param3
DemoConfig#sub#param4 [rtpt.prefix.]demo.sub.param4

rptp.prefix 为客户端全局配置key前缀,详细查看客户端配置。

3.1.2 客户端配置

3.1.2.1 使用Redis
rtpt:
  prefix: cfg
  environment: master
  redis:
    address: 127.0.0.1:6379
    folder: rtpt
    database: 0
3.1.2.2 使用Consul
rtpt:
  prefix: cfg
  environment: master
  consul:
    address: 127.0.0.1:8500
    folder: rtpt
3.1.2.3 使用Center配置中心

使用center配置中心可以有两种方式:

第一种方式:未使用注册中心

rtpt:
  prefix: cfg
  environment: master
  center:
    address: http://localhost:7658
    contextPath: /rtpt

第二种方式:使用注册中心

rtpt:
  center:
    discovery:
        serviceId: "rptp-config-server"
        enabled: true

详细介绍查看:RTTPProperties.java

3.2、配置管理中心配置

3.2.1 引入依赖包

Maven:

<dependency>
  <groupId>la.renzhen.basis.rtpt</groupId>
  <artifactId>rtpt-admin-server-starter</artifactId>
  <version>1.2.0</version>
</dependency>

Gradle:

compile "la.renzhen.basis.rtpt:rtpt-admin-server-starter:1.0.0"

3.2.2 使用Consul当中心配置存储

rtpt:
  admin:
    consul:
      address: 127.0.0.1:8500

3.2.3 使用Redis当中心配置存储

rtpt:
  admin:
    redis:
      url: 127.0.0.1:6379
      module: rtpt

3.2.4 使用jdbc当中心配置存储

rtpt:
  admin:
    disable-web-ui: false
    context-path: /rtpt
    jdbc:
      url: jdbc:mysql://127.0.0.1:3306/test
      username: haiker
      password: haiker

注:等多配置查看实例:example

4、更新历史

** 2018-06-20 V1.0.2 **

  • 1、修复依赖文件BUG
  • 2、修改默认scan package的方式,默认当前项目路径。放弃配置文件rptp.scan-package方式

** 2018-06-06 V1.0.0 **

第一版开源版本发布

空文件

简介

SpringCloud动态参数配置 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/x-git/rtpt.git
git@gitee.com:x-git/rtpt.git
x-git
rtpt
rtpt
master

搜索帮助