当前位置: 首页 > news >正文

ShardingSphere、雪花算法、分布式id生成器CosID概述

ShardingSphere

用处:sharding是分片的意思,sphere是球(生态的意思)。用来做分库分表的生态的。一个订单表太大,查询会很慢,要分表,分为3个表,这样查询会快一点,所以有了分库分表。

原理:对sql语句进行拦截,然后根据分库分表算法路由到具体的表,如order表的sql语句,拦截,根据orderId取模3位,路由到order1、order2、oder3表上。

还支持分布式、事务等。

shardingSphere路由的时候会给数据生成全局唯一cid,这里涉及分布式id生成器,ShardingSphere一般用的是雪花算法。

 

雪花算法

组成:时间戳+机器进程码+序列号

雷区:

1、每台电脑的时间戳不是完全相同的,有的快有的慢。解决方案:

时间回拨,记录上次的时间,如果这次的时间小于上次的时间,有问题,需要处理,处理方式很多:

  • 比如停止下线程,再进行时间分配,这样时间就补上来了。
  • 又比如,用ntpd来同步下时间。

直接从第三方来获取时间戳,保证时间戳从同一个地方获取

2、序列号不递增,当时间戳一样的时候序列号才递增,时间不同,序列号又从0开始,这导致序列号都比较小,分库分表都只能分到少数的表。解决方案就是不要时间戳一样才递增

 

分布式id生成器

现有的分布式id生成器有美团的Leaf、还有CosID。ShardingSphere里集成了CosID。

 

 


http://www.mrgr.cn/news/5461.html

相关文章:

  • 浅谈【网络编程】之Unix与多路复用
  • ELK日志分析系统
  • 七牛云 CDN 视频瘦身,为视频分发「减负增效」
  • 低代码表单引擎的核心不仅仅是拖拉拽,深入解析表单的高级功能
  • centos创建新分区,并实现挂载
  • Java基础——HttpStatus.class 源码中状态码总结
  • openssl—心脏出血漏洞
  • Redis核心技术
  • “解决Windows电脑无法投影到其他屏幕的问题:尝试更新驱动程序或更换视频卡“
  • 【揭秘!】糖尿病能否自我逆转?科学解读,给你希望之光!
  • 如何像演示PPT幻灯片一样演示PDF文件 - PDF幻灯片使用说明
  • 类和对象(高级)
  • 一文了解检索增强生成(RAG)
  • Spark2.x 入门:DStream 输出操作
  • 4170条中医综合真题中医真题ACCESS\EXCEL数据库
  • Java List 结合删除元素的方法
  • 神经网络算法 - 一文搞懂GAN(生成对抗网络)
  • 2408gui,wtl给对话框加快捷键
  • Spring + Boot + Cloud + JDK8 + Elasticsearch 单节点 模式下实现全文检索高亮-分页显示 快速入门案例
  • 查看U盘的具体信息,分区表格式、实际容量和分区状态