- 博客(307)
- 资源 (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
203326
50
原创 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
200
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
621
原创 Communications link failure异常分析解决
是一个常见的 MySQL 数据库连接异常,表示 JDBC 客户端与 MySQL 服务器之间的通信链路失败。异常,确保应用程序与 MySQL 数据库的稳定通信。通过以上方法,可以有效解决。
2025-02-15 19:44:42
830
原创 将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
651
原创 java项目启动脚本
这段代码是一个实用的脚本片段,用于动态设置JAVA_HOME环境变量,确保其指向一个有效的Java安装路径。它通过依次尝试多个可能的路径,避免了因JAVA_HOME设置错误而导致的问题。检查JAVA_HOME是否已设置。如果未设置,则根据操作系统类型(macOS或非macOS)尝试自动查找Java的安装路径。如果找到有效的路径,则设置JAVA_HOME。如果未找到有效的路径,则提示用户手动设置JAVA_HOME。最终设置JAVA变量为,以便后续使用。
2025-02-05 21:27:42
866
原创 使用JdbcTemplate 结合预编译预计批量插入数据
它通过使用预编译语句(PreparedStatement)和 Spring 的 JdbcTemplate 来实现高效的数据插入操作。saveAll 方法通过合理利用预编译语句和 Spring 的 JdbcTemplate,高效且准确地实现了将一批 LoginLog 类型的数据批量插入到数据库表中的功能,同时还处理了时间戳相关的设置以及异常情况。这种批量插入的方式可以提高数据插入的效率,减少数据库服务器编译 SQL 语句的次数,从而提升整个应用程序与数据库交互的性能。
2024-11-30 22:17:18
1135
原创 nacos get changed dataId error, code: 403
由于nacosserver开启了权限验证,项目启动时出现异常。
2024-07-24 19:05:36
1297
原创 JVM监控及诊断工具-命令行篇--jcmd命令介绍
在JDK 1.7以后,新增了一个命令行工具jcmd。它是一个多功能的工具,可以用来实现前面除了jstat之外所有命令的功能。jcmd拥有jmap的大部分功能,并且在Oracle的官方网站上也推荐使用jcmd命令代jmap命令。
2024-07-20 21:00:44
454
原创 JVM监控及诊断工具-命令行篇-jstack命令介绍
这些都是导致线程长时间停顿的常见原因。当线程出现停顿时,就可以用jstack显示各个线程调用的堆栈情况。在thread dump中,要留意下面几种状态。
2024-07-20 20:44:53
670
原创 JVM监控及诊断工具-命令行篇-jmap命令介绍
举个例子,假设在编译生成的机器码中,某些对象的生命周期在两个安全点之间,那么:live选项将无法探知到这些对象。jmap(JVM Memory Map):作用一方面是获取dump文件(堆转储快照文件,二进制文件),它还可以获取目标Java进程的内存相关信息,包括Java堆各区域的使用情况、堆中对象的统计信息、类加载信息等。由于jmap将访问堆中的所有对象,为了保证在此过程中不被应用线程干扰,jmap需要借助安全点机制,让所有线程停留在不改变堆中数据的状态。生成Java堆转储快照:dump文件。
2024-07-20 09:59:36
1198
原创 redis server response timeout(3000ms) occurred after 3 retry attempts异常分析
查看redisson配置,调大参数PingConnectionInterval。
2024-07-18 21:41:17
1012
原创 JVM监控及诊断工具-命令行篇--jinfo命令介绍
在很多情况下,Java应用程序不会指定所有的Java虚拟机参数。而此时,开发人员可能不知道某一个具体的Java虚拟机参数的默认值。在这种情况下,可能需要通过查找文档获取某个参数的默认值。但有了jinfo工具,开发人员可以很方便地找到Java虚拟机参数的当前值。jinfo不仅可以查看运行时某一个Java虚拟机参数的实际取值,甚至可以在运行时修改部分参数,并使之立即生效。但是,并非所有参数都支持动态修改。可以查看由System.getProperties()取得的参数。其实,这个修改能力是极其有限的。
2024-07-15 20:22:35
1075
原创 com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure异常处理
【代码】com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure异常处理。
2024-07-02 20:42:01
1312
原创 rocketmq实现多数据源配置
我们可以基于ExtRocketMQTemplateConfiguration 扩展出其他的rocketmq 数据源,相当于注入多个rocketTemplate, 只是nameServer 和 beanName 不同。只需要在发送消息的类中通过@Resource注入进来,并通过name属性来指定即可使用。下面我有具体的使用案例。在实际项目中我们可能会遇到在springboot项目中使用多个mq数据源,那我们该如何配置呢?注解,并配置nameServer即可。yml配置中添加非标mq的配置参数。
2024-07-02 20:23:41
844
原创 Docker以挂载方式安装RocketMQ
在 Docker 中安装和使用 RocketMQ 有多种方式,其中一种方式就是通过挂载本地文件的方式安装 RocketMQ。挂载的方式可以避免重启Docker镜像后,原配置丢失的问题。现在,可以使用浏览器访问 http://[your_server_ip]:9999/来访问控制台。第一次安装RocketMQ时难免踩坑,但是请保持平和心态对待,不要担心,自己遇到的问题,别人一定遇到过,肯定有解决方案。如果你还没有安装 Docker,请先安装。创建一个新的容器并指定 RocketMQ 的镜像。
2024-06-04 22:03:22
964
原创 SpringBoot整合RocketMQ使用详解
/发送普通同步消息-Object//发送普通同步消息-Message> message)//发送批量普通同步消息//发送普通同步消息-Object,并设置发送超时时间//发送普通同步消息-Message,并设置发送超时时间//发送批量普通同步消息,并设置发送超时时间//发送普通同步延迟消息,并设置超时/*** 批量消息*/@Testlog.info("批量消息");//发送普通异步消息-Object//发送普通异步消息-Message。
2024-05-06 20:41:50
2596
2
转载 SpringCloudFeign引入feign-httpclient导致的坑
引入新技术栈时,一定要阅读相关文档了解组件的配置化参数信息(默认值往往在遇到高并发场景无法满足),特别是对于基于springboot构建的应用,往往由于自动化的配置,导致忽略了重要参数的指定。
2024-04-16 20:45:48
353
原创 spring cloud sleuth入门使用
详细介绍Spring Cloud 系列之 Sleuth 链路追踪(一)Spring Cloud Sleuth 为 Spring Cloud 实现了分布式跟踪解决方案。兼容 Zipkin,HTrace 和其他基于日志的追踪系统,例如 ELK(Elasticsearch 、Logstash、 Kibana)。链路追踪:通过 Sleuth 可以很清楚的看出一个请求都经过了那些服务,可以很方便的理清服务间的调用关系等。性能分析。
2024-03-10 13:36:53
2002
1
原创 jar手动上传到Nexus私服
在maven项目中我们可以通过相关配置可以将项目打包成jar,然后deploy上传到私服中。要是别人提供的第三方jar,我们该如何上传到nexus私服中呢?
2024-01-25 19:13:25
1952
原创 ideal一键部署SpringBoot项目jar包到服务器
我们在开发环境部署项目一般通过ideal将项目打包成jar包,然后连接linux服务器,将jar手动上传到服务中,重启服务。每次总是循环这一系列的操作,这都是一些固定的流水线操作,对于流水线型的操作最适合交给程序去做,我们只需要把那些个必要变量(路径/端口)抽离出来变成外部配置文件,这样我们就完全可以实现自定义流水线操作。
2023-11-07 17:02:28
2667
原创 使用arthas出现UnsupportedOperationException: class redefinition failed: attempted to change the scheam
我一问开发组长,果然在测试环境上开启了Skyworking,于是关闭Skyworking,再次使用trace追踪controller方法,不再出现异常。由于才接收项目,我也不知道到它是被什么修改了,一脸茫然。于是网上找出现这个异常信息,通过arthas的jad命令反编译代码发现,确实被修改了。经过一顿操作,发现别人也出现过和我一样的问题,是因为。
2023-10-26 15:19:35
2821
转载 arthas使用介绍
一、Attach 黏附一个进程1.1 准备代码1.2 启动Demo1.3 启动arthas1.4 通过浏览器连接arthas二、常用命令2.1 dashboard仪表盘2.2 cls 清屏2.3 thread 线程2.4 jad 反编译类2.5 watch 监视2.6 退出arthas三、基础命令3.1 help3.2 cat3.3 grep3.4 pwd3.6 reset3.8 quit3.9 stop四、JVM相关命令详解Arthas教程 - 命令篇 (二)Arthas使用教程(8大分类)
2023-10-23 20:13:36
630
原创 ideal远程Debug部署在服务器上的服务详解
在开发的时候我们通常在本地代码上debug程序,但是服务部署到了开发环境服务器上,我们也想调试远程服务,那么怎么样才能调试远程服务像调试本地代码一样方便呢?ideal支持远程调试代码,只需要简单的配置即可。
2023-10-13 16:52:58
1267
原创 调用feign接口时手动设置请求头信息
我们在provider服务有些参数是从请求头中获取的,但是consumer服务在调用feign接口时,本身接口请求头中并没有provider需要的的参数;此时想手动的将一些参数设置到feign接口!如果我们在@RequestHeader指定了请求头参数名称,那么取的时候也需要使用对应的名称。该方式是在方法执行前,先获取需要的参数,后将取出来的值作为参数传递到待执行的方法中。
2023-09-20 15:14:53
3586
原创 使用HandlerInterceptor 中注入其他service时为null分析及解决
在拦截器配置中将拦截器提前暴露,交给spring容器管理。2、拦截器添加@Component,交给容器管理。
2023-09-15 18:00:04
1112
1
原创 The dependencies of some of the beans in the application context form a cycle异常分析及解决
改成。
2023-09-15 17:58:06
4676
原创 使用feign时提供者从request中获取不到参数值解决方法
由于在consumer中子链路调用feign接口,request不支持继承。在调用feign接口时原有的request已经不会跟随到新的请求中,所以provider中request是空的,获取不到参数值。在开发中,A项目需要在后端调用B项目的feign接口。我们知道feign接口是不支持HttpServletRequest作为参数的,所以feign接口如下。request中的值手动设置到feign请求的http调用上。
2023-09-08 17:34:04
1045
原创 Feign在实际项目中使用详解
我们在平时学习中简单知道调用feign接口或者做服务降级;但是在企业级项目中使用feign时会面临以下几个问题: 1. Feign客户端应该如何提供? 2. Feign调用的接口要不要进行包装? 3. Feign如何抓取业务生产端的业务异常?
2023-08-27 21:04:11
551
原创 Dubbo学习
Dubbo【 Dubbo概念(什么是分布式系统、什么是RPC、核心组件、Zookeeper注册中心 )】(一)-全面详解(学习总结—从入门到深化)Dubbo【 Dubbo入门案例(服务消费者配置、服务消费者代码编写、IDEA开启Dashboard 、序列化协议安全、地址缓存)】(二)-全面详解(学习总结—从入门到深化)Dubbo【Dubbo高级特性(重试机制、多版本 、负载均衡 、集群容错 、服务降级、服务限流原理 、结果缓存) 】(三)-全面详解(学习总结—从入门到深化)
2023-07-23 15:39:32
229
原创 ThreadLocal学习路径
1、ThreadLocal 超强图解,这次终于懂了~(深入介绍)2、保姆级教学,22张图揭开ThreadLocal(总结性介绍)3、多图深入分析ThreadLocal原理(源码方式介绍)4、线程本地存储 ThreadLocal(一般接介绍)
2023-07-22 14:54:52
164
转载 Java异常处理和最佳实践(含案例分析)
最近在代码CR的时候发现一些值得注意的问题,特别是在对Java异常处理的时候,比如有的同学对每个方法都进行 try-catch,在进行 IO 操作时忘记在 finally 块中关闭连接资源等等问题。回想自己对 java 的异常处理也不是特别清楚,看了一些异常处理的规范,并没有进行系统的学习,所以为了对 Java 异常处理机制有更深入的了解,我查阅了一些资料将自己的学习内容记录下来,希望对有同样困惑的同学提供一些帮助。
2023-07-22 14:13:01
657
转载 @Retryable(spring的重试机制)
在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败。调用远程服务失败。争抢锁失败。这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优雅的实现重处理功能。
2023-07-17 09:57:40
1014
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人