首页 > 其他分享 >分布式面试题

分布式面试题

时间:2022-11-22 17:36:27浏览次数:65  
标签:面试题 加锁 Redis redis master 分布式 客户端

ZooKeeper和Redis两种分布式锁区别

Redis:

优点:redis基于​​内存​​​,读写性能很高,因此基于redis的分布式锁效率比较高

缺点:在redis master实例宕机的时候,可能导致多个客户端同时完成加锁。

redis一旦发生redis master宕机,主备切换,redis slave变为了redis master。接着就会导致,客户端2来尝试加锁的时候,在新的redis master上完成了加锁,而客户端1也以为自己成功加了锁。

此时就会导致多个客户端对一个分布式锁完成了加锁。这时系统在业务语义上一定会出现问题,导致各种脏数据的产生。

Zookeeper:

  • 优点:不存在redis的数据同步(zookeeper是同步完以后才返回)、主从切换(zookeeper主从切换的过程中服务是不可用的)的问题,可靠性很高
  • 缺点:保证了可靠性的同时牺牲了一部分效率(但是依然很高)。性能不如redis。

标签:面试题,加锁,Redis,redis,master,分布式,客户端
From: https://blog.51cto.com/u_15709549/5878272

相关文章

  • redisson分布式锁原理剖析
    redisson分布式锁原理剖析​ 相信使用过redis的,或者正在做分布式开发的童鞋都知道redisson组件,它的功能很多,但我们使用最频繁的应该还是它的分布式锁功能,少量的代码,却实......
  • Java基础面试题
     ArrayList和LinkedList有什么区别?可以从它们的底层数据结构、效率、开销进行阐述哈ArrayList是数组的数据结构,LinkedList是链表的数据结构。随机访问的时候,Array......
  • Crony 一个基于Go语言实现的分布式定时任务管理平台
    crony-分布式定时任务管理平台1.基本介绍1.1项目背景项目中存在许多定时任务,很多代码写法都是采取见缝插针式的写法或者直接丢到task服务里面写,存在以下问......
  • 11.22 回顾面试题
    1.说一下vue的父子组件传参使用i自定义属性和自定义事件传参使用ref属性传参vuex传参2.说一下vue2和vue3的区别template是多个根标签因为fragment......
  • Handler相关面试题
    1.Handler的作用a:在非UI线程更新UIb:发送延迟消息2.为什么Android设计只能ui线程更新ui?a:解决多线程并发问题b:提高界面更新的性能问题c:架构设计的简单3.Handl......
  • 基础面试题
    面试题数据类型什么是引用类型,值类型值类型key与value存储在栈中(量小)引用类型在栈存储的引用地址,在堆中存储是数据(量大)把引用类型赋值给一个变量,是吧变量的引用地......
  • ZooKeeper 面试题
    1.ZooKeeper是什么?ZooKeeper是一个分布式协调服务 ,由Apache进行维护。ZooKeeper可以视为一个高可用的文件系统。ZooKeeper可以用于发布/订阅、负载均衡、命令服务......
  • DB面试题目
    MyBatis面试题1、什么是Mybatis?答:MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获......
  • 分布式流处理组件-理论篇:Kafka与安装配置
    ......
  • 资深java面试题及答案整理
     8.如果你的Serializable类包含一个不可序列化的成员,会发生什么?你是如何解决的?任何序列化该类的尝试都会因NotSerializableException而失败,但这可以通过在Java中为st......