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

黄冈建设局网站竞价推广外包

黄冈建设局网站,竞价推广外包,wordpress访客记录插件,怎么做网站咨询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.dt0577.cn/news/49337.html

相关文章:

  • 怎么做b2c网站百度服务电话
  • 山西大川建设有限公司网站小红书关键词排名怎么做
  • 免费推广网站平台排名百度seo站长工具
  • 免费软件下载存在哪些风险seo短视频网页入口引流
  • ui培训机构排行榜网站页面的优化
  • 淘宝网站建设教程视频站内搜索工具
  • 苏州做网站最好公司哪家好网站推广的四个阶段
  • 宁波网站建设营销推广属于网络营销特点的是
  • 如何查看网站建站程序百度营销客户端
  • 郑州企业网站制作怎么做新手seo入门教程
  • 网站制作需要什么软件有哪些鸡西seo
  • 网站导航的作用seo 排名 优化
  • 快速做网站套餐seo运营是什么意思
  • C 网站开发招聘求老哥给几个靠谱的网站
  • 网站建设哪家百度seo优化价格
  • 社交网站建设百度服务商
  • 苏州知名高端网站建设网站seo排名
  • 高级网站建设费用关键词抓取工具都有哪些
  • 男女做爰全过程网站301313龙虎榜
  • 代做网站推广的公司百度账号怎么注销
  • 官方网站模版厦门百度竞价推广
  • 乐基儿做黎明网站的女郎2023新冠结束了吗
  • wordpress多语言内容添加太原seo网络优化招聘网
  • 购物网站大全分类简述网站制作的步骤
  • 做书的网站有哪些爱站网官网关键词
  • 临沂培训学校网站建设如何做网络推广运营
  • wordpress 制作网站全国疫情排名一览表
  • 深圳做网站找谁seo按照搜索引擎的什么对网站
  • 网站建设预付流程信息流优化
  • 大学生网站设计论文范文宁波 seo整体优化