- 博客(28)
- 收藏
- 关注
原创 The last packet successfully received from the server was 10,011 milliseconds ago. The last packet s
是由于慢sql引起的超时,经排查发现是有个千万数据的表没有加索引,最后加上索引即可(顺便把一下不必要的数据清除)last_update_time没有加索引。
2024-01-02 10:55:51 1535
原创 Java基础知识----关于基本类型的默认值
在设计接口的入参时,做好不要使用基本类型,建议使用包装类。因为当遇到枚举类型时,具有局限性(一般枚举值定义都已0 开始),所以有可能引起误传。Java中还有一些基本类型的默认值为0 如:byte、long、short、int,他们的默认值都为0。
2023-11-22 10:51:56 147
原创 Error querying database. Cause: java.sql.SQLException: sql injection violation, dbType mysql, druid
现象:测试和本地都没有报错,正式环境报了这个错误。这种形式的注释,–注释 或 /由于代码加了 --注释。mybatis只支持。
2023-11-14 16:54:14 780
原创 docker磁盘清理-mkdir /var/lib/docker/overlay2/irvm9qvhkl12k06fueq56phd2: no space left on device 报错解决
查看/var/lib/docker文件下的磁盘使用情况。也有可能是日志文件满了的问题,请自行搜索清理。需要把这个文件下的不适用的数据卷删除。
2023-11-07 14:03:37 125
原创 记录------线上问题的排查和解决,docker内存扩容
问题描述:2023年0920 ,客户反馈系统无法生成排班数据(排班就是远程的调度服务定时调用系统的接口生成一批数据),反馈到我领导处,本来不属于我去排查的,由于另一位同事在忙其他事情,无法从中抽身出来。由此看来,结合我的使用体验来说,登入进入系统的时候也非常的卡,查询某个页面经常超时,更加断定是内存的问题,最后给对应的docker容器进行扩容。查看发现这个应用服务的内存只有2.4G(2468M)然后使用率到达了95%,CPU使用率1.5%,由此可见是内存的问题导致应用kill了。问题一:现在是有什么问题?
2023-09-20 15:08:01 68
原创 Java学习--LocalDateTime时间和UTC世界标准时间的转换
2.UTC是世界的标准时间,0区的时间,我们中国北京时间在东八区,所有两者之前相差八小时。主要是通过这三个方法就可以实现时间的转换,可根据实际情况修改,提供思路和方法。1.LocalDateTime是Java8的新特性之一,属于当前时区的时间。时间格式的转换 yyyyMMdd’T’HHmmss’Z’在Java中转换的方式有。
2023-09-08 19:12:29 4113
原创 nginx如何配置https证书
注意如果出现directive is not allowed 指令失效,有可能是配置重复了。注意读取配置文件的顺序,那里使用了includ引入其他配置。使用default.conf需要注意读取文件的顺序问题。在nginx.conf配置文件中加入两个配置,即可。有问题的同学可以留言,看到我会及时帮忙看的。还有注意证书文件存放的目录。
2023-08-21 20:25:19 71
原创 at springfox.documentation.schema.Example.equals(Example.java:131)报错解决
swagger报空指针
2023-07-08 10:43:26 806
原创 JVM 面试题+答案
Parallel Scavenge收集器(吞吐量优先收集器):工作新生代,JKD8的默认收集器,因为需求为高吞吐量使用该收集器,采用复制算法。MinorGC:发生在新生代的垃圾回收,因为新生代的特点,MinorGC非常频繁,且回收速度比较快,每次回收的量也很大。Paralel old 收集器:工作在老年代,是Parallel Scavenge收集器的老版本,采用标记-整理法。根据对象的存活的时间的长短,将内存分为了新生代和老年代,这样就可以针对不同的区域,采取对应的算法。
2023-06-18 15:16:20 65
原创 SpringMVC 面试题+答案
是轻量级的web层框架,底层基于Servlet Api实现的。通过MVC思想把Servlet的代码进行分离、解耦,把传统的web项目的代码拆分,一部分交给SpringMVC完成,一部分交给我们完成。
2023-06-18 15:15:42 211
原创 MySql 面试题+答案
事务是一种机制、一个操作序列,是访问和更新数据库的程序执行单元。事务中包含一个或多个数据库操作命令,会把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行。
2023-06-18 15:13:23 68
原创 网络传输相关 面试题+答案
关闭连接时,服务器收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,而自己也未必全部数据都发送给对方了,所以己方可以立即关闭,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送,从而导致多了一次。发送方发出消息后会等待接收方返回ACK报文,确认消息是否已经接收,如果发送方迟迟等不到ACK消息,会触发重发机制,再发一条。3.第三次握手,客户端收到SYN和ACK包,向服务器发送ACK确认包,客户端和服务端进入TCP连接成功状态。
2023-06-18 15:12:27 222
原创 多线程 面试题+答案
4.创建线程池,使用Executor框架接口的实现创建线程池,和Excutors工具类创建线程池。1.实现Runnable接口,实现run方法,方法没有返回值,无法抛出异常。2.实现Callable接口,实现call方法,方法有返回值,可以抛出异常。2.不可剥夺条件:一个线程已经获得资源,在未释放之前都不会被其他线程抢占。进程:是操作系统分配资源基本单元,有独立的内存空间,由多个线程组成。(我的总结是:围绕资源展开,同一个时间上资源只能一个线程拥有)4.循环等待条件:多个线程相互等待对方释放资源。
2023-06-18 15:12:02 49
原创 Redis 面试题+答案
定义:在高并发下,大量的key在同一时间过期了,大量的请求直接落在数据库上,导致数据库宕机。解决方案:1.随机设置key过期时间,避免大量key集体失效。2.不设置过期时间3.使用定时任务,过期前刷新缓存。定义:Redis和数据库都没有对应的key,导致查询Redis不存在,无法拦截,直接被穿透到数据库,导致数据库压力过大宕机解决方案:1.对于不存在的数据缓存到Redis中,设置一个短期过期时间2.拉黑该IP3.对数据做校验,校验不合法的key4.使用布隆过滤器。
2023-06-18 15:11:55 53
原创 RabbitMq面试题+答案
通过维护一张ets表来实现,append方式写入文件,RabbitMq启动时会启动两个进程,一个负责持久化消息存储,一个负责非持久化消息存储(当内存不足时才会),首先是先写入buffer缓冲区,再每隔25秒进行一次刷盘,写入文件。大致是把消息放到普通队列中,设置一个TTL(过期时间),过期后消息被放到死信队列,然后通过监听死信队列来实现。1.声明队列时,指定noack=false(把自动提交改成手动提交),broker会等待消费放返回ACK消息,才会删除消息,否则自动删除。routingkey是完全匹配。
2023-06-18 15:11:30 495
原创 Spring 面试题+答案
Spring 是一个开源的J2EE应用框架,是针对Bean的生命周期进行管理的轻量级容器。IOC:控制反转。以前一般创建对象是由创建者去通过new创建,有了Spring之后,创建对象全部交给Spring容器去帮我们创建进行管理。DI:依赖注入。就是将对象的属性注入到具体的对象中。@Autowried,@Resource populateBean方法注入。容器:存储对象。使用map结构去保存对象,在Spring中存储对象一般有三级缓存,singletonObjects用来存放完整对象。
2023-06-18 15:10:10 71
原创 Java 基础知识面试题+答案
ArrayList 和Vector使用数组方式存储数据,他们都允许直接按序号索引取值,但是插入数据涉及数组元素移动等内存操作,所以索引数据快,而插入数据慢,由于Vector使用了synchronized锁,所以性能上比ArrayList差一些。Set的特点:元素无放入顺序,且不可重复(注意:元素虽然无放入顺序,但是元素在Set中的位置是由该元素的HashCode决定的,其位置是固定的)。List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。
2023-06-18 15:08:54 111
原创 SpringBoot 面试题+答案
refresh方法:是启动的核心步骤。1.new SpringApplication():去spring.factory里面查找我们的初始化器,再去里面查找我们的监听器,还有些其他操作,选择我们应用的sevlet的类型。3.调用prepareContext方法:准备上下文(监听配置、设置环境对象、进行初始化操作、load对应的资源)在整个自动装配中,做了加载启动类,把启动类注入容器中。实现的方法名称(准备上下文):prepareContext(监听配置、设置环境对象、进行初始化操作、load对应的资源)
2023-06-18 15:07:47 540
原创 2021年总结:坚定自己,保持热爱
前言看到大家都在这里记录下年总结,因此也想记录。关于这一年2021经历了人生中很重要的转折点,从一个学生成为一个上班族,体会到了生活的苦、做学生的好。疫情当下,社会不安,充满了许多的遗憾,但我还算是挺幸运的吧,能顺利答辩、毕业、工作。yijing关于学习...
2022-02-08 15:11:59 82
原创 网络模块封装axios
网络模块封装Vue中发送网络请求有很多种的方式,那么,在开发中,如何选着呢选择一:传统的Ajax是基于XMLHttpRequest(XHR)为什么不用它呢? 1.非常好解释,配置和调用方式等非常的混乱 2.编码起来看着就非常蛋疼 3.所以真实开发中很少直接使用,而是使用JQuery-Ajax选择二:在前面的学习中,我们经常使用JQuery-Ajax相对于传统的Ajax而言非常好用为什么不选择它呢? 1.首先,我们先明确一点:在Vue的整个开发中都是不需要使用JQuery
2021-02-08 10:18:58 88
原创 Vuex学习
Vuex的学习Mutation 提交风格Mutation中的处理方式是将整个commit的对象作为payload使用,所以代码没有改变,依然如下:Mutation响应式规则Vuex的store中的state是响应式的,当state中的数据发生改变时,Vue组件会自动更新。这就要求我们必须遵守一些对应的规则:1.提前在store中初始化好所需要的属性2.当给state中的对象添加新属性时,使用下面的方式:方式一:使用Vue.set(obj,‘newProp’,123)方式二:用新对象给旧对
2021-02-05 11:54:30 94
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人