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

北京专业企业营销网站建设手机网页制作app

北京专业企业营销网站建设,手机网页制作app,嘉定企业网站制作,做网站市场价格多少文章目录前言1、分布式情况下如何加锁2、具体实现过程3、测试3.1 一个服务按照多个端口同时启动3.2 使用jmeter进行压测前言 上一篇实现了单体应用下如何上锁,这一篇主要说明如何在分布式场景下上锁 上一篇地址:加锁 1、分布式情况下如何加锁 需要注意的点是: 在上锁和释放…

文章目录

    • 前言
    • 1、分布式情况下如何加锁
    • 2、具体实现过程
    • 3、测试
      • 3.1 一个服务按照多个端口同时启动
      • 3.2 使用jmeter进行压测

三连哦

前言

上一篇实现了单体应用下如何上锁,这一篇主要说明如何在分布式场景下上锁

上一篇地址:加锁

1、分布式情况下如何加锁

需要注意的点是: 在上锁和释放锁的过程中要保证原子性操作

在这里插入图片描述

在这里插入图片描述

2、具体实现过程

核心是上锁和解锁的过程

关于解锁使用脚本参考:SET key value [EX seconds] [PX milliseconds] [NX|XX]

//上锁过程
String uuid = UUID.randomUUID().toString();
Boolean lock = redisTemplate.opsForValue().setIfAbsent("lock", uuid, 300, TimeUnit.SECONDS);//解锁过程、需要 调用脚本
String script = "if redis.call(\"get\",KEYS[1]) == ARGV[1] then  return redis.call(\"del\",KEYS[1]) else return 0 end";
Long lock1 = (Long) redisTemplate.execute(new DefaultRedisScript<Long>(script, Long.class), Arrays.asList("lock"), uuid);
    public Map<String, List<Catalog2Vo>> getCatalogJsonDbWithSpringCache() {//占分布式锁.redis中占坑String uuid = UUID.randomUUID().toString();Boolean lock = redisTemplate.opsForValue().setIfAbsent("lock", uuid, 300, TimeUnit.SECONDS);Map<String, List<Catalog2Vo>> dataFromDb;if (lock) {System.out.println("加锁成功......");try {//加锁成功...执行业务dataFromDb = getCategoriesDb();} finally {//删除锁String script = "if redis.call(\"get\",KEYS[1]) == ARGV[1] then  return redis.call(\"del\",KEYS[1]) else return 0 end";Long lock1 = (Long) redisTemplate.execute(new DefaultRedisScript<Long>(script, Long.class), Arrays.asList("lock"), uuid);}return dataFromDb;} else {//加锁失败...重试.synchronized  休眠100ms重试System.out.println("加锁失败......");try {Thread.sleep(200);} catch (Exception e) {}//自旋方式return getCatalogJsonDbWithSpringCache();}}

3、测试

3.1 一个服务按照多个端口同时启动

模拟分布式情况、将一个服务按照多个端口同时启动

具体过程

  • 1 首先,点击修改运行配置在这里插入图片描述

  • 2 将你的项目配置的右上角的Allowl parallel run勾上(允许多启动)在这里插入图片描述

  • 3 将你的项目配置复制一份重启个名字,添加上-Dserver.port=端口号
    在这里插入图片描述

在这里插入图片描述

  • 4 启动项目
    在这里插入图片描述

3.2 使用jmeter进行压测

请求的基本配置

在这里插入图片描述

测试情况
模拟的基本前提: redis中没有缓存数据

上锁成功的情况下、 三个服务中只会出现一次查询数据库、其余接口请求从redis中拿取数据.

下方是测试截图、符合预期情况 、上锁成功

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

redis中缓存的数据
在这里插入图片描述

http://www.ds6.com.cn/news/38948.html

相关文章:

  • 棕色网站谷歌推广公司
  • 腾讯 微商 网站 建设应用商店搜索优化
  • 网站开发工程师证书有用吗网站广告费一般多少钱
  • 武汉做网站公司推荐html网页制作模板
  • 电子商务网站建设与管理的实践报告金戈枸橼酸西地那非
  • 网页微信怎么换行郑州百度seo
  • 市场营销策划书关键词推广seo怎么优化
  • 做网站的功能结构布局网络营销简介
  • 网站源文件汕头网站建设优化
  • 建网站详细教程网站seo基本流程
  • 西安公司做网站年度关键词
  • 长春专业做网站公司哪家好百度热点榜单
  • 永久建站平台深圳全网推广平台
  • 香河家具城网站建设目标热点新闻事件今日最新
  • 保健品网站怎么做的百度广告优化师
  • 网站信息架构图怎么做凡科建站怎么用
  • 电力网站建设方案国家培训网官网
  • 学校资源网站 建设方案网站建设流程
  • 做社交网站的预算谷歌商店paypal官网下载
  • 泸州疫情最新消息越秀seo搜索引擎优化
  • wordpress链家宁波做seo推广企业
  • 百度快照入口网络网站推广选择乐云seo
  • 广东英德网站建设微信推广费用一般多少
  • 通付盾 网站公司建设网站建设杭州
  • 去什么网站做推广成都营销推广公司
  • 自己做的网页怎么连接到网站网络营销策略分析方法
  • 网站做点击收费标准安卓优化神器
  • wordpress 免费 模板下载百度seo公司整站优化
  • 做数独的网站互联网营销方案
  • 泊头做网站的有哪些互联网营销推广服务商