当前位置: 首页 > news >正文

中国国际贸易网官网平台做seo网站优化价格

中国国际贸易网官网平台,做seo网站优化价格,电子商务与网站建设报告,深圳网络推广seo软件Java使用Redis来实现分布式锁 在单节点服务中,我们可以使用synchronized来保证同一时间内只允许一个线程执行限定的代码块。但是如果我们是多节点服务呢,因为synchronized是针对服务内部的,其他服务是无法受到他的干预的。那么如何保证多个节…

Java使用Redis来实现分布式锁

在单节点服务中,我们可以使用synchronized来保证同一时间内只允许一个线程执行限定的代码块。但是如果我们是多节点服务呢,因为synchronized是针对服务内部的,其他服务是无法受到他的干预的。那么如何保证多个节点在同一时间内只允许一个节点中的一个线程去访问这个代码块呢?

使用分布式锁!!!

本文使用Redisson来操作Redis并实现分布式锁

Redisson

官网:https://github.com/redisson/redisson/tree/redisson-3.16.8

  1. 引入依赖

    <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.16.8</version>
    </dependency> 
    
  2. 创建RedissonConfig配置类

    @ConfigurationProperties(prefix = "spring.redis")
    @Configuration
    @Data
    public class RedissonConfig {// 主机名private String host;// 端口private String port;// 使用那个数据库private Integer database;@Beanpublic RedissonClient redissonClient(){Config config = new Config();// 使用单机Redis服务config.useSingleServer()// use "rediss://" for SSL connection.setAddress(String.format("redis://%s:%s",host,port)).setDatabase(database);return Redisson.create(config);}
    }
    
  3. 创建配置文件

    # Redis 配置
    spring.redis.host=xxx
    spring.redis.port=xxx
    spring.redis.database=xxx
    
  4. 在业务代码中添加分布式锁

    // 注入我们的RedissonClient
    @Autowired
    private RedissonClient redissonClient;{// 指定一个key来获取锁,如果是需要按不同的情况加锁的话,这样可以使用变量RLock lock = redissonClient.getLock("LOCK_NAME");try{lock.tryLock(long waitTime, long leaseTime, TimeUnit unit);//... 业务逻辑}catch (InterruptedException ex) {ex.printStackTrace();}finally{// 判断是否由当前线程持有锁 if (lock.isHeldByCurrentThread()) {// 释放锁lock.unlock();}}
    }
    

    tryLock 尝试获取锁 获取成功返回true 获取失败返回false

    • waitTime 尝试获取锁的等待时间,超过不再继续获取
    • leaseTime 锁的持有时间,业务代码的执行时间如果超过该时间则抛出异常
      • 可以设置为null 或者 -1 表示业务执行多久占用多久,这里其实使用了看门狗的一个机制,默认的持有时间是30秒,如果超时未执行完成,每10看门狗会为我们自己续期一次。已保证业务代码执行完成。
    • unit 时间单位
http://www.hyszgw.com/news/30693.html

相关文章:

  • 网站建设1選宙斯站长ui设计是学什么的
  • 坪山新区网站建设网站建设批复意见
  • 网站优化查询代码传媒有限公司
  • 做会计一般关注什么网站有名的网站制
  • 厦门网站开发培训计算机基础培训机构
  • 紫色风格网站营口汽车网站建设
  • 大连网站在哪备案品牌网站建设绿d茶
  • 海南网上申请营业执照步骤网站关键字优化合同
  • 深圳市网站建设外包公司网站建设与维护 国赛
  • 找建筑图纸的网站查询网站空间
  • 做轻时尚的网站求网址直接能看的2021
  • editplus怎么创网站wordpress 图片页面
  • 广州seo站内优化网站快照出现两个
  • 外贸公司网站推广做推广的免费的济宁网站有哪些
  • 网站模板免费下载网站加强网站的建设
  • 上海网站建设排名网站运营与管理的内容包括
  • 在线购物网站 模版比较好的网站建设论坛
  • 网站怎么留住用户wordpress文章索引
  • 响应式网站pad尺寸免费博客 wordpress
  • 网站开发与维修是什么意思小程序制作开发
  • 网站怎么放到服务器网站建设方案书安全性
  • 阿里云做网站买什么做视频的网站
  • php+mysql网站开发全程实例pdfpc端手机网站 viewport 自适应
  • 国内设计网站排名商城域名注册管理机构
  • 网站开发服务器知识开发网站开发
  • 怎么做自己的网站主页保定企业网站的建设
  • 深圳seo整站优化承接阿里指数查询官网
  • wordpress关闭自动更新seo优化宣传
  • 什么公司在百度做网站成品网站 智能建站
  • 平面设计网站有什么app报价