一、在IDEA工具中使用Maven打包报错 错误:不支持发行版本 21
在IDEA工具中对一个基于 spring-boot-starter-parent 3.4.10 版本的JAVA项目进行打包时遇到报错,错误:不支持发行版本 21。我在百度中搜索问题发现找到我以前写的这篇文章,但彼时的问题并不和今天的一样,链接如下:
https://linge.blog.csdn.net/weixin_47792780/article/details/143354448
https://linge.blog.csdn.net/weixin_47792780/article/details/143354448 今天的问题更是诡异,因为在出现此报错的同时我看各种设置项都没有异常,基本情况如下:
- 我在本地能正常运行起来项目,并不会报错:不支持发行版本 21。
- 我检查项目结构、pom.xml配置、JAVA编译器等全部的地方设置版本都是21,没有问题。
- 在我进行各种检查都正常无误仍无解后,我将上面所有地方的版本切换为 17版本,进行运行、打包却都正常。
通过第3项可以发现我第2项中设置中并没有遗漏任何要修改的地方,否则 17 版本不可能能正常运行,但为什么切为21版本却不行?也未报哪个模块不支持这个版本,即并不是和上次那样因为某个模块不支持21版本导致,想来想去,看来看去,怀疑会不会是版本上的差异?
我使用17版本时使用的是 Amazon Corretto 17.0.13,但使用21 版本时用的是 Openjdk-21 java version 21.0.2。难道是 open jdk和 amazon 版本之间的差异,于是我下载了 Amazon Corretto 的21版本,如下图中的 21.0.8 即为新下载的版本,下载完成后把所有版本都切换为这个 amazon 21版,竟然运行成功了。

解决问题之后,我没有再进行验证,是 openjdk 和 amazon 版本之间的差异导致?还是JAVA 21.0.2和 21.0.8 的版本差异导致?但通过此现象可以给你一个提示就是当各种问题出现的可能原因都排除后可以更换一下同一个版本的不同发行商来尝试解决。
二、程序测试时的相关辅助命令保存
之前进行一些功能测试时使用的一些命令,放在这里保存一下。
1. 压力测试 :
root@med-1:~# ab -n 1000 -c 100 -p post1.txt -T application/json http://13.123.17.26:8001/api/v1/cmdpc/exec/wait
root@med-1:~# ab -n 100 -c 10 -p post1.txt -T application/json http://13.123.17.26:8002/api/v1/up/pc/abnormal
root@med-1:~# ab -n 100 -c 10 http://13.123.17.26:8001/docs/swagger-ui-bundle.js
ab -n 10000 -c 100 -p post1.txt -T application/json http://13.123.17.26:8001/api/v1/cmdpc/exec/wait
ab -n 1000 -c 10 -p post1.txt -T application/json http://13.123.17.26:8001/api/v1/cmdpc/exec/wait
root@med-1:~# ab -n 1000 -c 10 http://13.123.17.26:8001/api/v1/cmdpc/exec/test-no-db
#无数据库操作达到:1500 之后:Requests per second: 3563.70 [#/sec] (mean)
root@med-1:~# ab -n 1000 -c 10 http://13.123.17.26:8001/api/v1/cmdpc/exec/test-has-db
#数据库读达到1300 之后: Requests per second: 2443.36 [#/sec] (mean)
root@med-1:~# ab -n 1000 -c 10 http://13.123.17.26:8001/api/v1/cmdpc/exec/test-db-write
#数据库读+写:Requests per second: 24.88 [#/sec] (mean)
#从30左右 增长到 80左右。 Requests per second: 75.46 [#/sec] (mean)
2. 登录接口的压力测试
#压测登录接口:
ab -n 10000 -c 1000 -p post.txt -T application/json http://10.18.20.24/api_admin/v1/auth/login/access-token
#压测用户详情接口:
ab -n 10000 -c 1000 -p post-user.txt -T application/json -H 'x-token: MTYyMjExMTU5MS4zMTY0ODMzfDUxNWIzZjU2NzlhMjViY2Q2ZDQyZWMxNGE3OWY1NTg2NmRmOTNkYzg=' http://10.18.20.24/api_admin/v1/users/detail
1:查询token
2021-05-25 03:01:00,930 |INFO| sqlhelper.py 166 [sql]:SELECT id,username,password,token,name,avatar,role_id,grp_id,state_id,phone,email,status,del_flag FROM m01_user WHERE token = %s limit 1 [param]:['MTYyMjExMTU5MS4zMTY0ODMzfDUxNWIzZjU2NzlhMjViY2Q2ZDQyZWMxNGE3OWY1NTg2NmRmOTNkYzg=']
2:查询目标用户
2021-05-25 03:01:00,931 |INFO| sqlhelper.py 166 [sql]:SELECT id,username,password,token,name,avatar,role_id,grp_id,state_id,phone,email,status,del_flag FROM m01_user WHERE id = %s [param]:1
3:查询用户组织机构
2021-05-25 03:01:00,931 |INFO| sqlhelper.py 166 [sql]:SELECT * FROM c01_group WHERE id = %s [param]:3
4:查询用户状态
2021-05-25 03:01:00,931 |INFO| sqlhelper.py 166 [sql]:SELECT * FROM c02_user_state WHERE id = %s [param]:2
5:查询用户角色
2021-05-25 03:01:00,932 |INFO| sqlhelper.py 166 [sql]:SELECT * FROM c05_role WHERE id = %s [param]:9
6:记录操作记录
#持续压测
*/1 * * * * ab -n 30000 -c 2000 -p /root/yccs/test/post-user.txt -T application/json -H 'x-token: MTYyMjExMTU5MS4zMTY0ODMzfDUxNWIzZjU2NzlhMjViY2Q2ZDQyZWMxNGE3OWY1NTg2NmRmOTNkYzg=' http:
//10.18.230.204/api_admin/v1/users/detail >> /root/yccs/test/ab.log 2>&1
#压测后台用户详情接口:
ab -n 10000 -c 1000 -p post-user.txt -T application/json -H 'x-token: MTYyMzIwMTY5MC4wNzAyNzN8YzNiZDM4MWNmZWZjZmM3MzQ3Mzg1OGUwZTcxODJiOTRhZTk3MmQ1Ng==' http://13.123.17.26:9012/api_admin/v1/users/detail
INSERT INTO d07_user_record SET uid = 5 ,PATH = '/api/v1/messages/latest-contacts' ,module = 'test' ,ACTION = 'AA' ,ip = '219.147.31.2' ,detail = '219.147.31.2'
#线上MYSQL压测测试===================
set @st = REPLACE(unix_timestamp(current_timestamp(3)),'.','');
INSERT INTO user_record SET uid = 5 ,PATH = '/api/v1/messages/latest-contacts' ,module = 'test' ,ACTION = 'AA' ,ip = '219.147.31.2' ,detail = '219.147.31.2';
set @en = REPLACE(unix_timestamp(current_timestamp(3)),'.','');
select round((@en - @st)/3000,3) as avg_time;
3. 快捷命令
#linux服务器快捷命令:
#重启python容器:
docker exec -it server_8002 /bin/bash -c 'kill -HUP `cat /tmp/gunicorn.pid`'
docker exec -it server_8001 /bin/bash -c 'kill -HUP `cat /tmp/gunicorn.pid`'
#执行MQTT请求:
curl -i --basic -u admin:public -X GET "http://192.168.10.18:8081/api/v4/topic-metrics
curl -i --basic -u admin:public -X GET "http://192.168.10.18:8081/api/v4/clients"
curl -i --basic -u admin:public -X GET "http://192.168.10.18:8081/api/v4/subscriptions"
#重启nginx容器:
docker exec -it 容器 /bin/bash service nginx reload
#云服务器上查看已经启动的服务:
systemctl| grep -E "redis|mysql|minio|emq"
#查看线上数据库行数:
SELECT table_name,table_rows,DATA_LENGTH/1024/1024 "DATA_LENGTH",CREATE_TIME,TABLE_COLLATION FROM information_schema.tables WHERE TABLE_SCHEMA = 'ipms' ORDER BY table_rows DESC;
4.服务器端日志分析:
提取日志:docker logs 5422768341e0 | grep ^2021-08-16 | grep "/api/v1/" > 0816.log
统计响应请求:awk '{print $14}' 0816.log | sort -n | uniq -c

被折叠的 条评论
为什么被折叠?



