首页 > 其他分享 >秒杀(高并发)系统关注的问题

秒杀(高并发)系统关注的问题

时间:2023-06-14 22:31:40浏览次数:51  
标签:String start 系统 信号量 并发 秒杀 semaphore now 分布式

image.png image.png

// 如果当前这个场次的商品库存信息已经上架就不需要上架
// 5、使用库存作为分布式Redisson信号量(限流)
// 使用库存作为分布式信号量
RSemaphore semaphore = redissonClient.getSemaphore(SKU_STOCK_SEMAPHORE + token);
// 商品可以秒杀的数量作为信号量
semaphore.trySetPermits(seckillSkuVo.getSeckillCount());
}
 /**
     * 当前时间
     * @return
     */
    private String startTime() {
        LocalDate now = LocalDate.now();
        LocalTime min = LocalTime.MIN;
        LocalDateTime start = LocalDateTime.of(now, min);
        start.minusHours(8);

        //格式化时间
        String startFormat = start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        return startFormat;
    }
// 如果占位成功说明买过
// 分布式信号量 减
RSemaphore semaphore = redissonClient.getSemaphore(SKU_STOCK_SEMAPHORE + randomCode);
boolean b = semaphore.tryAcquire(num, 100, TimeUnit.MILLISECONDS); // 从信号量取出来 num 取出数量 100 微秒快速尝试 不占用时间

String timeId = IdWorker.getTimeId(); // 分布式自增长ID

标签:String,start,系统,信号量,并发,秒杀,semaphore,now,分布式
From: https://blog.51cto.com/u_15993308/6482276

相关文章

  • 系统调用IO-11-read,write,lseek及mycpy的实现
    1.概述readNAMEread-readfromafiledescriptorSYNOPSIS#include<unistd.h>//从fd中读,读到buf中去,读count个字节ssize_tread(intfd,void*buf,size_tcount);DESCRIPTIONread()attemptstoreaduptocountbytesfrom......
  • 微控制器实时操作系统实践5选择IDE
    选择IDE集成开发环境(IDEintegrateddevelopmentenvironment)有能力极大地影响开发。集成开发环境被设计成具有较小的学习曲线,并且通常提供一种简单的方法来从现有的驱动程序和中间件建立解决方案。在本章中,我们将讨论如何选择IDE,看看不同类型的IDE,并选择一个IDE来创建你在本书......
  • 图书管理系统
    forloop.counter展示的是从1开始的有序数列for循环使用的cmd创建一个库createdatabase库名;pycharm连接mysqlDATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'tsgl','USER'......
  • 推荐系统中的常用算法——Wide & Deep
    1.概述在前DeepLearning时代,以LogisticRegression(LR)为代表的广义线性模型在CTR,CVR中得到了广泛的应用,主要原因包括:模型足够简单,相当于不包括隐含层的神经网络;可扩展性强;可解释性强,因为是线性的模型,可以很方便的显现出特征对最终结果的强弱。虽然线性模型有如上的优点,但同时也存在......
  • 推荐系统中的常用算法——基于Graph Embedding的GES和EGES
    1.概述相比较于基于CollaborativeFilter算法,基于基础GraphEmbedding模型可以根据用户的行为序列学习出item的embedding,利用item对应的Embedding可以方便计算item与item之间的相似度,并在实践中被证明是卓有成效的方法,在基于基础GraphEmbedding模型,主要包括item2vec,node2vec,deepw......
  • c# 通过注册表获取系统服务安装路径
    stringkey=@"SYSTEM\CurrentControlSet\Services\";varservices=Registry.LocalMachine.OpenSubKey(key);if(services==null){return;}varserviceNameList=serv......
  • InnoDB的并发线程配置
    InnoDB使用操作系统线程来处理用户事务的请求。(事务在提交或回滚之前可能会向InnoDB发出许多请求)在具有多核处理器的现代操作系统和服务器上,上下文切换非常高效,大多数工作负载都可以很好地运行,而不会限制并发线程的数量。在有助于最小化线程之间的上下文切换的情况下,InnoDB可以......
  • 《Java并发编程的艺术》pdf电子书免费下载
    《Java并发编程的艺术》正是为了解决这个问题而写的。书中采用循序渐进的讲解方式,从并发编程的底层实现机制入手,逐步介绍了在设计Java并发程序时各种重要的技术、设计模式与应用,同时辅以丰富的示例代码,使得开发人员能够更快地领悟Java并发编程的要领,围绕着Java平台的基础并发功能......
  • 关于xfs文件系统-在操作系统中遇到两个uuid一样的-挂载报错-wrong fs type, bad optio
    当操作系统中,出现了两个uuid一样的文件系统(笔者这里是xfs),那么默认就只能挂载成功一个[root@qq-5201351~]#blkid|grepxfs|grep1ea9e784-0692-403c-bed1-bf34a5a86a57/dev/nvme1n1:UUID="1ea9e784-0692-403c-bed1-bf34a5a86a57"BLOCK_SIZE="512"TYPE="xfs"/dev/nvme2......
  • 门店系统了解一下:如何选择适合概念店的POS?
     概念店是指一种专注于提供独特产品或服务的零售店,具有创新性和个性化的特点。这样的门店需要一个可以支持其特殊需求的POS系统。 在选择概念店最合适的POS系统之前,我们需要先了解POS系统在门店系统中扮演的角色。 POS系统是门店系统的核心,它不仅可以记录客户信息和交易日志......