- 博客(322)
- 资源 (2)
- 收藏
- 关注
原创 maven安装及配置(详细版)
1.下载:方式一可以从官方下载,下载页面:http://maven.apache.org/download.cgi方式二:或者题主提供的版本下载maven安装包提取码:ysns下载好后是一个压缩文件2.安装:maven压缩包解压到一个没有中文,空格或其他特殊字符的文件夹内即可使用。3.配置MAVEN_HOMEmaven 的使用是在jdk的基础上,所以电脑必须有jdk第一步:新增环境变量:MAVEN_HOME第二步:在path环境变量中添加:%MAVEN_HOME%\bin
2020-08-26 11:33:40
205296
50
原创 集成健康探测以及服务优雅下线接口
目前大部分应用都未提供健康探测以及服务优雅下线接口,这里针对spring boot服务提供简单的web 接口服务和集成说明。// 在新版本中以及移除该API,需要对上面的url路径做处理来避免将 /probe和/shutdown 做filter。这里只要在spring boot项目中添加controller类,即可支持健康探测及服务优雅下线功能。// 这里的TargetFilter为项目中的自定义Filter。一、集成了spring security的应用,可通过以下配置。
2025-12-22 21:44:28
560
原创 性能优化总结
项目中一般使用的是spring-boot-starter-data-redis,其中使用的是Lettuce客户端(一个高性能、可扩展的异步Redis客户端)其中spring.redis.lettuce的一些配置介绍。针对生产环境,需要进行参数调优,来达到性能的提升。
2025-12-22 21:43:14
293
原创 Apache Tomcat安装与启动
一、安装包下载Tomcat 官网下载地址:https://tomcat.apache.org/download-80.cgi二、安装绿色免安装版,解压即用(注意:不要有中文路径)IDEA配置tomcat
2025-12-22 21:42:26
140
原创 JVM性能调优案例-OOM案例
打开Histogram,可以看到,String类型的字符串占用了大概8M的空间,几乎把堆占满,但是还没有占满,所以这也符合Sun 官方对此的定义:超过98%的时间用来做GC并且回收了不到2%的堆内存时会抛出此异常,本质是一个预判性的异常,抛出该异常时系统没有真正的内存溢出。其中MaxProcessMemory表示最大寻址空间,在32位系统中,CPU的“寻址范围”就受到32个二进制位的限制,也就是说,假设它要访问内存,它的能力是,只能访问4G内存。本质是一个预判性的异常,抛出该异常时系统没有真正的内存溢出。
2025-12-21 17:53:18
733
原创 分析GC日志
输出GC发生时的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)类似:-verbose:gc。输出gc日志信息,默认输出到标准输出。每一次GC前和GC后,都打印堆信息。输出GC发生时的时间戳。
2025-12-20 12:37:50
257
原创 垃圾回收器
在HotSpot虚拟机中,使用 -XX:+UseSerialGC 参数可以指定年轻代和老年代都使用串行收集器。– 等价于 新生代用Serial GC,且老年代用Serial Old GC### 小结在程序中,开发人员可以通过选项"-XX:+UseParNewGC"手动指定使用ParNew收集器执行内存回收任务。它表示年轻代使用并行收集器,不影响老年代。-XX:ParallelGCThreads 限制线程数量,默认开启和CPU数据相同的线程数。
2025-12-19 22:29:11
566
转载 Nginx 配置实战:从摸鱼到部署,手把手教你搞定生产级配置
反向代理:藏好后端 IP,安心摸鱼不怕攻击负载均衡:流量均分,再也不用背锅服务器崩了静态资源:让 Nginx 处理图片 JS,后端专注写接口限流防刷:恶意请求全拦下,日志清净心情好HTTPS:小绿锁一挂,产品经理笑哈哈Nginx 配置不是一次性的!上线后要根据服务器压力、用户反馈动态调整,比如大促时加大限流阈值,发现恶意 IP 及时拉黑。代码可以慢慢写,Nginx 必须稳如狗;配置写对了,摸鱼才安心!
2025-09-06 09:07:39
194
转载 Spring Boot+EasyExcel 导出工具避坑指南
比如金额需要显示成 “¥1,000.00”,日期要显示成 “2025 年 5 月 29 日”。@ExcelProperty("金额")看着导出的规范格式,突然想起当年因为金额格式不对被财务打回 13 次的惨案,现在终于能扬眉吐气了。折腾了七年 Excel 导出,从 POI 的磕磕绊绊到 EasyExcel 的丝滑体验,不得不感叹开源工具的伟大。现在每次接到导出需求,我都能淡定地说:“放马过来吧,不管是复杂表头、大数据量还是格式要求,咱这工具都能搞定。
2025-09-06 09:01:40
232
转载 Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
Spring Boot配置优化全场景指南,涵盖Tomcat连接池、数据库连接池、Jackson时区处理、日志管理、缓存优化、监控端点、文件上传和异步线程池八大关键配置。针对高并发场景优化Tomcat参数,调整HikariCP连接池避免数据库瓶颈,统一时区解决分布式时间问题,配置日志滚动清理防止磁盘占满,用Caffeine替代默认缓存控制内存占用,保护敏感监控端点,放宽文件上传限制,以及优化异步任务线程池避免资源耗尽。每个配置均提供详细参数说明,帮助开发者快速提升应用性能与稳定性。
2025-09-05 10:24:56
189
原创 SpringBoot集成MyBatis的SQL拦截器实战
/ 作用在字段上// 运行时生效// 脱敏类型(手机号、身份证号等)// 脱敏类型枚举PHONE, // 手机号ID_CARD // 身份证号通过SQL拦截器,我们用极少的代码实现了SQL监控和数据脱敏,避免了修改大量业务代码。
2025-07-20 14:05:45
1241
原创 ORA-01861: literal does not match forma异常处理
摘要:文章分析了Oracle数据库执行SQL时出现的ORA-01861异常问题。该错误是由于to_date函数在处理c.eff_last_date字段时,实际数据格式与指定的'yyyy-mm-dd'格式不匹配导致的。作者提供了三种可能原因:数据格式不符、字段类型错误或数据质量问题。解决方案是通过SQL查询检查数据有效性,识别FORMAT_MISMATCH值并进行修正。文中还给出了具体的SQL验证语句,用于检测无效日期数据并显示验证结果。(150字)
2025-06-28 09:44:26
629
原创 oracle安装
https://developer.aliyun.com/article/1282217https://blog.csdn.net/m0_74522489/article/details/146243003https://blog.csdn.net/happy41252/article/details/140152297
2025-04-14 21:55:54
225
原创 SQLSyntaxErrorException: Expression #1 of ORDER BY clause is not in GROUP BY clause异常处理
如果结果中不包含 ONLY_FULL_GROUP_BY 就可以了。在查询下SELECT @@GLOBAL.sql_mode;如果结果中包含 ONLY_FULL_GROUP_BY。
2025-02-16 14:42:06
501
1
原创 CPU占用很高排查方案
Thread-1:等待锁定对象 0x00000000e4861e30,但被 Thread-0 持有。Thread-0:等待锁定对象 0x00000000e4861e40,但被 Thread-1 持有。把线程pid变为16进制如28532 - 》 6f74 然后得到0x6f74。(2)或者采用定时锁,一段时间后,如果还不能获取到锁就释放自身持有的所有锁。28532这个线程占比30%,比其他的都要高,怀疑此程序有问题。Thread-1 和 Thread-0 之间存在死锁。通过分析发现两个线程之间存在死锁。
2025-02-16 12:04:49
750
原创 Communications link failure异常分析解决
是一个常见的 MySQL 数据库连接异常,表示 JDBC 客户端与 MySQL 服务器之间的通信链路失败。异常,确保应用程序与 MySQL 数据库的稳定通信。通过以上方法,可以有效解决。
2025-02-15 19:44:42
1506
原创 将jar安装到Maven本地仓库中
● -DartifactId=ctq-hmac:指定该 JAR 文件的 Maven artifactId,这是 Maven 坐标的一部分,用于区分同一组织下的不同模块或组件。● -DgroupId=com.zdxlz.common:指定该 JAR 文件的 Maven groupId,这是 Maven 坐标的一部分,用于区分不同的组织或项目。● mvn install:install-file:调用 Maven 的 install-file 目标,用于将本地文件安装到本地 Maven 仓库。
2025-02-15 19:39:14
1127
原创 java项目启动脚本
这段代码是一个实用的脚本片段,用于动态设置JAVA_HOME环境变量,确保其指向一个有效的Java安装路径。它通过依次尝试多个可能的路径,避免了因JAVA_HOME设置错误而导致的问题。检查JAVA_HOME是否已设置。如果未设置,则根据操作系统类型(macOS或非macOS)尝试自动查找Java的安装路径。如果找到有效的路径,则设置JAVA_HOME。如果未找到有效的路径,则提示用户手动设置JAVA_HOME。最终设置JAVA变量为,以便后续使用。
2025-02-05 21:27:42
1348
原创 使用JdbcTemplate 结合预编译预计批量插入数据
它通过使用预编译语句(PreparedStatement)和 Spring 的 JdbcTemplate 来实现高效的数据插入操作。saveAll 方法通过合理利用预编译语句和 Spring 的 JdbcTemplate,高效且准确地实现了将一批 LoginLog 类型的数据批量插入到数据库表中的功能,同时还处理了时间戳相关的设置以及异常情况。这种批量插入的方式可以提高数据插入的效率,减少数据库服务器编译 SQL 语句的次数,从而提升整个应用程序与数据库交互的性能。
2024-11-30 22:17:18
1434
原创 nacos get changed dataId error, code: 403
由于nacosserver开启了权限验证,项目启动时出现异常。
2024-07-24 19:05:36
1681
原创 JVM监控及诊断工具-命令行篇--jcmd命令介绍
在JDK 1.7以后,新增了一个命令行工具jcmd。它是一个多功能的工具,可以用来实现前面除了jstat之外所有命令的功能。jcmd拥有jmap的大部分功能,并且在Oracle的官方网站上也推荐使用jcmd命令代jmap命令。
2024-07-20 21:00:44
691
原创 JVM监控及诊断工具-命令行篇-jstack命令介绍
这些都是导致线程长时间停顿的常见原因。当线程出现停顿时,就可以用jstack显示各个线程调用的堆栈情况。在thread dump中,要留意下面几种状态。
2024-07-20 20:44:53
859
原创 JVM监控及诊断工具-命令行篇-jmap命令介绍
举个例子,假设在编译生成的机器码中,某些对象的生命周期在两个安全点之间,那么:live选项将无法探知到这些对象。jmap(JVM Memory Map):作用一方面是获取dump文件(堆转储快照文件,二进制文件),它还可以获取目标Java进程的内存相关信息,包括Java堆各区域的使用情况、堆中对象的统计信息、类加载信息等。由于jmap将访问堆中的所有对象,为了保证在此过程中不被应用线程干扰,jmap需要借助安全点机制,让所有线程停留在不改变堆中数据的状态。生成Java堆转储快照:dump文件。
2024-07-20 09:59:36
1483
原创 redis server response timeout(3000ms) occurred after 3 retry attempts异常分析
查看redisson配置,调大参数PingConnectionInterval。
2024-07-18 21:41:17
1723
原创 JVM监控及诊断工具-命令行篇--jinfo命令介绍
在很多情况下,Java应用程序不会指定所有的Java虚拟机参数。而此时,开发人员可能不知道某一个具体的Java虚拟机参数的默认值。在这种情况下,可能需要通过查找文档获取某个参数的默认值。但有了jinfo工具,开发人员可以很方便地找到Java虚拟机参数的当前值。jinfo不仅可以查看运行时某一个Java虚拟机参数的实际取值,甚至可以在运行时修改部分参数,并使之立即生效。但是,并非所有参数都支持动态修改。可以查看由System.getProperties()取得的参数。其实,这个修改能力是极其有限的。
2024-07-15 20:22:35
1325
原创 com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure异常处理
【代码】com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure异常处理。
2024-07-02 20:42:01
1614
原创 rocketmq实现多数据源配置
我们可以基于ExtRocketMQTemplateConfiguration 扩展出其他的rocketmq 数据源,相当于注入多个rocketTemplate, 只是nameServer 和 beanName 不同。只需要在发送消息的类中通过@Resource注入进来,并通过name属性来指定即可使用。下面我有具体的使用案例。在实际项目中我们可能会遇到在springboot项目中使用多个mq数据源,那我们该如何配置呢?注解,并配置nameServer即可。yml配置中添加非标mq的配置参数。
2024-07-02 20:23:41
1254
原创 Docker以挂载方式安装RocketMQ
在 Docker 中安装和使用 RocketMQ 有多种方式,其中一种方式就是通过挂载本地文件的方式安装 RocketMQ。挂载的方式可以避免重启Docker镜像后,原配置丢失的问题。现在,可以使用浏览器访问 http://[your_server_ip]:9999/来访问控制台。第一次安装RocketMQ时难免踩坑,但是请保持平和心态对待,不要担心,自己遇到的问题,别人一定遇到过,肯定有解决方案。如果你还没有安装 Docker,请先安装。创建一个新的容器并指定 RocketMQ 的镜像。
2024-06-04 22:03:22
1223
原创 SpringBoot整合RocketMQ使用详解
/发送普通同步消息-Object//发送普通同步消息-Message> message)//发送批量普通同步消息//发送普通同步消息-Object,并设置发送超时时间//发送普通同步消息-Message,并设置发送超时时间//发送批量普通同步消息,并设置发送超时时间//发送普通同步延迟消息,并设置超时/*** 批量消息*/@Testlog.info("批量消息");//发送普通异步消息-Object//发送普通异步消息-Message。
2024-05-06 20:41:50
2975
2
转载 SpringCloudFeign引入feign-httpclient导致的坑
引入新技术栈时,一定要阅读相关文档了解组件的配置化参数信息(默认值往往在遇到高并发场景无法满足),特别是对于基于springboot构建的应用,往往由于自动化的配置,导致忽略了重要参数的指定。
2024-04-16 20:45:48
521
原创 spring cloud sleuth入门使用
详细介绍Spring Cloud 系列之 Sleuth 链路追踪(一)Spring Cloud Sleuth 为 Spring Cloud 实现了分布式跟踪解决方案。兼容 Zipkin,HTrace 和其他基于日志的追踪系统,例如 ELK(Elasticsearch 、Logstash、 Kibana)。链路追踪:通过 Sleuth 可以很清楚的看出一个请求都经过了那些服务,可以很方便的理清服务间的调用关系等。性能分析。
2024-03-10 13:36:53
2458
1
原创 jar手动上传到Nexus私服
在maven项目中我们可以通过相关配置可以将项目打包成jar,然后deploy上传到私服中。要是别人提供的第三方jar,我们该如何上传到nexus私服中呢?
2024-01-25 19:13:25
2437
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅