本文从分布式ID微服务的产生背景、基本需求、实现方式分析、部署设计和应用方法五个方面进行阐述说明,详细介绍四种ID生成方式的实现逻辑及应用方法,以期为生成唯一标识的设计和实现带来启发。
随着软件系统架构体系由集中式单体应用向分布式微服务方向的发展,一些旧的知识体系已无法满足业务的需求。
在数据库方面,集中式单体应用通常都采用中心数据库方式进行数据操作与存储,业务数据表主键通过数据库特性就可以保证数据的唯一性,如ORACLE的序列、Mysql的自增主键等。
但微服务采用分布式数据库进行数据操作与存储,可能会出现一张表数据分布在多个数据库的情况,如果还采用中心数据库中的主键生成方式,就无法保证主键的唯一性,造成业务数据的不一致。
为此,本文特设计分布式ID微服务,来解决分布式数据库数据表主键字段值、消息中心消息ID、分布式系统之间http请求标识、分布式事务全局事务ID、事件总线事件ID等业务场景唯一标识生成问题。
分布式ID微服务是为分布式系统提供生成唯一标识服务的应用,它的主要且唯一功能是生成唯一标识。
同时它会被许多关键系统(如支撑、业务及其他)调用,且需满足不同业务场景(如高并发、主键顺序递增、数据安全等),故全局唯一性、高性能、高可用、趋势递增及信息安全是分布式ID微服务的基本需求,具体需求描述如下: