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

news2025/2/22 12:47:48

目录

  • 引出
  • 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锁代码

    @Override
    public 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.coloradmin.cn/o/922897.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

慕课网 Go工程师 第三周 package和gomodules章节

Go包的引入&#xff1a; 包名前面加匿名&#xff0c;只引入但不使用&#xff0c;如果对应包有init函数&#xff0c;会执行init函数&#xff08;初始化操作&#xff09; 包名前面加. 把这个包的结构体和方法导入当前包&#xff0c;慎用&#xff0c;你不知道当前包和被引入的包用…

顺序表详解|顺序表常见错误并调试分析

前言&#xff1a; 今天我们开始学习基础的数据结构——顺序表&#xff0c;数据结构就是将数据在内存存储起来&#xff0c;在内存管理数据。 一、线性表 1、线性表&#xff08;Linear list&#xff09;是n个具有相同特性的数据元素的有限序列&#xff0c;线性表是一种在实际中广…

美国访问学者签证好办吗?

近年来&#xff0c;随着国际交流与合作的不断深入&#xff0c;许多人对于美国访问学者签证的办理情况产生了浓厚的兴趣。那么&#xff0c;美国访问学者签证到底好办吗&#xff1f;让知识人网小编带您一起了解一下。 首先&#xff0c;美国作为世界上的科研、教育和创新中心之一&…

springBoot的启动

自动配置注解的逻辑: 在启动类的基础上,导入了springboot的大量自动配置类,以至于自己不用关心配置实现过程(约定大于配置) 大量自动配置类是如何导入的? Spring提供了一个SpringFactories功能(SPI: service provider interface ),读取固定文件META-INF/spring.factories,按照…

keepalived双机热备,keepalived+lvs(DR)

本节主要学习了keepalivedlvs的作用和配置方法主要配置调度器和web节点&#xff0c;还有keepalived的双击热备&#xff0c;主要内容有概述&#xff0c;安装&#xff0c;功能模块&#xff0c;配置双击热备&#xff0c;验证方法&#xff0c;双击热备的脑裂现象和VIP无法通信。 目…

❤ windows 安装后台java开发环境JDK 、MySQL 、Redis

❤ windows 安装后台java开发环境 1、windows 安装 JDK. 下载地址&#xff1a; http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 1、下载安装 官网点击下载安装 网盘 jdk安装包 链接&#xff1a;https://pan.baidu.com/s/1sdxA6B…

Axure设计之日期选择器(年月选择)

在系统中&#xff0c;日期选择器经常会用到&#xff0c;包括日历日期的选择、日期时间的选择和日期范围的选择&#xff0c;一般是下拉列表的形式进行选择。Axure没有自带的日期选择器&#xff0c;下面教大家如何在Axure中制作真实日期选择&#xff08;年月选择&#xff09;效果…

首席执行官Adam Selipsky解读“亚马逊云科技的技术产品差异化”

迄今为止&#xff0c;亚马逊云科技已经参与了21世纪几乎所有的大型计算变革&#xff0c;亚马逊云科技是一个很传奇的故事&#xff0c;它始于大约20年前的一项实验&#xff0c;当时亚马逊试图出售其过剩的服务器。人们确实对此表示怀疑。为什么在线书店试图销售云服务&#xff1…

js逆向实战之某书protobuf反序列化

什么是Protobuf&#xff1f; \qquad Protobuf&#xff08;Protocol Buffer&#xff09;是 Google 开发的一套数据存储传输协议&#xff0c;作用就是将数据进行序列化后再传输&#xff0c;Protobuf 编码是二进制的&#xff0c;它不是可读的&#xff0c;也不容易手动修改&#xf…

抓包工具Charles的安装及代理设置(Windows浏览器代理、安卓代理)

1、下载Charles 官网地址&#xff1a;https://www.charlesproxy.com/download/&#xff0c;下载对应的安装包。安装完成后按照以下步骤进行代理配置。 2、配置Charles证书 按照以下截图步骤进行配置即可。 3、Charles代理设置 这里的端口号根据自己情况设置&#xff0c;这里…

17.4 【Linux】systemctl 针对 timer 的配置文件

有时候&#xff0c;某些服务你想要定期执行&#xff0c;或者是开机后执行&#xff0c;或者是什么服务启动多久后执行等等的。在过去&#xff0c;我们大概都是使用 crond 这个服务来定期处理&#xff0c; 不过&#xff0c;既然现在有一直常驻在内存当中的 systemd 这个好用的东西…

visio三维格式、三维旋转导出图模糊解决方案

问题描述 visio中元素经过三维格式或三维旋转&#xff08;也可能包括其他的特殊操作&#xff09;后&#xff0c;导出.emf格式的图会模糊&#xff0c;如下图所示。 解决方案 借助其他软件 在ppt中将对应的元素旋转后再导入visio&#xff0c;此时对于visio来说该元素相当于一…

RunnerGo:一款高效且易用的性能测试工具

在软件开发过程中&#xff0c;性能测试是确保应用程序能够高效运行的关键步骤。为了提供高质量的测试服务&#xff0c;许多企业正在寻求功能强大且易用的性能测试工具。RunnerGo是一个基于Go语言开发的性能测试平台&#xff0c;具有简单易用、高效稳定等特性&#xff0c;适用于…

Dubbo重启服务提供者或先启动服务消费者后启动服务提供者,消费者有时候会出现找不到服务的问题及解决

文章目录 [toc] 1.环境2.版本3.pom依赖3.1父工程的pom3.2子模块的pom 4.问题5.根本原因5.1根本原因说明5.2总入口5.3servletWeb容器初始化5.4 nacos服务注册监听点5.5 dubbo启动服务注册监听点 6.解决办法6.1降低springBoot版本为2.2.x6.2 修改源码6.2.1修改源码方式一6.2.2修改…

【RPC框架】RPC与Dubbo(让你一文搞懂,超级详细好理解!)

目录 什么是RPC框架&#xff0c;Dubbo又是什么&#xff0c;二者之间有什么联系 是不是说的有些抽象&#xff0c;那我们来说的通俗易懂点吧&#xff0c;这次你一定能听懂 简单举例 实际例子 真实场景demo&#xff08;说了这么多&#xff0c;实际体会一下代码吧&…

(6)(6.3) 自动任务中的相机控制

文章目录 前言 6.3.1 概述 6.3.2 自动任务类型 6.3.3 创建合成图像 前言 本文介绍 ArduPilot 的相机和云台命令&#xff0c;并说明如何在 Mission Planner 中使用这些命令来定义相机勘测任务。这些说明假定已经连接并配置了相机触发器和云台(camera trigger and gimbal ha…

iis服务web页面 localhost可以访问 ip不能访问

1、修改C:\Windows\System32\drivers\etc\下面hosts文件&#xff1b;需要重启电脑查看效果&#xff1b; 2、通过internet选项-》安全-》站点-》添加对应http://127.0.0.1和对应电能IP&#xff1b;

Android SDK 上手指南||第六章 用户交互

第六章 用户交互 在这篇教程中&#xff0c;我们将对之前所添加的Button元素进行设置以实现对用户点击的检测与响应。为了达成这一目标&#xff0c;我们需要在应用程序的主 Activity类中略微涉及Java编程内容。如果大家在Java开发方面的经验不太丰富也没必要担心&#xff0c;只…

Module not found: Error: Can‘t resolve ‘vue-pdf‘ in ‘xxx‘

使用命令npm run serve时vue项目报错&#xff1a; Module not found: Error: Cant resolve vue-pdf in xxx 解决方案&#xff1a; 运行命令&#xff1a; npm install vue-pdf --save --legacy-peer-deps 即可解决。 再次顺利执行npm run serve

032 - 位值类型-BIT

数据BIT类型用于存储位值。一种类型 允许存储-位值。 范围从 1 到 64。 BIT(M)MM 为了指定位值&#xff0c; 可以使用符号。是使用零和一编写的二进制值。例如&#xff0c; 和 分别代表7和128。请参见 第 9.1.5 节“位值文字”。 bvaluevalueb111b10000000 如果将值分配给 长…