0
点赞
收藏
分享

微信扫一扫

分布式解决方案-骑士李四

闲嫌咸贤 2022-03-12 阅读 70

分布式ID

雪花算法
算法原理:
在这里插入图片描述
每家算法各有不同:
百度:只支持雪花算法,组件已无人维护。
滴滴:只支持数据库后端,适合对id有高可用需求。
美团leaf:号段模式和雪花算法,适合 多场景的分布式id。
SnowFlake算法的优点:
(1)高性能高可用:生成时不依赖于数据库,完全在内存中生成。
(2)容量大:每秒中能生成数百万的自增ID。
(3)ID自增:存入数据库中,索引效率高。
SnowFlake算法的缺点:
依赖与系统时间的一致性,如果系统时间被回调,或者改变,可能会造成id冲突或者重复。
SnowFlake可以保证:
所有生成的id按时间趋势递增
整个分布式系统内不会产生重复id(因为有datacenterId和workerId来做区分)

号段模式
是当下分布式ID生成器的主流实现方式之一,号段模式可以理解为从数据库批量的获取自增ID,每次从数据库取出一个号段范围,例如 (1,1000] 代表1000个ID,具体的业务服务将本号段,生成1~1000的自增ID并加载到内存。

CREATE TABLE id_generator (
  id int(10) NOT NULL,
  max_id bigint(20) NOT NULL COMMENT '当前最大id',
  step int(20) NOT NULL COMMENT '号段的布长',
  biz_type    int(20) NOT NULL COMMENT '业务类型',
  version int(20) NOT NULL COMMENT '版本号',
  PRIMARY KEY (`id`)
) 

iz_type :代表不同业务类型
max_id :当前最大的可用id
step :代表号段的长度
version :是一个乐观锁,每次都更新version,保证并发时数据的正确性
idbiz_typemax_idstepversion1101100020000

分布式session

session不是服务器管理的,是tomact管理的。
session原理:
session保存信息,如何传递的。 set cookie 》携带cookie(cookie协议,浏览器标准) 》传给session》返回前端。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
Spring-session +redis 可实现

JWT实现
Json web tocken jwt.io
Jwt :tocken 里面的内容可以被解析的,但是不能被篡改。

##jwt配置
#签发者
jwtconfig.issuer: xxx
# 密钥
jwtconfig.secret: xxx,xxx
# 接收jwt的一方
jwtconfig.audience: light-data
# 过期时间,时间戳
jwtconfig.expiresSecond: xxx
举报

相关推荐

0 条评论