MyBatis Plus的分布式唯一ID有几种生成策略?

Mybatis Plus提供以下几种分布式唯一ID生成策略:

1. 自增主键

基于数据库自增字段生成ID。
这是最简单高效的方式,但只适用于单机应用。

2. UUID

使用Universally Unique Identifier(UUID)作为ID生成器。
通过UUID/GUID工具类可以方便生成分布式唯一ID。
但ID长度较长,不容易映射为数字类型字段。

3. 雪花算法

基于Twitter的Snowflake算法生成分布式唯一ID。
可分配部分ID作为数据中心ID和机器ID,保证唯一性。

4. Redis分布式锁

使用Redis的SETNX实现分布式锁,从而获取下一个全局有序ID。
需要单独部署Redis服务。

5. 消息队列

将ID生成工作放入消息队列,多个服务从队列中获取下一个自增ID。
同时需要部署消息队列服务。

6. PostgreSQL序列

使用PostgreSQL的序列号(Sequence),可以实现分布式ID。
但依赖PostgreSQL特性,不通用。

Mybatis Plus默认提供雪花算法作为分布式唯一ID生成策略。你也可以实现IdentifierGenerator接口,自定义生成策略。

总的来说,为满足分布式环境下分布式唯一ID的需求,Mybatis Plus提供了:

  • 自增主键
  • UUID
  • 雪花算法
  • Redis分布式锁
  • 消息队列
  • 数据库序列

甚至可以自定义ID生成器。