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

分布式面试题

时间:2024-09-14 10:52:34浏览次数:1  
标签:面试题 实现 数据库 zookeeper 基于 一致性 分布式

分布式锁和分布式事务的区别

分布式锁是在集群环境下,用来控制不同机器对共享资源的访问。例如:秒杀场景中的防止超卖问题。

分布式事务是在集群环境下,用来保证全局事务的一致性,保证多个数据库的数据整体上能从一个一致性状态转到另一个一致性状态。

分布式锁的实现方式有几种

1.基于数据库来实现

2.基于redis来实现

3.基于zookeeper来实现

基于关系型数据库来实现分布式锁。可以使用数据库表的唯一键来做。

做法:新创建一个表,就一个id字段和lockname字段(因为不同的锁的名称是不一样的,比方说有专门针对减库存的(抢茅台、抢手机等等都是不同的锁名称)),lockname一定要设置上唯一索引。加锁的时候,就是向表中插入一条记录,释放锁的时候就是将表中的这条记录删除掉。就可以了。

基于redis实现分布式锁的做法:是基于setnx,结合expire命令超时时间来做的。

基于zookeeper实现分布式锁的做法:是基于创建临时znode节点来做的。

分布式锁https://blog.csdn.net/weixin_56311692/article/details/128744825

zookeeper实现分布式锁的原理:

https://www.bilibili.com/video/BV1qF411w7dX/?spm_id_from=333.337.search-card.all.click&vd_source=273847a809b909b44923e3af1a7ef0b1

标签:面试题,实现,数据库,zookeeper,基于,一致性,分布式
From: https://www.cnblogs.com/dongyaotou/p/18413528

相关文章

  • 【Kubernetes】常见面试题汇总(十三)
    目录44.简述KubernetesRBAC及其特点(优势)?45.简述KubernetesSecret作用?46.简述KubernetesSecret有哪些使用方式?47.简述KubernetesPodSecurityPolicy机制?44.简述KubernetesRBAC及其特点(优势)?-RBAC是基于角色的访问控制,是一种基于个人用户的角色来管理对计......
  • 【Kubernetes】常见面试题汇总(十二)
    目录42.简述Kubernetes如何保证集群的安全性?43.简述Kubernetes准入机制?42.简述Kubernetes如何保证集群的安全性?Kubernetes通过一系列机制来实现集群的安全控制,主要有如下不同的维度:(1)基础设施方面:保证容器与其所在宿主机的隔离。(2)权限方面:①最小权限原则:合理......
  • JWT在分布式架构中的应用实践|使用Java构建安全的身份验证系统|使用Java构建安全的身份
    JWT(JSONWebToken)是一种基于JSON的开放标准,用于在双方之间安全地传输信息。JWT因其轻量级、安全性和跨平台特性,在现代Web应用中被广泛使用。通过JWT,可以方便地进行用户身份验证、信息传递等场景。然而,对于开发者来说,如何正确解析JWT以验证其合法性和提取其中的信息至关重要。在这......
  • 读构建可扩展分布式系统:方法与实践03分布式系统要点
    1. 通信基础1.1. 每个分布式系统都包含通过网络进行通信的软件组件1.2. 硬件1.2.1. 全球互联网就是一台异构机器,由不同类型的网络通信通道和设备组成,它们每秒将数百万条消息通过网络传送到预定目的地1.2.2. 对于单个光纤链路,可以提供每秒超过70Tbps的总带宽1.2.......
  • Redis 分布式锁的正确实现原理演化历程与 Redission的源码
    ......
  • 面试题总结
    北境互娱简述重载与重写重载是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。重写是指派生类中存在重新定义的函数。其函数名,参数列表,返回值类型,所有都必须同基类中被重写的函数一致。只有......
  • 软件测试面试题-自测
    一、测试流程 1.项目测试流程你是怎么开展的?①首先,需求分析阶段,分析需求点,需求确定以后进入测试计划阶段,参考需求规格说明书进行测试计划编写②接着,进入测试设计阶段,依据需求文档及原型图编写测试用例,并进行用例评审③进入测试执行阶段,需要搭建测试环境,执行冒烟测试之后......
  • 前端面试题
    forin和forof的区别forin适用于可枚举属性,例如对象、数组、字符串forof适用于可迭代对象,像Array、Stringforin能遍历自身的可枚举属性&&原型上的可枚举属性forof一般只能遍历自身的可枚举属性forin得到的是keyforof一般得到的是valueES6之后版本新增特性......
  • 本地缓存与分布式缓存的区别及实现详解
    在现代软件架构设计中,缓存技术的应用极为广泛,尤其是在需要频繁读取数据并且读取速度要求极高的场景下。缓存可以显著提高系统的响应速度,降低数据库的压力,从而提升用户体验。本文将详细介绍本地缓存与分布式缓存的区别,并深入探讨本地缓存的实现方式及其扩展概念——近端缓存......
  • 小米嵌入式面试题目RTOS面试题目 嵌入式面试题目
    第一章-非RTOSbootloader工作流程MCU启动流程通信协议,SPIIICMCU怎么选型,STM32F1和F4有什么区别外部RAM和内部RAM区别,怎么分配外部总线和内部总线区别MCU上的固件,数据是怎么分配的MCU启动流程IAP是怎么升级的,突然断电怎么办挑了麦轮项目(因为大疆RM也是......