目录
- 引出
- 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锁失效情况;




![[JavaWeb]【十四】web后端开发-MAVEN高级](https://img-blog.csdnimg.cn/c8bfcacc49d94446bfb6ddd1e6a7ace7.png)












![java八股文面试[java基础]——面向对象特点](https://img-blog.csdnimg.cn/55addecea7254d669383c6ee3d160ff3.png)

