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

dedecms 网站 经常无法连接网站空间怎么查询

dedecms 网站 经常无法连接,网站空间怎么查询,基层建设期刊在哪个网站上检索,免费申请域名的方法和流程在分布式系统中,常用到分布式锁,它有多中实现方式,如:基于redis,database,zookeeper等。Spring integration组件有这三种服务的分布式锁实现,今天来看看用的比较多的redis和database实现方式。 …

在分布式系统中,常用到分布式锁,它有多中实现方式,如:基于redis,database,zookeeper等。Spring integration组件有这三种服务的分布式锁实现,今天来看看用的比较多的redis和database实现方式。

第一种:Spring原生-基于Redis的分布式锁:

1. 需要加入以下依赖,第一个是spring boot integration模块,一个是integration redis实现模块。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-integration</artifactId>
</dependency>
<dependency><groupId>org.springframework.integration</groupId><artifactId>spring-integration-redis</artifactId>
</dependency>

2. 配置RedisLockRegistry Bean,有了这个Bean之后,就可以用来加锁、解锁了,Spring框架中有继承redis的实现和异常处理,我们可以方便且稳定的使用。

@Configuration
public class LockConfig {@Beanpublic RedisLockRegistry redisLockRegistry(RedisConnectionFactory redisConnectionFactory) {return new RedisLockRegistry(redisConnectionFactory, "test",60);}
}

3. 加锁、解锁。在需要分布式加锁的时候,先通过redisLockRegistry获取到lock对象,然后用lock对象加锁(可以设置等待尝试时间,到点自动放弃,不加时间默认立即放弃),处理完业务之后一定要记得解锁。

Lock lock = redisLockRegistry.obtain(lockKey);if (lock.tryLock(0L, TimeUnit.SECONDS)) {log.info("获取到锁,执行业务代码...");} else {log.info("很遗憾没获取到锁。");
}lock.unlock();

 

第二种:Spring原生-基于DB的分布式锁:

1. 需要加入以下依赖,第一个是spring boot integration模块,一个是integration jdbc实现模块。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-integration</artifactId>
</dependency>
<dependency><groupId>org.springframework.integration</groupId><artifactId>spring-integration-jdbc</artifactId>
</dependency>

2. 配置JdbcLockRegistry Bean,有了这个Bean之后,就可以用来加锁、解锁了,Spring框架中有继承redis的实现和异常处理,我们可以方便且稳定的使用。

@Configuration
public class LockConfig {@Beanpublic JdbcLockRegistry getJdbcLockRegistry(DataSource dataSource, ApplicationContext applicationContext) {DefaultLockRepository lockRepository = new DefaultLockRepository(dataSource);lockRepository.setApplicationContext(applicationContext); //必须设置applicationContextlockRepository.afterSingletonsInstantiated(); //在LockRepository实例化后必须调用这个方法,否则后面会报事务对象空指针错误lockRepository.setPrefix("spring_"); //分布式锁表前缀,自定义lockRepository.setTimeToLive(60000); //锁存活时间60slockRepository.afterPropertiesSet(); //属性设置结束后必须调用此方法,格式化加锁、解锁SQL语句return new JdbcLockRegistry(lockRepository);}
}

3. 加锁、解锁。在需要分布式加锁的时候,先通过jdbcLockRegistry获取到lock对象,然后用lock对象加锁(可以设置等待尝试时间,到点自动放弃,不加时间默认立即放弃),处理完业务之后一定要记得解锁。

Lock lock = jdbcLockRegistry.obtain(lockKey);if (lock.tryLock(0L, TimeUnit.SECONDS)) {log.info("获取到锁,执行业务代码...");} else {log.info("很遗憾没获取到锁。");
}lock.unlock();

http://www.yayakq.cn/news/917073/

相关文章:

  • wordpress字体怎么改优化方案化学
  • 网站备案是怎么回事全屋整装定制
  • 图片链接生成网站做环评需要关注哪些网站
  • seo助力网站转化率提升兰州光辉网站建设
  • 青海专业网页设计免费建站注册域名后怎么建设网站
  • 网站项目案例免费的行情网站app软件大全
  • 如何做网站毕业设计网站建设现状分析
  • 新闻资讯网站php源码聊城建网站服务
  • 网站建站推荐12306网站开始是谁开发的
  • 建设网站需要api吗庆阳有人做农资网站吗
  • php做网站最容易备案名称和网站名称
  • 山西网站制作平台城乡住房建设部网站保证金
  • 企业网站建设属于什么费用创新的营销型网站
  • 网站建设与维护流程知名电子商务企业
  • 湖北省住建厅网站官网wordpress的数据库有多大?
  • 找网站开发项目搞软件开发的一般学什么专业
  • 如何选网站建设公司朝阳区网站建设公司
  • 北京营销型网站建设多少钱企业品牌vi设计公司
  • 站长之家音效素材网站搜索排名优化
  • 有网站模板如何预览网站开发年收入
  • 网站的安全性建设阿里OSS做网站图库费用
  • 网站建设与维护教学课件深圳建站网站
  • 宁波网站制作与推广价格模板之家网页模板下载
  • 上海免费网站建设服务给你一个网站seo如何做
  • 单招网是哪个网站制作公司做的辽宁网站建设平台
  • 网站外连最新新闻事件今天国内大事2022
  • 宁波模板建站多少钱网页微信授权登录
  • 仪器网站模版有什么网站可以发布个人信息
  • 网站开发维护求职信阳曲网站建设价格多少
  • 中国空间站拒绝10国名单加强网站信息内容建设管理