# torch **Repository Path**: hiphopyl7/torch ## Basic Information - **Project Name**: torch - **Description**: Torch (java )配置中心 轻量级分布式配置中心 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: feature/develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2020-12-26 - **Last Updated**: 2023-08-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # torch #### 介绍 配置中心 实现远程配置参数,不用本地再配置 实现配置动态变化 需要java8及以上,springboot工程 #### 软件架构 ``` TorchWeb : 服务端api TorchBiz: 服务端逻辑 TorchCommon: 公共实体类 TorchClient : 客户端引用 TorchCore: 客户端核心逻辑 SpringbootDemo: 客户端demo ``` #### 安装教程 1). sql ##创建配置表 ``` CREATE TABLE `config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `key` varchar(150) DEFAULT NULL COMMENT 'key', `value` varchar(500) DEFAULT NULL COMMENT 'value', `project` varchar(50) DEFAULT NULL COMMENT '服务名', `version` varchar(50) DEFAULT NULL COMMENT '版本', `deleted` tinyint(1) NOT NULL COMMENT '是否删除0:在用,1删除', PRIMARY KEY (`id`), KEY `config_kv` (`project`,`version`,`key`,`value`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='配置信息'; CREATE TABLE `config_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `config_id` bigint(20) DEFAULT NULL COMMENT '配置表主键', `type` varchar(20) DEFAULT NULL COMMENT '操作类型,insert,delete,update', `old_key` varchar(150) DEFAULT NULL COMMENT '原来的key', `old_value` varchar(500) DEFAULT NULL COMMENT '原来的value', `new_key` varchar(150) DEFAULT NULL COMMENT '新的key', `new_value` varchar(500) DEFAULT NULL COMMENT '新的value', `project` varchar(50) DEFAULT NULL COMMENT '服务', `version` varchar(50) DEFAULT NULL COMMENT '版本', `create_date` datetime DEFAULT NULL COMMENT '时间', `user_id` int(10) DEFAULT NULL COMMENT '操作人', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='历史表'; CREATE TABLE `config_syn` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `project` varchar(50) DEFAULT NULL COMMENT '项目', `version` varchar(50) DEFAULT NULL COMMENT '版本', `host` varchar(50) DEFAULT NULL COMMENT '主机', `port` int(6) DEFAULT NULL COMMENT '端口', `createdate` datetime DEFAULT NULL, `updatedate` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `syn_p_v` (`project`,`version`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='同步表'; CREATE TABLE `project` ( `name` varchar(50) NOT NULL COMMENT '服务名', PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `version` ( `name` varchar(50) NOT NULL COMMENT '服务version', PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ``` 2). 服务端 TorchWeb 打包,启动,配置 数据库连接,端口号 ``` spring: datasource: username: username ###mysql登录名 password: 123456 ###mysql密码 url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/xxx?serverTimezone=UTC driver-class-name: com.mysql.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource initialSize: 5 server: port: 18080 ###端口 ``` 3). 客户端(可参考demo) 引入对应的maven ``` com.cyber.light TorchClient 1.0-SNAPSHOT ``` 在启动类加入注解 @EnableTorch yml: ``` 配置 torch: hosts: xxx.xxx.xxx.xxx:18080 ###服务端的url,端口是服务端的启用端口,集群用 ','区分;例子:(hosts: xxx.xxx.xxx.xxx:18080,xxx.xxx.xxx.xxx:18080) project: one ###客户端服务实例名字 version: dev ###客户端版本标签 ##synport: 11111 ###开启同步的端口(不填就不开启) ``` property: ``` torch.hosts:xxx.xxx.xxx.xxx:18080 torch.project: one ###客户端服务实例名字 torch.version: dev ###客户端版本标签 ##torch.synport: 11111 ###开启同步的端口(不填就不开启) ``` #### 使用说明 1. 能够获取@value的配置数据 2. 如果开启了同步功能,但是不想同步的数据可以用@NoChangeValue #### 参与贡献 1. 种花家 - yl 312738240@qq.com 2. funnnnny - yy 794044972@qq.com