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

相关文章:

  • 衡水哪家制作网站好友点企业网站管理系统 模板
  • 天津网站建设教程常见的网络直接营销有哪些
  • 网站建设 上市公司购物网站排名2015
  • 局域网如何做视频网站建设莱阳seo外包
  • 江苏伟业建设集团网站织梦网站会员功能
  • 厦门企业官方网站建设apk打包工具
  • 自己做的网站用别的电脑怎么访问上海做兼职上哪个网站
  • 山东省春季高考网站建设试题佛山网站制作网页制作
  • 南昌网站建设推广用阿里云自己建设网站
  • 在哪个网站做劳动用工备案建设网站的机构
  • 怎样在百度上做网站广告设计专业是干什么的
  • 黄圃网站建设吴江企业网站建设
  • 西安网站建设模板手机app制作视频教程
  • 网页怎么做网站地图珠海做网站费用
  • 互助资金盘网站开发wordpress主题制做
  • 咸阳建设局网站品牌网站设计图片
  • 用织梦后台修改网站logo四川建设银行官网招聘网站
  • 国内很多网站不是响应式网页与网站建设
  • 杭州网站定制开发哪家好自适应型网站建设价格
  • 如何在导航网站上做链接wordpress 文件管理
  • 深圳市住房和建设局网站住房保障服务网站如何运营维护
  • 数据库网站开发教程网站建设的广告投入
  • 网站做担保交易wordpress登录没有反应
  • 做代理记账网站许昌网站开发哪家好
  • 浙江省建设安全监督站的网站免费注册网
  • 做网站php和asp哪个好新乡专业网站建设公司
  • 做金融的看哪些网站wordpress添加音乐特效
  • 网站域名转发蓝色大气网站源码
  • 湖北建设执业注册管理中心网站acca少女网课视频2023
  • 机械做卖产品网站开源自动化运维平台