# distributed-id-service-integration **Repository Path**: Jlightning/distributed-id-service-integration ## Basic Information - **Project Name**: distributed-id-service-integration - **Description**: 分布式唯一ID/单号生成系统 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 1 - **Created**: 2019-03-12 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # distributed-id-service-integration #### 介绍 分布式唯一ID/单号生成系统 #### 软件架构 软件架构说明,请看ppt https://gitee.com/Jlightning/distributed-id-service-integration/blob/master/%E5%85%A8%E5%B1%80ID%E4%B8%8E%E5%8D%95%E5%8F%B7%E6%9C%8D%E5%8A%A1%E5%9F%B9%E8%AE%ADPPT.pptx #### 安装教程 安装: 1 下载安装包:https://pan.baidu.com/s/1goTrMs0cA6sKI80xDy7gng 2 解压缩ROOT.war,用script/application.properties替换类路径下的application.properties文件,注意修改如下配置: #配置注册中心 如果没有注册中心,不用配置,运行时eureka异常,忽略即可 **eureka.client.serviceUrl.defaultZone = http://eureka1/,http://eureka2/** #数据库配置 **druid.url = jdbc:mysql://xxxx:3306/distributed_id?useOldAliasMetadataBehavior=yes&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8** **druid.username = xxxx** **druid.password = xxxx** #默认开启 开启有序ID及单号生成 #generate.id.enable = true #默认开启 开启无序ID生成,如果不需要无序ID,即不用配置zookeeper地址 #generate.nid.enable = true #zookeeper ip地址,多个用英文逗号分隔 **generate.nid.zkAddress = zkIpxxxxx** #zookeeper port 2181 **generate.nid.zkPort = xxxx _#注意:加粗的属性,需要替换成自己真实的配置_ 3 数据库脚本 script/create.sql 4 把修改后的ROOT文件夹放入tomcat等容器中,启动tomcat即可 #### 使用说明 * 全局唯一性 * 趋势递增:有序。 * 单调递增:下一个ID一定大于上一个ID * 信息安全:单号无规则、不规则。 在线Demo: 1 有序ID: http://180.76.250.110:10246/distributed-id-service/generateId/regularity/test_regularity_id 2 无序ID: http://180.76.250.110:10246/distributed-id-service/generateId/irregularity/test_irregularity_id 3 单号: http://180.76.250.110:10246/distributed-id-service/generateNo/1000 详述: 一 DISTRIBUTED-ID-SERVICE 提供生成服务 一 DISTRIBUTED-ID-SERVICE 提供生成服务 1 有规则ID接口 /distributed-id-service/generateId/regularity/{bizTag} bizTag对应业务标志:格式为 “数据库名_表名”,例如库名是 framework_gateway,表名是e_user,对应的key为 framework_gateway_e_user (注意:严格区分大小写,一个字母的大小写不同即代表是不同的业务标志,建议传的时候全转小写或大写) 建表注意: 1.1 表主键不能是自增的 1.2 新表可以直接接入,从1开始全局递增 1.3 老表接入,需要预设一个起始值,防止与库中已有的主键值产生冲突 1.4 新表有默认插入数据的,也须预设一个起始值,防止与库中已有的主键值产生冲突 2 无规则ID接口,固定长度19的纯数字 /distributed-id-service/generateId/irregularity/{bizTag} bizTag对应业务标志,可以是服务名称,暂仅做排错标志 3 单号接口 /distributed-id-service/generateNo/{bizCode} bizCode业务配置的编码,纯数字,配置编码不可超过4095。 单号最短8位。建议从13位起(小于13位的单号长度会迅速变长),小于13位的可以使用有规则ID(比如一些内部单号)