Python微信订餐小程序课程视频
https://edu.csdn.net/course/detail/36074
Python实战量化交易理财系统
https://edu.csdn.net/course/detail/35475
1 介绍
在分布式系统中,由于涉及到多个不同业务module的交互,以及高并发的场景。我们需要系统能够生成一个跨业务module的全网唯一序列号,来保证我们业务操作的独立性和唯一性。
在常见的业务场景中,比如全局订单Id,唯一标识的支付编号等,都需要这个来保证。
那生成ID都有哪些解决方案呢?特别是在复杂的分布式系统业务场景中,我们应该采用哪种解决方案来实现这个唯一序列呢?
一般来说,这个唯一序号有如下几种特征:
- 全局唯一性:确保生成的序列是全局唯一的,不可重复。
- 有序性:确保生成的ID值对于某个用户或者业务是按一定的数字有序递增的。
- 高可用性:确保生成ID功能的高可用,能够承接较大峰值,能够保证序列生成的有效性(不重复且有序)。
- 带时间标记:ID中有时间片段组成,可是清晰识别出操作的时间。
下面是业内几种常见的分布式唯一序列生成方案,我们一一来介绍下。
2 数据库自增
数据库主键设置自增