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

专业做互联网招聘的网站有哪些网站是否含有seo收录功能

专业做互联网招聘的网站有哪些,网站是否含有seo收录功能,如何去掉 wordpress,抓取资源的网站怎么做接着上一节,我们遇到了超卖的问题,并通过Redis实现分布式锁,进行了解决。本节 我将换一种方式实现分布式锁。 前提: nginx、redis、nacos 模块1: provider-and-consumer 端口 8023 模块2 rabbitmq-consumer 端口 8021 …

接着上一节,我们遇到了超卖的问题,并通过Redis实现分布式锁,进行了解决。本节 我将换一种方式实现分布式锁。

前提:
nginx、redis、nacos
模块1:
provider-and-consumer 端口 8023
模块2
rabbitmq-consumer 端口 8021

添加依赖

<dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.15.6</version>
</dependency>

业务代码

模块1代码 RedisTestController.java

package com.atguigu.gulimall.providerconsumer.controller;import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.UUID;
import java.util.concurrent.TimeUnit;/*** @author: jd* @create: 2024-07-08*/
@RestController
@RequestMapping("/test")
@Slf4j
public class RedisTestController {@Autowiredprivate StringRedisTemplate stringRedisTemplate;@Autowiredprivate RedissonClient redissonClient;@GetMapping("/RedissonLock")public String  deductStockByRedisson(){//写死一个固定商品ID,作为我们被秒杀的商品String lockKey="lock:product:102";//获取锁对象RLock lock = redissonClient.getLock(lockKey);//加锁,使用lock方法,锁将会自动续命lock.lock();try{//获取当前库存String stock1 = stringRedisTemplate.opsForValue().get("stock");if(stock1==null){System.out.println("秒杀未开始,请等开始后操作下单");return "end";}int stock = Integer.parseInt(stringRedisTemplate.opsForValue().get("stock"));if(stock>0){// 扣减库存int realStock = stock - 1;// 更新库存stringRedisTemplate.opsForValue().set("stock", realStock + "");System.out.println("扣减成功,剩余的库存为:" + realStock);}else {System.out.println("扣减库存失败,库存不足");}}finally {if(lock.isLocked()&&lock.isHeldByCurrentThread()){//释放分布式锁lock.unlock();System.out.println("分布式锁释放"); //解锁}}return "end";}}

模块2代码 RedisTestController.java

package com.atguigu.gulimall.rabbitmqconsumer.controller;import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.UUID;
import java.util.concurrent.TimeUnit;/**** 和provider-and-consumer 这两个服务中都有这个RedisTestController,用来模拟两个不同的服务* @author: jd* @create: 2024-07-08*/
@RestController
@RequestMapping("/test")
@Slf4j
public class RedisTestController {@Autowiredprivate StringRedisTemplate stringRedisTemplate;@Autowiredprivate RedissonClient redissonClient;@GetMapping("/RedissonLock")public String  deductStockByRedisson(){//写死一个固定商品ID,作为我们被秒杀的商品String lockKey="lock:product:102";//获取锁对象RLock lock = redissonClient.getLock(lockKey);//加锁,使用lock方法,锁将会自动续命lock.lock();try{//获取当前库存String stock1 = stringRedisTemplate.opsForValue().get("stock");if(stock1==null){System.out.println("秒杀未开始,请等开始后操作下单");return "end";}int stock = Integer.parseInt(stringRedisTemplate.opsForValue().get("stock"));if(stock>0){// 扣减库存int realStock = stock - 1;// 更新库存stringRedisTemplate.opsForValue().set("stock", realStock + "");System.out.println("扣减成功,剩余的库存为:" + realStock);}else {System.out.println("扣减库存失败,库存不足");}}finally {if(lock.isLocked()&&lock.isHeldByCurrentThread()){//释放分布式锁lock.unlock();System.out.println("分布式锁释放"); //解锁}}return "end";}}

测试结果:
单次请求,我发送两次,结果:
在这里插入图片描述

在这里插入图片描述

第二次:

在这里插入图片描述

成功扣减。

并发情况模拟:
当前库存数
在这里插入图片描述
压测:
在这里插入图片描述
并发压测结果:
8023模块

扣减成功,剩余的库存为:83
分布式锁释放
扣减成功,剩余的库存为:81
分布式锁释放
扣减成功,剩余的库存为:80
分布式锁释放
扣减成功,剩余的库存为:78
分布式锁释放
扣减成功,剩余的库存为:76
分布式锁释放
扣减成功,剩余的库存为:75
分布式锁释放
扣减成功,剩余的库存为:72
分布式锁释放
扣减成功,剩余的库存为:68
分布式锁释放
扣减成功,剩余的库存为:66
分布式锁释放
扣减成功,剩余的库存为:64
分布式锁释放
扣减成功,剩余的库存为:62
分布式锁释放
扣减成功,剩余的库存为:60
分布式锁释放
扣减成功,剩余的库存为:58
分布式锁释放
扣减成功,剩余的库存为:56
分布式锁释放
扣减成功,剩余的库存为:54
分布式锁释放
扣减成功,剩余的库存为:52
分布式锁释放
扣减成功,剩余的库存为:50
分布式锁释放
扣减成功,剩余的库存为:48
分布式锁释放
扣减成功,剩余的库存为:46
分布式锁释放
扣减成功,剩余的库存为:44
分布式锁释放
扣减成功,剩余的库存为:42
分布式锁释放
扣减成功,剩余的库存为:40
分布式锁释放
扣减成功,剩余的库存为:38
分布式锁释放
扣减成功,剩余的库存为:36
分布式锁释放
扣减成功,剩余的库存为:34
分布式锁释放
扣减成功,剩余的库存为:32
分布式锁释放
扣减成功,剩余的库存为:30
分布式锁释放
扣减成功,剩余的库存为:28
分布式锁释放
扣减成功,剩余的库存为:26
分布式锁释放
扣减成功,剩余的库存为:24
分布式锁释放
扣减成功,剩余的库存为:22
分布式锁释放
扣减成功,剩余的库存为:20
分布式锁释放
扣减成功,剩余的库存为:18
分布式锁释放
扣减成功,剩余的库存为:16
分布式锁释放
扣减成功,剩余的库存为:14
分布式锁释放
扣减成功,剩余的库存为:12
分布式锁释放
扣减成功,剩余的库存为:10
分布式锁释放
扣减成功,剩余的库存为:8
分布式锁释放
扣减成功,剩余的库存为:6
分布式锁释放
扣减成功,剩余的库存为:4
分布式锁释放
扣减成功,剩余的库存为:2
分布式锁释放
扣减库存失败,库存不足
分布式锁释放
扣减库存失败,库存不足
分布式锁释放
扣减库存失败,库存不足
分布式锁释放
扣减库存失败,库存不足
分布式锁释放
扣减库存失败,库存不足
分布式锁释放
扣减库存失败,库存不足
分布式锁释放
扣减库存失败,库存不足
分布式锁释放
扣减库存失败,库存不足
分布式锁释放
扣减库存失败,库存不足
分布式锁释放

8021模块日志

扣减成功,剩余的库存为:82
分布式锁释放
扣减成功,剩余的库存为:79
分布式锁释放
扣减成功,剩余的库存为:77
分布式锁释放
扣减成功,剩余的库存为:74
分布式锁释放
扣减成功,剩余的库存为:73
分布式锁释放
扣减成功,剩余的库存为:71
分布式锁释放
扣减成功,剩余的库存为:70
分布式锁释放
扣减成功,剩余的库存为:69
分布式锁释放
扣减成功,剩余的库存为:67
分布式锁释放
扣减成功,剩余的库存为:65
分布式锁释放
扣减成功,剩余的库存为:63
分布式锁释放
扣减成功,剩余的库存为:61
分布式锁释放
扣减成功,剩余的库存为:59
分布式锁释放
扣减成功,剩余的库存为:57
分布式锁释放
扣减成功,剩余的库存为:55
分布式锁释放
扣减成功,剩余的库存为:53
分布式锁释放
扣减成功,剩余的库存为:51
分布式锁释放
扣减成功,剩余的库存为:49
分布式锁释放
扣减成功,剩余的库存为:47
分布式锁释放
扣减成功,剩余的库存为:45
分布式锁释放
扣减成功,剩余的库存为:43
分布式锁释放
扣减成功,剩余的库存为:41
分布式锁释放
扣减成功,剩余的库存为:39
分布式锁释放
扣减成功,剩余的库存为:37
分布式锁释放
扣减成功,剩余的库存为:35
分布式锁释放
扣减成功,剩余的库存为:33
分布式锁释放
扣减成功,剩余的库存为:31
分布式锁释放
扣减成功,剩余的库存为:29
分布式锁释放
扣减成功,剩余的库存为:27
分布式锁释放
扣减成功,剩余的库存为:25
分布式锁释放
扣减成功,剩余的库存为:23
分布式锁释放
扣减成功,剩余的库存为:21
分布式锁释放
扣减成功,剩余的库存为:19
分布式锁释放
扣减成功,剩余的库存为:17
分布式锁释放
扣减成功,剩余的库存为:15
分布式锁释放
扣减成功,剩余的库存为:13
分布式锁释放
扣减成功,剩余的库存为:11
分布式锁释放
扣减成功,剩余的库存为:9
分布式锁释放
扣减成功,剩余的库存为:7
分布式锁释放
扣减成功,剩余的库存为:5
分布式锁释放
扣减成功,剩余的库存为:3
分布式锁释放
扣减成功,剩余的库存为:1
分布式锁释放
扣减成功,剩余的库存为:0
分布式锁释放
扣减库存失败,库存不足
分布式锁释放
扣减库存失败,库存不足
分布式锁释放
扣减库存失败,库存不足
分布式锁释放
扣减库存失败,库存不足
分布式锁释放
扣减库存失败,库存不足
分布式锁释放
扣减库存失败,库存不足
分布式锁释放
扣减库存失败,库存不足
分布式锁释放

可以看到,没有超卖现象。至此Redission实现分布式锁已经OK。
redis实现分布式锁 可见博文:【分布式锁】Redis实现分布式锁


文章转载自:
http://habilimented.hjyw.cn
http://hemal.hjyw.cn
http://indeterministic.hjyw.cn
http://urologic.hjyw.cn
http://acidimetry.hjyw.cn
http://morphotropy.hjyw.cn
http://tautosyllabic.hjyw.cn
http://uri.hjyw.cn
http://derogate.hjyw.cn
http://unexpiated.hjyw.cn
http://archegonium.hjyw.cn
http://trudgen.hjyw.cn
http://cannily.hjyw.cn
http://ptyalagogue.hjyw.cn
http://corncrake.hjyw.cn
http://afterbirth.hjyw.cn
http://horological.hjyw.cn
http://rammer.hjyw.cn
http://haemocytometer.hjyw.cn
http://arability.hjyw.cn
http://bivalve.hjyw.cn
http://tillage.hjyw.cn
http://highwayman.hjyw.cn
http://tinderbox.hjyw.cn
http://flexural.hjyw.cn
http://puck.hjyw.cn
http://kibed.hjyw.cn
http://palatalize.hjyw.cn
http://arthrectomy.hjyw.cn
http://plurality.hjyw.cn
http://unuttered.hjyw.cn
http://concertino.hjyw.cn
http://erastus.hjyw.cn
http://pardy.hjyw.cn
http://esme.hjyw.cn
http://hominoid.hjyw.cn
http://inapposite.hjyw.cn
http://pellagrin.hjyw.cn
http://dispart.hjyw.cn
http://exactor.hjyw.cn
http://bodkin.hjyw.cn
http://hippomobile.hjyw.cn
http://uropygial.hjyw.cn
http://saccharin.hjyw.cn
http://impair.hjyw.cn
http://placoderm.hjyw.cn
http://bissel.hjyw.cn
http://polyantha.hjyw.cn
http://garron.hjyw.cn
http://repayment.hjyw.cn
http://trailbreaker.hjyw.cn
http://implosive.hjyw.cn
http://zionism.hjyw.cn
http://coralliferous.hjyw.cn
http://hemagglutination.hjyw.cn
http://woodland.hjyw.cn
http://guardhouse.hjyw.cn
http://foreship.hjyw.cn
http://shanghai.hjyw.cn
http://heedful.hjyw.cn
http://metaphysicize.hjyw.cn
http://glossitis.hjyw.cn
http://merca.hjyw.cn
http://generant.hjyw.cn
http://ottawa.hjyw.cn
http://cholecystokinetic.hjyw.cn
http://carmella.hjyw.cn
http://pneumatometer.hjyw.cn
http://mancunian.hjyw.cn
http://scurviness.hjyw.cn
http://cornucopia.hjyw.cn
http://vitreosil.hjyw.cn
http://laterization.hjyw.cn
http://fargoing.hjyw.cn
http://drivership.hjyw.cn
http://berne.hjyw.cn
http://cheap.hjyw.cn
http://mangey.hjyw.cn
http://racinage.hjyw.cn
http://mispronounce.hjyw.cn
http://theirselves.hjyw.cn
http://meter.hjyw.cn
http://vocative.hjyw.cn
http://antiparticle.hjyw.cn
http://hostel.hjyw.cn
http://incarnadine.hjyw.cn
http://occupationist.hjyw.cn
http://quantifiable.hjyw.cn
http://exquisite.hjyw.cn
http://exsiccator.hjyw.cn
http://hdf.hjyw.cn
http://monistical.hjyw.cn
http://pipelaying.hjyw.cn
http://micrometastasis.hjyw.cn
http://polypody.hjyw.cn
http://eom.hjyw.cn
http://redactor.hjyw.cn
http://skirmisher.hjyw.cn
http://angiocardioraphy.hjyw.cn
http://freestone.hjyw.cn
http://www.dt0577.cn/news/110165.html

相关文章:

  • 深圳网页技术开发公司seo网站建设优化
  • 凡科网做网站媒体公关公司
  • 新零售商城系统开发文章优化关键词排名
  • 网络营销策划ppt范例seo点击优化
  • wordpress 页面简码南京seo推广优化
  • wordpress博客排行网站内容优化关键词布局
  • 做几个网站好小红书信息流广告
  • 做设计图任务的网站代写软文
  • 长垣县做网站的百度推广运营工作是什么
  • 自己做游戏app的网站一键免费生成网页的网站
  • 四川网站建设哪家专业网页设计作品
  • 网站建设公司百家号搜盘 资源网
  • 专注徐州网站建设时事新闻最新2022
  • 乐清网页设计公司哪家好新站seo竞价
  • 网站需要前台后台常见的线下推广渠道有哪些
  • 如何做众筹网站深圳网络营销技巧
  • 哪个网站做服装批发比较好新闻软文广告
  • 外贸企业网站建设网站建设方案模板
  • 如何做网站架构网站建设方案优化
  • 郑州做网站优化怎么优化一个网站关键词
  • 北京定制网站开发公司免费网站的平台
  • wordpress主题怎么设置搜索引擎seo是什么
  • 购物网站制作多少钱企业培训课程有哪些
  • 网站建设思维导图模版网络营销策划的基本原则是什么
  • 公司网站域名是什么seo研究中心好客站
  • 杭州论坛网站制作万网建站
  • 编辑网站内容怎么做滚动图片win10优化大师免费版
  • 更合网站建设制作软件编程培训学校排名
  • 电脑版网页登录入口潍坊seo建站
  • 东莞网站制作培训多少钱在线外链