自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 Java关于AbstractProcessor的使用

Java, AbstractProcessor

2023-09-20 20:26:41 420 1

原创 多中间件优雅停机问题处理

Spring的优雅停机,java的shutdownHook,redis报错Pool not open解决方案

2023-03-08 19:38:25 925

原创 程序员的三门课,学习成长笔记

书籍学习

2023-02-22 21:23:09 458

原创 TransactionTemplate自动注入,只看这一篇文章就够了

理解SpringBoot事务自动装配,包括TransactionTemplate编程式事务的自动装配,有助于自己来做数据源管理的开发

2023-01-15 10:20:03 2177

原创 Packet for query is too large,You can change this value on the server by setting the max_allowed...

MySQL packet query异常

2022-07-29 20:22:03 1587

原创 ElasticSearch学习(语法学习 + Java整合)

ElasticSearch学习

2022-07-29 20:08:18 827

原创 The last packet sent successfully to the server was 0 milliseconds ago.问题分析

mysql问题

2022-06-30 18:59:12 19873

原创 自己搭的centOS7虚拟机,ping baidu出现Temporary failure in name resolution

自己搭建虚拟机配置桥接网络

2022-06-28 16:18:46 852

原创 dubbo:No provider available for the service

dubbo No provider available for the service com.facade

2022-06-20 18:42:48 331

原创 记一次微服务直接操作其他业务组表的沉痛教训

简单说一下背景,因为之前赶项目进度,其他业务组的微服务模块不能够在指定时间节点提供对应的接口,导致我们这边可能会出现延期,为了避免延期,选择了在自己应用去直接操作对方数据库的表,只能说当时的项目进度太着急了,不得不这样去做,虽然项目进度是顺利上线了,但是缺留下了一个巨大的隐患。其他业务组对应的表结构改造升级,改造升级的过程当中因为我们不是通过接口对接,所以其实是无感知的,可能有些同学会问,会有通知呀,但是我想说假如那些天你很忙的时候,你确实会不记得这回事。所以导致他们表结构改造上线以后,我们组的业务.

2022-05-27 15:01:52 84

原创 Request header too large

项目中突然出现Request header too large,经排查发现对应的openFeign接口使用的get请求,而参数又是个list数组,超出了请求头的默认长度,请求头默认是8KB,在源码有体现org.springframework.boot.autoconfigure.web.ServerProperties#maxHttpHeaderSize解决方案对应的应用的配置文件加上如下配置,增加请求头长度,这里我是加到了1000Kbserver.max-http-header-size=1.

2022-05-26 19:05:55 398

原创 Update join 修正数据

今天遇到个问题,原来用脚本编写的数据同步,有个字段映射错了,那就需要修正这部分数据。修正有两种方式。第一种修改脚本,然后重新刷数据,因为我们脚本原来就开发的时候就考虑了重复执行的问题,所以会把所有搬迁的数据id记录下来,方便重新执行,把历史脏数据刷新掉第二种使用update join语句,直接通过SQL修正数据举个例子假设现在有两张表,用户信息表的公司名称现在取错了,我们要把数据刷成正确的第一张表 用户信息表 i_useruserid用户Idcompany_id.

2022-04-18 16:23:47 323

原创 RocketMQ No routeInfo info of this topic

这个报错是因为启动RocketMQ的时候没有设置允许自动创建topic,启动broker的时候加个配置即可例如windows启动start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true

2022-04-14 16:36:55 749

原创 还不会控制本地事务提交后才执行某些代码?教你一招解决

还不会控制本地事务提交后才执行某些代码?教你一招解决

2022-01-06 17:55:16 830

原创 EasyExcel使用动态头,头部相同值单元格自动合并问题

使用EasyExcel生产excel时,如果使用动态头当头部单元格的值相同时会产生单元格自动合并的问题,有可能我们是不需要去做自动合并的,但是EasyExcel官网又没有提供如何防止自动头合并的解决措施。那就只有从代码当中去找了。测试代码如下public class Test { @org.junit.Test public void dynamicHeadWrite() { String fileName ="dynamicHeadWrite" + System..

2021-12-28 16:42:45 3269 3

原创 for update语句使用不当,行锁变表锁

通常我们为了防止并发读写导致的数据不一致或者数据覆盖问题会采取锁的方式 解决。今天介绍一把数据库级别的锁,使用for update语句产生的数据库锁,以及可能导致的表锁问题。(测试版本处于mysql 5.x版本)先来看一个这样的问题。就拿超卖举个例子.现在用户A与用户B。大家都要同时对一个订单做扣减,假如A查完库存以后,cpu调度到了用户B执行的线程上,这个时候再查出来也是100,然后各自做了各自的扣减之后,数据库还是99.就发生了超卖的问题。针对这个问题其实有很多解决方案,可以上分布式锁也可以上数.

2021-12-19 12:16:59 1516

原创 XXXTransfer注入异常,No qualifying bean of type vailable

项目有使用mapstruct依赖做对象类型转换时,如果碰到项目启动不起来报错,提示找不到对应的xxxTransfer的注入bean。可以对xxxTransfer的类文件结构进行改动,比如在内部打个回车打个空格之类的,再试一下应该就可以了因为重新修改的XXXTransfer文件会被打包编译生成新的XXXTransferImpl...

2021-10-21 17:30:53 287

原创 RocketMQ声明topic以及consumergroup根据不同环境隔离

其实很简单, 直接上代码@RocketMQMessageListener(topic = "${spring.profiles.active}_yourtopic", consumerGroup = "${spring.profiles.active}_yourgroup")public class YourConsumer{ ....}这样就可以自动找到你在项目中激活的配置文件,这样你声明的topic以及consumergroup就会自动加上对应环境前缀做隔离...

2021-07-05 16:54:17 2505 4

原创 Dubbo自定义异常全局统一处理

前言:在业务的开发过程当中,我们往往会有各种各样的业务性异常,比如创建订单操作。假如创建订单操作分成两步,第一步是先创建订单消息,第二步是扣除用户余额。假如在扣除用户余额的过程中,发现该用户的余额不足,那么我们可能需要给用户反馈一个余额不足的提醒。那么就有两种方式。第一种,返回一个自己包装的响应对象,return出去(这种如果操作涉及多个事务修改操作,那么之前的事务是可以正常提交的,会有问题,需要视情况而定)。第二种,直接throw一个自定义的业务异常,然后全局异常统一处理成响应对象再retur.

2021-05-11 16:45:02 2509 4

原创 Gradle build出现3: argument list must be exactly 1 literal non empty string

报错显示:报错原因:buld.gradle中用到了${XXX}idea配置的gradle版本使用的4.8,并且是使用的自己本地的gradle环境,而非idea自带的gradle。解决方式:升级gradle版本至 6.3及其以上即可

2021-04-19 23:20:28 1525

原创 Java的ArrayList源码剖析

ArrayList深度剖析前言一、ArrayList数据结构二、ArrayList的常用APIaddremovesetget前言系统性的细节性的去学习一个知识可能绝大多数同学的初衷都是为了应付面试。因为平时这些集合类都是封装好的API,我们只管调用就可以了。最差的情况可能就是会因为一些错误性的使用而出现IndexOutOfBoundsException或者IllegalArgumentException等异常问题。那么我们如何去学会深度理解跟使用一个集合?在我的理解看来,主要掌握以下两点1.了解这

2021-04-14 19:12:53 116

原创 从0到1认识Redis分布式锁

今天来说说Redis分布式锁。在说Redis分布式锁之前你首先得明白什么是分布式。在我看来服务部署就两种形式,一种是单体应用,一种是分布式架构。那么什么叫单体应用呢? 举个简单的例子,比如你的网段ip是 192.168.xxx.xxx,你只有一个服务,就部署在这一台ip上,那么我认为这种就是单体应用。那么什么又叫分布式架构? 你可以这样理解,比如你的应用最开始上市平平无奇,没有什么访问量,那么单体应用看起来并不会什么问题,完全够用嘛。假如说某一天,你的app火了,成千上万甚至几十万的用户访问到你的.

2020-12-03 19:00:08 117

原创 JVM的那些你想了解的垃圾回收器

JVM调优其实很大程度上跟使用的垃圾回收器也是息息相关的。熟悉并且掌握常见的垃圾回收器会让你的调优之路变得更加的轻松与惬意。这一章会跟大家着重的来讲讲过去以及现在用的比较流行的垃圾回收器。听完这章,你可能对JVM调优的思路会更加的清晰。在聊垃圾收集器之前,先来聊一笔垃圾收集的算法,你可以这么来理解,如果说垃圾收集算法是回收垃圾的理论,那么垃圾收集器就是这些理论的具体实现。垃圾收集理论...

2020-11-24 20:14:46 116

原创 深入理解JVM的对象创建过程

关于对象创建,有很多种方法。比如可以通过反射,或者通过 new关键字来创建。不管是何种方式,最终都是会创建一个对象。而我们平常工作中最常用的就是通过new关键字来创建对象。对于我们而言,只要new一下,就会有一个新的对象供我们使用。但是对于程序,对于虚拟机而言,new一下,它是如何去创建对象的呢?对于JVM来说,当他碰到new对象的指令时会做如下几个步骤对象的创建过程1.判断类是否已经被加载2.分配内存问题1 如何分配内存?指针碰撞空闲列表问题2 并发情况下如何去处理内存分配?CAS(compare.

2020-11-19 15:10:19 170

原创 深入理解JVM体系结构

JVM可以说是Java程序员的必备之课,那么JVM内存模型就更加是必备中的必备了。网上有很多文章都是讲JVM的,也都说的可以。但是我感觉没有真正意义上的把JVM内存模型的各个结构给串起来。零散化的去理解JVM内存模型相对来说是很容易忘记,且混乱的。我希望通过一张图,通过一段代码,来带大家一起走进JVM的内存世界。看看我们写的代码是如何在JVM当中进行的。...

2020-11-18 10:05:18 83

原创 Redis持久化详解,结合图解(面试,工作都用得到)

Redis持久化方式有三种。分别是RDB快照、AOF持久化以及Redis 4.0推出的混合持久化方式。今天就带大家一起来了解一下这三种持久化方式。一、RDB快照二、AOF三、 Redis 4.0 混合持久化

2020-11-05 22:42:55 167 2

原创 Redis常用命令

Redis有五种数据结构,分别是String,Hash,List,Set,有序Set。针对五种数据结构给大家罗列出一些常用的客户端命令一、String常用命令使用说明SET KEY value存入字符串键值对GET KEY value取出字符串键值对MSET KEY1 value KEY2 value批量存入字符串键值对MGET KEY1 KEY2批量取出字符串键值对DEL KEY删除某个字符串键EXPIRE key second设置一个带

2020-11-03 23:47:09 82

原创 Error starting ApplicationContext. To display the conditions report re-run your application with ‘de

启动springboot项目报了类似这样的错,然后详细的日志就没有其他内容了。看了网上一堆给出的方案,比如说requestMapping写了重复的url,比如说端口冲突等等,但是都没有找到自己想要的答案。这种错误需要如何处理如何分析?其实还是需要根据具体日志具体分析。可能导致的错误千奇百怪,这里说一下我遇到的原因跟解决方案启动报错日志报错信息很明显了,在启动时查找${spring.rabbitmq.address}内容找不到。这种问题需要分几步来进行检查1.检查spring.rabbitmq.

2020-11-03 15:29:51 1559

原创 深入理解事务、数据库锁以及事务隔离级别(小白必看!结合实际案例)

上一篇文件讲完了慢sql优化,这一篇文章我们今天来聊一聊事务。在关系型数据库当中,事务,可以是一条sql语句,或者是一组sql语句,亦或者整个程序。目前业界用的最广泛的关系型数据库就是MySQL了。在一些有必要的地方,我会针对MYISAM跟InnoDB两种存储引擎做一个对比来讲。

2020-11-02 11:35:05 342 1

原创 工作这么久了,还不懂慢SQL优化吗?

前言:当希望mysql能够以更高的性能运行查询时,最好的办法就是弄清楚mysql是如何优化和执行查询的。一旦理解这点,很多查询优化工作实际上就是遵循一些原则让优化器能够按照预想的合理的方式运行 (ps:我这里主要分析以innoDB作为数据库表的执行引擎的情况下的各种可以做的优化措施)慢sql的危害1.增加方法调用链执行耗时,影响调用链性能,影响用户体验2.占据数据库连接,数据库连接池占满还有可能导致其他涉及sql操作的功能全部等待。无法正常使用一、一条sql在mysql当中执行的旅途这里引用一张《

2020-10-21 18:17:17 1205

原创 根据源码深度剖析JVM的双亲委派机制

前言: JVM根据源码深度解析类加载器,以及类加载器的原理一、什么叫双亲委派机制?讲完类加载器以及类加载器的原因。这个时候我们已经对java的类加载器有了一定的了解,那么我们再来说说java加载类的双亲委派机制。什么叫双亲委派机制呢? 其实就是加载某个类时会先委托父加载器寻找目标类,找不到再 委托上层父加载器加载,如果所有父加载器在自己的加载类路径下都找不到目标类,则在自己的 类加载路径中查找并载入目标类。举个简单的例子,就是儿子想找自己的寒假作业在哪里,于是他先问父亲那里有没有找到他的寒假作业,父亲

2020-09-26 16:20:07 115

原创 JVM根据源码深度解析类加载器,以及类加载器的原理(通俗易懂,不懂你捶我)

要了解类的双亲委派机制,我们得先了解一下JVM提供得三种类加载器。以及先了解一下JVM的类加载的过程一、JVM类加载过程JVM的加载大家可以看一下下面这张图1.加载将我们写的java文件通过编译生成的class对象加载到内存当中2.验证验证生成的class文件是否符合JVM字节码文件的规范3.准备这一步给类当中的静态变量划分内存,并赋初始值4.解析将类的二进制数据中的符号引用替换成直接引用。说明一下:符号引用:符号引用是以一组符号来描述所引用的目标,符号可以是任何的字面形式的字面量,只

2020-09-24 13:38:35 320

原创 springboot 1.x版本 SpringCache整合redis进行缓存控制

springboot 1.x版本 SpringCache整合redis进行缓存控制之前在项目中用到了springcacahe整合redis,所以现在写篇文章记录一下过程,也希望能够给需要的小伙伴一点帮助。此篇文章主要讲解springcache整合redis的过程与步骤,关于springcache与redis这里不做介绍哈。整合过程很简单,主要分以下四步一、导入依赖除了导入springboo...

2019-10-24 18:53:01 1089 4

原创 RabbitMQ队列没有生成或者队列生成但是与交换机没有绑定成功解决办法

队列没有生成或者队列生成但是与交换机没有绑定成功解决办法之前在开发的时候遇到了这个问题,一直没有找到解决方案,后面也是在前辈的指导下知道了这类问题的处理方式,总结下来希望能给大家一点帮助。1.首先新建两个交换机(x-test,x-textdead)2.然后新建三条队列(testone,testtwo,testthree)程序正常启动,队列跟交换机也正常建立,并且绑定关系正常。3.然后在到...

2019-08-07 11:04:01 7012

原创 从SVN检出maven项目,目录结构不对,你有想过是这个原因吗?

svn检出maven项目,结果出错之前做项目,需要从svn检出maven项目到本地,检出以后发现maven结构目录不对劲,跟刚导出的普通项目目录结构差不多,上网百度了一下解决方法大概分以下几点:1.检出maven项目后,右击删除(不要删除本地文件)然后在import ---------existing maven project 即可解决目录结构不对的问题2.检出maven项目后,右击项目...

2019-05-14 19:45:11 1519

原创 主服务调用微服务出现:Load balancer does not have available server for client:xxxx问题

主服务调用微服务出现:Load balancer does not have available server for client:xxxx问题,原因:配置文件中注册consul的路径写错注册到了别的consul上去了,改为本地启动运行测试成功...

2019-04-10 10:24:14 14734

原创 overriding managed version警告

overriding managed version警告使用maven创建springboot工程时,出现的overriding managed version警告的解决办法这是由于版本冲突导致的问题,这时候引用注解<dependencyManagement></dependencyManagement>首先我们要了解的是在pom.xml当中jar版本判断有两种方式...

2019-03-12 17:31:55 6324

转载 Jsp生命周期

用户把工程部署到tomcat中,然后启动tomcat!此时就可以访问jsp了、1 第一次访问JSP,会验证一下是否第一次访问,然后把JSP转化成java(Servlet),再编译成class文件。2 生成的class文件中会自动生成几个方法:jspInit()、jspDestroy()、jspService().Tomcat仅仅在第一次请求时,调用jspInit方法,然后调用jspServic...

2019-03-08 18:33:55 130

转载 Eclipse导入项目以后项目报错的方法

参考自大神的博客:https://blog.csdn.net/Axela30W/article/details/76255226Eclipse项目导入工程以后,项目出现大面积报错报错原因不外乎三点:第一点:java运行环境不一致第二点:Tomcat运行环境不一致最后一点:jdk版本的问题...

2019-02-19 09:38:58 217

原创 spring框架中mvc:default-servlet-handler的作用

参考:https://www.cnblogs.com/dflmg/p/6393416.html项目名称:销售管理系统 spring框架web.xml 配置映射的拦截路径: 控制器的映射路径: 发出请求的静态页面: 配置文件设置: 开始测试: 启动Tomcat,打开页面,报错404找不到路径原因:web.xml配置的映射拦截路径如下 `<serv...

2018-09-06 09:03:35 1387

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除