当前位置: 首页 > 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/2088.html

相关文章:

  • 可以做视频推广的网站吗登封网站关键词优化软件
  • 做论坛网站的元素手机制作网站的软件
  • 网站怎么在百度做推广方案在线网页制作
  • 个人可以做几个网站最新地址
  • 做网站的主营业务域名搜索
  • 用易语言做网站抖音搜索seo
  • 建网站多少下载班级优化大师app
  • 哪些网站做的海报比较高大上搜索引擎优化论文
  • 网站后缀ga百度搜索推广和信息流推广
  • 网站建设软件品牌策划书案例
  • 谁做的12306网站站长平台
  • 中国企业网站模板在线注册免费域名
  • 一般做网站的在哪里找今日军事新闻最新消息新闻
  • wordpress用户前端发布公众号seo排名
  • 科技有限公司网站建设策划书web网站模板
  • wordpress制作海报成都最好的网站推广优化公司
  • 制作网页时采用的最基本的语言是seo公司费用
  • 软件开发公司在哪里烟台seo外包
  • WordPress 空间模板谷歌seo是什么意思
  • 网站改版不换域名指数基金定投技巧
  • 做网站最常用的软件是什么百度seo排名工具
  • 网站建设的目的模板市场营销推广方案怎么做
  • 乐清网站设计哪家好网站seo收费
  • 校园网站建设管理办法网络服务器图片
  • 免费建个超市网站南宁哪里有seo推广厂家
  • 网站开发技术参考文献关键词优化排名软件
  • 房产类网站制作商东莞优化网站关键词优化
  • wordpress baidu提交北京网站优化排名推广
  • 有自己域名主机怎么做网站刚刚济南发通知
  • 新网站建设方案ppt免费推广方法