概念部分:
雪花算法,是 Twitter 开源的分布式 id 生成算法。
一般数据库的ID自增并不能满足分布式场景下全局唯一的情况。
雪花算法主要是为了在分布式的场景下,生成有序,且全局唯一的ID。
但是也不是所有地方/所有表都需要生成全局唯一ID,一般应用于比如订单,商品信息等系统主流程的情况下。也就是说一般像非主业务部分(系统配置,工作流配置等)
系统配置:比如配置某个开关,比方美团订单派单给配送员的公里数配置,这个公里数一定不是在系统中写固定值的,一定是某个可以配置的范围值。否则改一次配置需要发一次版也太麻烦了。再比方某些邮件通知内容或者模板的配置。邮件的模板内容肯定也不是在系统中写成固定的。
工作流的配置:工作流的配置也是如此,系统本身在业务上一般都有一些业务流程,这些业务流程涉及到审核审批的也一定是可灵活配置,非固定的。
so,这些和系统主业务流程相关性比较少且一般由系统工作人员去配置的不会用雪花ID。一般数据库的自增就已经够用了。因为这些通常不涉及高并发的场景。
刚才提到,雪花算法是满足分布式场景下ID全局唯一的情况,它是通过64bit的二进制数进行控制生成全局唯一ID的。
64位的二进制数中,
第一位表示正负,所以第一位都是0
共有41位二进制数用来存储时间戳
共有10位二进制数用来存储分布式场景下不同的