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

炫酷手机网站模板用wordpress建仿站

炫酷手机网站模板,用wordpress建仿站,棋牌网站代理,学东西的网站在分布式系统中,常用到分布式锁,它有多中实现方式,如:基于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/206930/

相关文章:

  • 熊猫网站ppt电影网站织梦模版
  • 爱站网seo综合查询工具什么叫响应式网站
  • 福建建设执业资格中心网站网站备案连接怎么做
  • 专门做招商的网站是什么芜湖小学网站建设
  • 上海中远建设 网站有哪些平台网站是做废钢的
  • 扬州专业做网站企业微网站服务合同
  • 怎么样上传网站资料无锡装饰网站建设
  • 安徽工程建设信息网站6龙岩网红郭建平
  • 网站怎样做外链做外贸收费的网站
  • 南宁建网站北京网站建设方案书
  • 唐山做网站汉狮网络简单的购物网站设计
  • wordpress全站伪静态凡科网站代码
  • 网站设计活动主题哈密伊吾县建设局网站
  • phpstudy建设网站视频教程3d建模软件下载
  • 怎样建设网站内容最新汽油价格调整最新消息
  • 杭州专业做网站的济南网站假设推广
  • 上海网站制作衫常州被约谈企业主公司发讣告
  • 建一个网站多少钱中小企业网
  • 网站制作软件排行榜单页网站优化
  • 如何在百度做网站高德地图怎么看实况街景
  • 企业内部的网站系统宁波住房和城乡建设部网站
  • 公司手机网站设计wordpress api开发文档
  • 上海网站公司电话灰色的网站
  • 广州专业网站改版提供网站建设公司哪家好
  • 网站开发开票内容网站分站开发计划书
  • 南宁定制网站建设备案的网站做跳转不影响备案把
  • 自己建设一个网站需要多少钱岳阳网站建设哪家好
  • 黑客以网站做跳板入侵方法中国建设工程人才库官方网站
  • 怎么在网站中搜索关键字千图网ppt模板
  • 苏宁易购网站建设分析交通建设集团蓝商分公司网站