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

智能提醒助理系列-jdk8升级到21,springboot2.3升级到3.3【性能篇】

         本系列文章记录“智能提醒助理”产品建设历程,记录实践经验、巩固知识点、锻炼总结能力。

本篇介绍技术栈升级后的切换方案以及性能提升。

一、需求出发点

智能提醒小程序 当前使用的是jdk8,springboot2.3,升级到jdk21和springboot3.3 学习新知识的同时,感受带来的性能提升。

二、切换方案

1、灰度切换

     为避免测试不充分,采用新老版本并行,先给一个观察期是最为稳妥的。

    方案很简单,通过Nginx 配置集群模式,通过权重指定切量比例,代码如下:


# weight参数是主要配置负载均衡策略使用的, 称为负载均衡的 “权重”策略
 
upstream apps{
    ip_hash;
    server 192.168.1.100:8080 weight=1; #新服务
    server 192.168.1.101:8080 weight=9; #老服务
}

每日观察 运行日志和报错情况,及时修复,逐日增加新服务的权重。

并行2周 运行无异常后,下掉 老服务。

三、性能提升

1、内存占用、启动速度

同样使用默认的垃圾回收启动后:

老服务内存占用: 428.2m,启动耗时:15.723 seconds
新服务内存占用: 301.9m,启动耗时:10.747 seconds

先参考以上3篇完成后,基本就能跑起来了。

跑起来 遇到的第一个问题就shiro 与springboot3.3.4 不兼容的问题。

调整了多次无果,最后决定把shiro框架卸载掉,重写了shiro部分,过程比预计的难度要低。

四、总结

并行过程中 发现了 分页问题,并及时处理解决,并行是很有意义的。

内存占用的降低,启动速度的提升,达到了降本增效的目的。


http://www.kler.cn/a/382457.html

相关文章:

  • ctfshow(162)--文件上传漏洞--远程文件包含
  • 《Rust语言圣经》Rust教程笔记17:2.Rust基础入门(2.6模式匹配)2.6.2解构Rust Option<T>
  • 【毫米波雷达(八)】车载毫米波前雷达遮挡检测功能
  • 光伏无人机踏勘,照亮光伏未来!
  • 数字后端零基础入门系列 | Innovus零基础LAB学习Day9
  • iptables 规则备份和恢复
  • WandB概念、主要功能、详细说明和总结
  • 鸿蒙ArkTS中的布局容器组件(Scroll、List、Tabs)
  • react中得类组件和函数组件有啥区别,怎么理解这两个函数
  • 源文件到可执行文件流程
  • Vue.js组件开发:构建高效、可复用的前端应用
  • 【MATLAB源码-第200期】基于matlab的鸡群优化算法(CSO)机器人栅格路径规划,输出做短路径图和适应度曲线。
  • 蓝桥杯-网络安全比赛题目-遗漏的压缩包
  • 15分钟学 Go 第 30 天:测试基础
  • 11-单字符串多字段查询:Dis Max Query
  • Docker 安装使用操作指南
  • 宠物空气净化器测评!希喂/米家/有哈宠物空气净化器谁性价比高
  • 综合项目--博客
  • 【AIGC】如何充分利用ChatGPT:有效提示框架与基本规则
  • 成绩排序c++
  • D60【python 接口自动化学习】- python基础之数据库
  • 数据结构acwing和洛谷p8085作业
  • 专业 UI 设计公司:为您开启交互设计新征程
  • Linux案例:DNS服务器配置
  • java、excel表格合并、指定单元格查找、合并文件夹
  • HTML字符实体详解