首页 > 其他分享 >防止超卖主要是通过分布式锁实现

防止超卖主要是通过分布式锁实现

时间:2024-02-04 16:00:56浏览次数:27  
标签:code 请求 redis 防止 设置 超卖 分布式

加分布式锁

其实前面介绍过的加唯一索引或者加防重表,本质是使用了数据库的分布式锁,也属于分布式锁的一种。但由于数据库分布式锁的性能不太好,我们可以改用:redis或zookeeper。

鉴于现在很多公司分布式配置中心改用apollo或nacos,已经很少用zookeeper了,我们以redis为例介绍分布式锁。

目前主要有三种方式实现redis的分布式锁:

  1. setNx命令
  2. set命令
  3. Redission框架

每种方案各有利弊,具体实现细节我就不说了,有兴趣的朋友可以加我微信找我私聊。

具体流程图如下:

 

 

具体步骤:

  1. 用户通过浏览器发起请求,服务端会收集数据,并且生成订单号code作为唯一业务字段。
  2. 使用redis的set命令,将该订单code设置到redis中,同时设置超时时间。
  3. 判断是否设置成功,如果设置成功,说明是第一次请求,则进行数据操作。
  4. 如果设置失败,说明是重复请求,则直接返回成功。
需要特别注意的是:分布式锁一定要设置一个合理的过期时间,如果设置过短,无法有效的防止重复请求。如果设置过长,可能会浪费redis的存储空间,需要根据实际业务情况而定。

标签:code,请求,redis,防止,设置,超卖,分布式
From: https://www.cnblogs.com/JavaYuYin/p/18006407

相关文章

  • 选 300 平米别墅还是 90 平米小平层?一文带你读懂 PolarDB 分布式版集分一体化
    作者:楼江航(七锋) 日前,在阿里云PolarDB开发者大会上,阿里云PolarDB分布式产品部负责人黄贵发表了《分布式的PolarDB:分布式的能力,一体化的体验》主题演讲。黄贵表示,PolarDB分布式版(PolarDBforX-scale,简称“PolarDB-X”)早期一直聚焦分布式形态,我们在2023年10月公共云......
  • 分布式文件系统---Minio
    什么是分布式文件系统​ 分布式文件系统(DistributedFileSystem,DFS)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点(可简单的理解为一台计算机)相连;或是若干不同的逻辑磁盘分区或卷标组合在一起而形成的完整的有层次的文件系统。DFS为分......
  • nginx---防止盗链
    ngx_http_referer_module模块:用来阻止Referer首部无有效值的请求访问,可防止盗链valid_referersnone|blocked|server_names|string...;定义referer首部的合法可用值,不能匹配的将是非法值none:请求报文首部没有referer首部blocked:请求报文有referer首部,但无有效值se......
  • 作为国产深度学习框架中分布式计算特性最强大的OneFlow的最大缺点是什么?
    OneFlow是国产深度学习框架中分布式计算特性最强大的,因为其原生支持分布式特性,世界上的历史中的深度学习框架唯一可以做到这一点的也就只有Google的TensorFlow和Jax了,虽然有人说Google的分布式最强也有人说Google的分布式一般,但是毋庸置疑的是OneFlow一定是国产深度学习框架中分布......
  • 短视频源码,实现预处理防止客户端频繁请求
    Go语言实现在Go语言中,使用db.Prepare()方法实现预处理:func(db*DB)Prepare(querystring)(*Stmt,error)Prepare执行预处理SQL语句,并返回Stmt结构体指针,进行数据绑定操作。查询操作使用db.Prepare()方法声明预处理SQL,使用stmt.Query()将数据替换占位......
  • 【2024】jmeter分布式压测记录
    一、分布式压测配置分布式压测分为一台master机器和多台slave机器,master机器主要用于控制多台slave机器运行并汇总运行结果。当然,压力机资源紧张时,master机器只做控制机有点浪费,也可以通过配置让master机器也作为施压机,既做控制机又做施压机。1.配置准备工作master配置:jmet......
  • 深度|应用可观测性之灵活如何使用分布式调用链进行服务性能调优
    微服务架构的快速发展使得分布式链路追踪系统成为观测体系中越来越重要的组件。众安科技的分布式追踪系统经过数年发展后,已覆盖众安保险的绝大部分在线业务,完成了上千+微服务和几十万+服务实例的在线链路追踪。本次分享将通过介绍调用链瀑布图和服务拓扑图这两个调用链系统的核心......
  • 深度|应用可观测性之灵活如何使用分布式调用链进行服务性能调优
    微服务架构的快速发展使得分布式链路追踪系统成为观测体系中越来越重要的组件。众安科技的分布式追踪系统经过数年发展后,已覆盖众安保险的绝大部分在线业务,完成了上千+微服务和几十万+服务实例的在线链路追踪。本次分享将通过介绍调用链瀑布图和服务拓扑图这两个调用链系统的核心服......
  • 如何通过有效的桌面行为管理,防止员工的“摸鱼”行为?
    在当今的企业环境中,我们面临着很多的挑战,其中之一就是如何防止员工在工作时间内进行与工作无关的活动,比如游戏、聊天软件等,也叫做“摸鱼行为”,不仅降低了工作效率,而且还可能引发数据泄露的风险。为此,了解如何使用通讯工具监听功能,过滤和限制这些与工作无关的程序运行,显得尤其重要......
  • 为分布式应用提供协调服务的 ZooKeeper
    什么是zookeeperzookeeper是Apache开源的一个顶级项目,目的是为分布式应用提供协调服务,当然zookeeper本身也是分布式的。而从设计模式的角度来理解:zookeeper是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接收观察者的注册。一旦数据......