Leaf说明

news2024/10/6 8:22:35

什么是Leaf

leaf是叶子的意思

我们使用的Leaf是美团公司开源的一个分布式序列号(id)生成系统

我们可以在Github网站上下载项目直接使用

为什么需要Leaf

上面的图片中

是一个实际开发中常见的读写分离的数据库部署格式

专门进行数据更新(写)的有两个数据库节点

它们同时新增数据可能产生相同的自增列id

一旦生成相同的id,数据同步就会有问题

会产生id冲突,甚至引发异常

我们为了在这种多数据库节点的环境下能够产生唯一id

可以使用Leaf来生成

Leaf的工作原理

Leaf底层支持通过"雪花算法"生成不同id

我们使用的是单纯的序列

要想使用,需要事先设置好leaf的起始值和缓存id数

举例,从1000开始缓存500

也就是从id1000~1499这些值,都会保存在Leaf的内存中,当有服务需要时,直接取出下一个值

取出过的值不会再次生成,当缓存的数据取完时,会往后再缓存500个,从1500-1999

leaf要想设置起始值和缓存数

需要给leaf创建一个指定格式的数据库表

运行过程中会从数据库表获取信息

我们当前的信息保存在leafdb.leaf_alloc表中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/360654.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ThinkPHP5篮球培训报名系统

有需要请私信或看评论链接哦 可远程调试 ThinkPHP5篮球培训报名系统一 介绍 此篮球培训报名系统基于ThinkPHP5框架开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。用户可注册登录,充值,报名,反馈信息等&…

手摸手快速入门 正则表达式 (Vue源码中的使用)

vue2源码 在 vue2 源码的 src\compiler\parser\html-parser.js 文件中 里面有大量的正则表达式,如下图 可以看到非常的长,不是我说,就前几行,如果没有相关的 正则表达式 的工具,我可能就被劝退了😭 这里…

反沙箱CobaltStrike木马加载器分析

前言 近日,笔者参加了浙江护网,在攻击队停止攻击的那一天凌晨,Windows服务器被攻破大量失分,早晨溯源时拿到了这一份名为chrome.exe的木马样本。 木马HASH SHA256:7fbe93d7c29b4ea4ce918f3d16a74d2930120f44d00862bdc0a1f82899…

ubuntu server系统树莓派安装mysql8.0开启远程访问

文章目录前言博客一、安装mysql8.0二、创建一个远程访问的新用户三、在MySQL配置文件中启用远程访问。四、navicat15连接mysql8.0返回10061chatgpt回复前言 百度了半天没解决,问了下chatgpt成功解决了…… 博客 一、安装mysql8.0 确认MySQL 8.0服务器已安装并正在…

【ESP32-S3】Pycharm 使用 microPython 教程(避坑)

一、下载Pycharm等操作 1.百度云下载链接 链接:https://pan.baidu.com/s/1tkbMzS5B_v-Cn4WQlTqS3Q?pwd0108 提取码:0108 2.安装 按照压缩包中的教程来,你懂的。 二、配置microPython环境 1.安装 microPython 插件 1.1 File > Sett…

【云原生】k8s之Yaml文件详解

一、K8S支持的文件格式 kubernetes支持YAML和JSON文件格式管理资源对象。 JSON格式:主要用于api接口之间消息的传递YAML格式:用于配置和管理,YAML是一种简洁的非标记性语言,内容格式人性化,较易读 1、yaml和json的主…

企业级信息系统开发学习笔记1.5 初探Spring AOP

文章目录零、本讲学习目标一、Spring AOP(一)AOP基本含义(二)AOP基本作用(三)AOP与OOP对比(四)AOP使用方式(五)AOP基本概念二、提出游吟诗人唱赞歌任务&#…

手把手教你做插件(2)模块大串联

0,前言 这篇文章笔记比较简略,大部分的操作都是和上一篇文章重复了,建议先看上一节文章,直达电梯:UE4 手把手教你做插件(1) 从代码引用插件_asiwxy的博客-CSDN博客UE4 手把手教你创建插件https:…

Windows10神州网信政府版麦克风、摄像头的使用

Windows10神州网信政府版默认麦克风摄像头是禁用状态,此禁用状态符合版本规定。 在录课和直播过程中,如果需要使用麦克风和摄像头的功能,可以这样更改: 1、鼠标右键点击屏幕左下角的开始菜单图标,选择windows中的“运…

[6/101] 101次软件测试面试之经典面试题剖析

01、自我介绍答:大家好,我是一名软件测试工程师,但我更喜欢称自己为“软件bug捕手”。我相信,软件测试工程师的使命就是让软件更加健壮、更加可靠、更加美好。我们就像是一群“特警”,在黑暗的代码中寻找漏洞和缺陷&am…

spring boot——自定义依赖实现自动配置

需求 要实现的功能是:实现一个可以支持miniooss两种方式,上传下载文件的自定义依赖。其中还包括一些创建桶、删除桶、删除文件等功能,但是最主要的是实现自动配置。 如果对spring理解很深的话,自动配置这些东西很容易理解&#…

php获取api接口数据的方法

API是应用程序的开发接口,在开发程序的时候,我们有些功能可能不需要从到到位去研发,我们可以拿现有的开发出来的功能模块来使用,而这个功能模块,就叫做库(libary)。比如说:要实现数据传输的安全&#xff0c…

传输层TCP与UDP协议

目录 传输层 传输层功能 传输层所提供的服务 传输层的两个协议 TCP协议与UDP协议 端口 端口分类 IP地址和端口的关系 UDP协议 前言: UDP报文格式 检验和的伪首部 伪首部内容 TCP协议 TCP报文格式 TCP协议数据段的理解 TCP的伪首部 伪首部内容 标…

基于Jeecgboot前后端分离的ERP系统开发系列--出库单(3)

继续对销售出库单进行完善与处理 一、列表显示状态 目前先给出库表单两种状态,未审核与审核通过状态,前端通过下面调整 { title:状态, align:"center", dataIndex: status, customRender:f…

Netty(四):优化与源码

文章目录1. 优化1.1 扩展序列化算法1.2 参数调优1)CONNECT_TIMEOUT_MILLIS2)SO_BACKLOG3)ulimit -n4)TCP_NODELAY5)SO_SNDBUF & SO_RCVBUF6)ALLOCATOR7)RCVBUF_ALLOCATOR1.3 RPC 框架1&…

IDEA性能优化设置(解决卡顿问题)修改内存

在我们日常使用IDEA进行开发时,可能会遇到许多卡顿的瞬间,明明我们的机器配置也不低啊?为什么就会一直卡顿呢? 原来这是因为IDEA软件在我们安装的时候就设置了默认的内存使用上限(通常很小),这就…

理解IM消息“可靠性”和“一致性”问题,以及解决方案探讨

试想如果一个IM连发出的消息都不知道对方到底能不能收到、发出的聊天内容对方看到的到底是不是“胡言乱语”(严重乱序问题),这样的APP用户肯定不会让他在手机上过夜(肯定第一时间卸载了),因为最基本的聊天逻…

python基础 | python基础语法

文章目录📚基础语法🐇输入和输出🥕print()输出🥕input()输入🐇 变量的命名🐇条件判断🥕单向判断🥕双向判断🥕多向判断🥕if嵌套🥕三元表达式&#…

漫画 | Python是一门烂语言?

这个电脑的主人是个程序员,他相继学习了C、Java、Python、Go, 但是似乎总是停留在Hello World的水平。 每天晚上,夜深人静的时候,这些Hello World程序都会热火朝天地聊天但是,这一天发生了可怕的事情随着各个Hello wor…

如何无报错运行代码YOLOv6,实现目标识别?

YOLOv6是由美团视觉团队开发的1.环境配置我们先把YOLOv6的代码clone下来git clone https://github.com/meituan/YOLOv6.git安装一些必要的包pip install pycocotools2.0作者要求pytorch的版本是1.8.0,我的环境是1.7.0,也是可以正常运行的pip install -r requirement…