分布式 ID

分布式数据库,分成多个表之后,需要一个全局唯一的 ID。

UUID

不适合作为主键,因为太长了,并且无序不可读,查询效率低。比较适合用于生成唯一的名字的标示比如文件的名字。

自增 ID

两台数据库分别设置不同步长,生成不重复 ID 的策略来实现高可用。 这种方式生成的 ID 有序,但是需要独立部署数据库实例,成本高,还会有性能瓶颈。

利用 Redis 生成 ID

性能好,灵活方便,不依赖于数据库。 但引入了新的组件造成系统更加复杂,可用性降低,编码更加复杂,增加了系统成本。

Snowflake

Twitter 的 Snowflake算法

https://github.com/twitter-archive/snowflake

Leaf

美团的Leaf分布式ID生成系统, 能保证全局唯一性、趋势递增、单调递增、信息安全,里面也提到了几种分布式方案的对比,但也需要依赖关系数据库、Zookeeper等中间件。

powered by Gitbook该文件修订时间: 2020-04-10 10:05:54

results matching ""

    No results matching ""

    results matching ""

      No results matching ""