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

想做一个电影网站该怎么做怎么建公司网站

想做一个电影网站该怎么做,怎么建公司网站,前端工作好找吗,建设官网站在分布式系统中,常用到分布式锁,它有多中实现方式,如:基于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.wangmingla.cn/news/43348.html

相关文章:

  • 做服装商城网站一键优化表格
  • 网站开发需要了解的知识网络推广专员是做什么的
  • 网站用表格做的吗2345网址大全浏览器
  • 风景区网站建设项目建设可行性上海百度竞价托管
  • 网站怎么用ftp修改网页内容seo文章优化技巧
  • 网站建设手机站互联网去哪里学
  • wordpress数据库链接地址长沙seo外包平台
  • 怎样自己建一个网站河北seo基础入门教程
  • 网上书城网站建设功能定位如何免费做网站
  • 电子商务网站建设开发温州seo结算
  • 网站页面设计软件策划是做什么的
  • 产品查询展示型网站长春今日头条新闻
  • 西安网站建设公司西安网络公司最新疫情新闻100字
  • 用ps做三网站横幅关键词快速排名怎么做
  • 邯郸网站制作建设什么是seo站内优化
  • 网站建设维护人员岗位百度客服联系方式
  • lwip在stm32上做网站seo关键词平台
  • 建网站买完域名后怎么做百度指数分是什么
  • 网站后台怎么做alt标签360网站排名优化
  • flash网站引导页南宁seo主管
  • 设计制作过程嘉兴百度seo
  • 个人域名备案做企业网站网站的优化公司
  • 黄山工程建设信息网站网站seo外包
  • 做战袍网站青岛今天发生的重大新闻
  • 简单的网站建设公司好网站
  • 校内 实训网站 建设方案百度云盘下载
  • 用asp.net做的网站模板百度预测大数据官网
  • 建设网站的准备手机seo排名
  • 内部网站建设的步骤过程百度热榜
  • 时时彩网站建设teafly建网站需要什么