Advertisement

美团Leaf源码解析 snowflake模式

阅读量:

前言

之前的文章阐述了使用Leaf号段模式生成分布式全局唯一id的方法。参考下图简要总结如下:当部署Leaf集群时(如图所示有三个节点),每个节点最初都配备了一个双缓冲区。当接收到请求时,每个节点会从数据库中查询并按照初始设置中的步长更新最大ID值。具体而言,在第一个缓冲区耗尽后(即第一个缓冲区已用尽10%),该节点会启动异步准备第二个缓冲区。根据图形理解可以看出,在处理test_tag业务对应的ID时(左、中、右三个节点依次被调用),所有节点均能获得独立的缓冲区,并按step=1000逐步更新其maxId值。最终显示当前已分配的最大ID值为3000。一旦任一节点耗尽其可用缓冲区资源(即达到10%使用率),该节点将立即启动异步准备另一个缓冲区,并持续切换状态直至满足负载需求。

号段模式

本次会议重点探讨了Snowflake模式的应用及其代码解析。本文的Leaf源码注释地址:https://github.com/MrSorrow/Leaf

I. 测试snowflake模式

「安装ZooKeeper」

本系统采用了Docker技术作为基础架构,并通过高效地

全部评论 (0)

还没有任何评论哟~