IDEA启动两个Tomcat服务的方式 使用nginx进行反向代理 JMeter测试分布式情况下synchronized锁失效

目录

  • 引出
  • IDEA启动Tomcat两个端口的方式
    • 1.编辑配置
    • 2.添加新的端口-Dserver.port=8083
    • 3.service里面管理
    • 4.启动后进行测试
  • 使用nginx进行反向代理
    • 反向代理多个端口
    • 运行日志查看
    • 启动关闭重启
  • 分布式情况下synchronized失效
    • synchronized锁代码
    • 启动tomcat两个端口
    • nginx反向代理
    • JMeter高并发测试
      • 1.端口,路径,参数设置
      • 2请求头设置
      • 3.进行抢购的测试
  • 总结

引出


1.在idea中启动tomcat两个服务-Dserver.port=8083;
2.nginx进行反向代理多个url的配置;
3.synchronize锁代码,启动tomcat两个端口+nginx反向代理,用JMeter高并发测试,验证分布式情况下,synchronize锁失效情况;

在这里插入图片描述

IDEA启动Tomcat两个端口的方式

1.编辑配置

编辑配置

在这里插入图片描述

复制之前的服务app

在这里插入图片描述

2.添加新的端口-Dserver.port=8083

修改名字,点击修改选项

在这里插入图片描述

添加虚拟选项vm options

在这里插入图片描述

输入-Dserver.port=8083

设置新的服务的端口号

在这里插入图片描述

3.service里面管理

在service里面管理多个端口

在这里插入图片描述

service里面管理

在这里插入图片描述

4.启动后进行测试

启动后进行测试

在这里插入图片描述

使用nginx进行反向代理

start nginx --启动
nginx -s stop --停止
nginx -s reload --重启

反向代理多个端口

在这里插入图片描述

	upstream pet{server 127.0.0.1:10009;server 127.0.0.1:10002;}

server里面设置

		location / {proxy_pass http://pet;}

cmd命令启动nginx

在这里插入图片描述

运行日志查看

查看运行的日志文件

在这里插入图片描述

根据日志修改配置文件

在这里插入图片描述

再次启动,运行成功

在这里插入图片描述

启动关闭重启

在这里插入图片描述

分布式情况下synchronized失效

synchronized锁代码

    @Overridepublic synchronized HttpResp<?> killStart(Integer bookId) { // 方案1:加锁KillBook killBook =  (KillBook)redisTemplate.opsForHash().get("killBook",bookId +"");if (killBook !=null && killBook.getKillNum() > 0){killBook.setKillNum(killBook.getKillNum()-1);log.debug("当前库存-->>>"+killBook.getKillNum());redisTemplate.opsForHash().put("killBook", bookId+"", killBook);return HttpResp.ok();}else {return HttpResp.fail();}}

启动tomcat两个端口

在这里插入图片描述

nginx反向代理

在这里插入图片描述

反向代理链接

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

JMeter高并发测试

1.端口,路径,参数设置

在这里插入图片描述

路径设置

在这里插入图片描述

2请求头设置

在这里插入图片描述

添加请求头jwt

在这里插入图片描述

3.进行抢购的测试

在这里插入图片描述

!出现锁失效的情况

在这里插入图片描述


总结

1.在idea中启动tomcat两个服务-Dserver.port=8083;
2.nginx进行反向代理多个url的配置;
3.synchronize锁代码,启动tomcat两个端口+nginx反向代理,用JMeter高并发测试,验证分布式情况下,synchronize锁失效情况;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/108887.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VR智慧校园资中控管理平台综合提升了课堂教学质量

随着越来越多高校在课堂中引进VR虚拟仿真实训系统&#xff0c;为了方便老师对全班同学进行高效率地管理&#xff0c;VR中控平台应运而生。下面为您详细介绍VR中控平台在课堂教学中的应用优势。 VR中控系统安装在教师总控端&#xff0c;融合了课件、视频、3D动画等丰富的教学资源…

python+mysql+前后端分离国内职位数据分析(源码+文档+指导)

系统阐述的是使用国内python职位数据分析系统的设计与实现&#xff0c;对于Python、B/S结构、MySql进行了较为深入的学习与应用。主要针对系统的设计&#xff0c;描述&#xff0c;实现和分析与测试方面来表明开发的过程。开发中使用了 Flask框架和MySql数据库技术搭建系统的整体…

二、数学建模之整数规划篇

1.定义 2.例题 3.使用软件及解题 一、定义 1.整数规划&#xff08;Integer Programming&#xff0c;简称IP&#xff09;&#xff1a;是一种数学优化问题&#xff0c;它是线性规划&#xff08;Linear Programming&#xff0c;简称LP&#xff09;的一个扩展形式。在线性规划中&…

ZeroMQ入门

官网: ZeroMQ 简介 ZeroMQ是一个库&#xff0c;不是消息队列也不是消息中间件&#xff0c;介于应用层和传输层之间&#xff08;按照TCP/IP划分&#xff09;。 传统的Socket通信模式需要创建连接&#xff0c;销毁连接&#xff0c;选择协议等一些列操作。而ZeroMQ是在Socket封…

【Java集合学习1】ArrayList集合学习及集合概述分析

JavaArrayList集合学习及集合学习概述 一、Java集合概述 Java 集合&#xff0c; 也叫作容器&#xff0c;主要是由两大接口派生而来&#xff1a;一个是 Collection接口&#xff0c;主要用于存放单一元素&#xff1b;另一个是 Map 接口&#xff0c;主要用于存放键值对。对于Col…

电商平台京东平台获得京东商品描述API接口演示案例

京东商品描述API接口可以获取京东商品描述&#xff1a; 详细介绍商品的特点和功能,让消费者能够了解商品的具体用途和效果。 使用简洁明了的语言,避免使用过于专业的术语和长句子,让消费者能够轻松理解。 重点突出商品的卖点和优势,让消费者能够更加清晰地了解商品的价值 …

AIGC时代开启!拓世数字人短视频点燃企业数字化转型热潮!

短视频在近年迎来了高速发展期&#xff0c;与初期满足人们的娱乐需求和社交需求相比&#xff0c;短视频平台如今已经成长为一个巨量信息汇聚、流转、辐散的综合性场所。特别是随着移动互联网的普及&#xff0c;碎片化信息传播需求的迅猛增长&#xff0c;各行各业的内容创作者都…

原生小案例:如何使用HTML5 Canvas构建画板应用程序

使用HTML5 Canvas构建绘图应用是在Web浏览器中创建交互式和动态绘图体验的绝佳方式。HTML5 Canvas元素提供了一个绘图表面&#xff0c;允许您操作像素并以编程方式创建各种形状和图形。本文将为您提供使用HTML5 Canvas创建绘图应用的概述和指导。此外&#xff0c;它还将通过解释…

2、结构型设计模式

结构型设计模式 目录 结构型设计模式1. 代理模式1.1 概述1.2 结构1.3 静态代理1&#xff09;抽象主题类 SellTickets2&#xff09;真实主题类 TrainStation3&#xff09;代理类 ProxyPoint4&#xff09;客户端类 1.4 JDK 动态代理1&#xff09;代理工厂类&#xff1a;ProxyFact…

C++类成员的访问权限以及类的封装

C通过 public、protected、private 三个关键字来控制成员变量和成员函数的访问权限&#xff0c;它们分别表示公有的、受保护的、私有的&#xff0c;被称为成员访问限定符。所谓访问权限&#xff0c;就是你能不能使用该类中的成员。 Java、C# 程序员注意&#xff0c;C 中的 publ…

ESP32应用教程(0)— PMW3901MB光流传感器

文章目录 前言 1 传感器介绍 1.1 关键特征 1.2 关键参数 2 硬件概述 2.1 信号引脚 2.2 参考电路图 3 寄存器 3.1 寄存器列表 3.2 性能优化寄存器 4 代码说明 4.1 结构体说明 4.2 编译说明 5 波形分析 前言 本文介绍了在 ESP32 DEVKIT V1 开发板上开发 PMW3901MB…

JVM知识点(一)

1、JVM基础概念 &#xff08;1&#xff09;JVM、JRE、JDK JRE&#xff1a;JVM基本类库组成的运行环境就是JRE。JVM自己是无法完成一次编译&#xff0c;处处运行的&#xff0c;需要有一个基本类库告诉JVM如何操作运行&#xff0c;如如何操作文件&#xff0c;连接网络等&#x…

[管理与领导-55]:IT基层管理者 - 扩展技能 - 1 - 时间管理 -2- 自律与自身作则,管理者管好自己时间的五步法

前言&#xff1a; 管理好自己的时间&#xff0c;不仅仅是理念&#xff0c;也是方法和流程。 步骤1&#xff1a;理清各种待办事项 当提到工作事项时&#xff0c;这通常指的是要完成或处理的工作任务或事务。这些事项可以包括以下内容&#xff1a; 任务分配&#xff1a;根据工作…

maven工程的目录结构

https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html maven工程的目录结构&#xff1a; 在maven工程的根目录下面&#xff0c;是pom.xml文件。此外&#xff0c;还有README.txt、LICENSE.txt等文本文件&#xff0c;便于用户能够…

疲劳检测-闭眼检测(详细代码教程)

简介 瞌睡经常发生在汽车行驶的过程中&#xff0c;该行为害人害己&#xff0c;如果有一套能识别瞌睡的系统&#xff0c;那么无疑该系统意义重大&#xff01; 实现步骤 思路&#xff1a;疲劳驾驶的司机大部分都有打瞌睡的情形&#xff0c;所以我们根据驾驶员眼睛闭合的频率和…

PMP P-10 Purchase Management

竟然不让上传图片了。。为啥&#xff1f;&#xff1f;&#xff1f;【上传过于频繁】行吧

设计模式之九:迭代器与组合模式

有许多方法可以把对象堆起来成为一个集合&#xff08;Collection&#xff09;&#xff0c;比如放入数组、堆栈或散列表中。若用户直接从这些数据结构中取出对象&#xff0c;则需要知道具体是存在什么数据结构中&#xff08;如栈就用peek&#xff0c;数组[]&#xff09;。迭代器…

mongodb聚合排序的一个巨坑

现象&#xff1a; mongodb cpu动不动要100%&#xff0c;如下图 分析原因&#xff1a; 查看慢日志发现&#xff0c;很多条这样的查询&#xff0c;一直未执行行完成&#xff0c;占用大量的CPU [{$match: {"tags.taskId": "64dae0a9deb52d2f9a1bd71e",grnty: …

CentOS 7 Nacos 设置开机自动重启

一、说明 Nacos如果是手动启动的话&#xff0c;在服务器宕机或者重启后&#xff0c;没有自动运行&#xff0c;影响很多业务系统&#xff0c;需要每次手动执行命令 startup.sh -m standalone&#xff0c;才能启动 Nacos 服务&#xff0c;不能像docker服务一样&#xff0c;使用 …

校招算法题实在不会做,有没有关系?

文章目录 前言一、校招二、时间复杂度1、单层循环2、双层循环 三、空间复杂度四、数据结构五、校招算法题实在不会做&#xff0c;有没有关系&#xff1f;六、英雄算法集训 前言 英雄算法联盟八月集训 已经接近尾声&#xff0c;九月算法集训将于 09月01日 正式开始&#xff0c;目…