1、分布式id的生成方案有哪些
雪花算法生成的id由哪些部分组成:
符号位: 占用1位
时间戳:占用41位,支持69年的时间跨度;
机器id:占用10位
序列号:占用12位
分布式锁在项目中的应用场景
1、系统是一个分布式系统、集群系统
2、操作共享资源,比如库里面的唯一资源, 项目中订单服务、商品服务都要操作优惠券服务,就优惠券服务就需要加分布式锁了。
3、同步访问,多个进程同时擦操作共享的资源,比如文件等
分布式锁有哪些解决方案
1、用redis做分布式锁,用setnx命令,redisson
2、基于zookeeper,顺序临时节点。
3、基于数据库,主键或者唯一索引的唯一性
redis做分布式锁死锁有哪些情况,如何解决
1、加锁后没有解锁,即没有执行delete key,
2、加锁后,程序还没有执行释放锁,程序挂了,这种情况需要用到key的过期机制,即设置expire
zookeeper的分布式锁的实现原理
mysql如何做分布式锁
计数器算法:
计数器算法,是指在指定的时间周期内累加访问的次数,达到设定的阈值时,触发限流策略,下一个时间周期进行访问的时候,访问次数清零,此算法不论在单机还是分布式环境下实现都非常简单,使用redis的incr原子自增性,在结合key‘的过期时间就可以实现。
滑动窗口算法
设计微服务的时候需要遵循什么原则
1、单一职责原则:每个服务能独立运行,有界限的工作,每个服务只关心自己的业务,做到高内聚。
2、服务自治原则:每个服务要能够独立开发,独立测试、独立构建;
3、轻量级通信原则,每个服务之间的调用是轻量的;
可靠消息服务方案:
可靠消息,发起方一定的把消息传递到消费者
最终一致性:最终发起方的业务处理和消费方的业务处理的完成,达成最终一致性
什么是分布式系统的幂等性
幂等性是指使用相同的参数重复执行某函数,能获得相同的结果。
幂等性有哪些技术解决方案
1、查询和删除操作,是不需要处理的,select、delete是一个天然的幂等操作;
2、通过唯一索引 实现幂等性 ,防止新增脏数据;
3、token机制,防止页面重复提交,第一次请求完之后token会被删除,所以第二次的时候token没了就无法进行。
实际解决操作:token+redis、token+jvm锁
双写一致性如何解决
一般是先更新数据库,然后删除缓存,在更新更新缓存
cookie和session的区别,如何使用session进行身份验证
cookie是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下一个先同一个服务器再次发送请求的时候,被携带到服务器上,通常用于告诉服务端两个请求是否来自同一个浏览器,cookie使用无状态的http协议记录稳定的状态信息;
session是在服务端中,存储特定用户会话所属的属性以及配置信息,这一当用户在应用程序的web页之间跳转的时候,存储在session里面的变量将不会丢失,而是在整个用户会话中一直存在下去,当客户端关闭会话的时候,session失效。
为什么cookie无法防止csrf攻击,到那时token可以?
csrf攻击:跨站请求伪造,就是用你的身份发送一些不友好的请求。
分布式系统中session共享的方法



