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生成器。