> 文章列表 > 分布式甲骨文(自测版)

分布式甲骨文(自测版)

分布式甲骨文(自测版)

文章目录

          • 1.分布式Id的生成方案有哪些
          • 2.雪花算法生成Id由那些部分组成
          • 3.分布式锁在项目中有哪些应用场景
          • 4.分布式锁有哪些解决方案
          • 5.Redis做分布式锁用什么命令
          • 6.Redis做分布式锁死锁有哪些情况,如何解决
          • 7.Redis如何做分布式锁
          • 8.Mysql如何做分布式锁
          • 9.什么是分布式系统中的幂等
          • 10.幂等技术的解决方案(复习)
          • 11.分布式微服务项目设计
          • 12.分布式架构下,Session有什么共享方案(空)

注:
自测

1.分布式Id的生成方案有哪些
1.UUID:通用唯一标识码,分布式系统所有元素唯一辨识信息缺点:占用空间大
2.Mysql自增:Mysql数据库设置主键自增缺点:分表分库复杂,数据容易泄露
3.Redis自增:Redis计数器缺点:数据容易丢失,容易泄露
4.雪花算法:分布式Id经典解决方案优点:不依赖外部组件,性能好
2.雪花算法生成Id由那些部分组成
1.符号位:占用12.时间戳:占用41位(可支持69年时间跨度)
3.机器Id:占用104.序列号:占用12
3.分布式锁在项目中有哪些应用场景
1.同时访问:如文件
2.操作共享资源:同时操作一条数据
3.系统是一个分布式系统
4.分布式锁有哪些解决方案
1.Redis锁
2.zookeeper 顺序,临时锁临时锁:在于zookeeper建立连接时,会生成一把临时锁,其他数据不能操作,结束时,临时锁释放顺序锁:A创建一号节点,B创建二号节点,按顺序先执行一号节点,在执行二号
3.基于数据库:如Mysql(主键或唯一索引)
5.Redis做分布式锁用什么命令
set key value nx ex 50000
nx:代表该value设置为key,如果key存在,则设置不成功
ex:代表存在时间
如果设置时间到了 然而程序没有执行完,可以加入watch dog,来延长时间
delete key 释放锁
6.Redis做分布式锁死锁有哪些情况,如何解决
1.delete key 释放锁
2.设置ex时间 过期自动释放
7.Redis如何做分布式锁
AB服务
1.A服务向Redis发出命令set key value1 nx ex 30000
2.B服务向Redis发出命令set key value2 nx ex 30000同名key设置不成功,进入循环请求
3.A超过30秒,key超时释放锁,此时B获得锁,如果A没有执行完,对key进行续期
4.A执行完,释放锁,判断value1是否与Redis的value1一致,确定是A的value,删除key
8.Mysql如何做分布式锁
DB分布式锁:假如同时执行了插入id=1的数据,其他插入进行等待,id=1存在,那么其他插入id=1的语句执行失败,需要将id=1的数据删除,才能+执行操作
9.什么是分布式系统中的幂等
执行某一操作,执行了好多次,最后结果不变
如:查询,删除,set固定值
10.幂等技术的解决方案(复习)
1.提交向服务器申请token,将token放在Redis或者JVM中,设置token有效时间
2.后端校验token时,同时删除token,生成新的token
特点:一次性有效,可以限流
11.分布式微服务项目设计
1.负载层:nginx负载均衡,网关
2.业务层:api					日志	权限
3.能力层:模块,中间件,缓存,	日志	权限
4.存储层:mysql,redis
5.运行环境:阿里云,docker,linux
12.分布式架构下,Session有什么共享方案(空)
在这里插入代码片