
日常问题
动森万岁
这个作者很懒,什么都没留下…
展开
-
JPA使用@EntityGraph立即加载关联实体
例如我有一个Material类,其中有一个属性supplier使用了多对一关联到Supplier类,并开启懒加载,查询出来结果后,material.getSupplier()会单独查询一次数据库,这样很多场景下效率有所降低。最近发现了一个@EntityGraph注解,在接口中通过@EntityGraph注解来指定加载策略,这可以在不改变实体默认加载策略的情况下,为特定的查询方法指定加载行为,这样SQL直接就会关联到另一张表,当需要使用这个实体的时候就不会再次查询数据库了。原创 2025-02-05 17:34:24 · 257 阅读 · 0 评论 -
Hystrix配置错误导致高并发场景下Gateway网关调用其他服务时迅速被降级
断路器检测的基础请求值,只有时间窗口内的请求数达到这个阈值时,才会判定错误率,否则比如只有一两个请求,即便都失败了,也不会打开断路器,因为基数太少了,默认20。压力测试的时候发现,异常率非常的高,30并发异常率高达70%。为了排查这个问题,直接跳过了网关去压测业务服务,发现异常率为0,初步判断问题出在网关上。默认的阈值太小,超时时间也很短,所以导致大量请求都判断为超时,错误率升高后触发了熔断。#服务超时时间,单位毫秒,默认1000。# 错误百分比,超过就会短路,默认值50。重点就在这几个参数上。原创 2023-03-23 11:41:15 · 776 阅读 · 0 评论 -
简记springboot和springcloud版本号升级
起因由一个漏洞检测,需要升级spring的版本号。项目用的springcloud alibaba套装,所以打算直接升springboot和springcloud的版本号来解决此问题。 项目原版本号如下:<groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><...原创 2021-06-30 12:34:23 · 480 阅读 · 0 评论 -
Spring WebClient,异步POST请求代码段
最近要在后台写一个异步POST请求,发现原来的AsyncResttemplate过时了,说明文档中提到了替代类WebClient。于是查找文档,写了一个DEMO。下面是部分代码段。POST请求String url = configStorage.getApiUrl(WxCpApiPathConsts.Tp.GET_SUITE_TOKEN); Map<String, String> params = new HashMap<String, String>();原创 2020-11-11 12:09:23 · 1900 阅读 · 1 评论 -
RabbitMQ 重复ACK异常解决
最近搭了两个项目,处理分布式事务的时候用到的RabbitMQ,发现在手动ACK的时候抛出了如下异常:Channel shutdown: channel error; protocol method: #method(reply-code=406, reply-text=PRECONDITION_FAILED – unknown delivery tag 1, class-id=60, method-id=80)这个异常不影响代码的运行和结果,但是有个错误总归要解决。这个异常其实是进行了.原创 2020-10-23 10:28:32 · 1451 阅读 · 1 评论 -
记一次druid连接池配置问题引发服务假死的定位、分析、解决过程
一、前言 记录一次服务假死的整个排查过程,服务基础为spring boot + druid + 多数据源切换,在请求过多(尤其是长事务请求)时,服务出现请求无响应的状况,之前未完结的查询也没有任何返回结果。二、定位问题原因 问题出现时,表现如下图,后台无任何报错,sql语句戛然而止,后续的查询被中断。这时如果再次发起某个请求,后台服务处于大部分时间不能...原创 2020-04-21 16:20:55 · 6170 阅读 · 0 评论 -
spring自动装配空指针异常解决
在某些特殊的类中,使用@Autowired自动装配的类在调用其中方法的时候会出现空指针的异常可以加入下面的代码 @Autowired private FIXDieMaintainService dieMaintainService; @Override public Object execute() throws Exception { // 解决自动注入空指针...原创 2018-12-03 10:58:21 · 2050 阅读 · 0 评论 -
tomcat启动闪退解决办法
排除环境问题后,如果还是无法启动,可参考在startup.bat和shutdown.bat第一行加入代码SET JAVA_HOME=jdk目录SET CATALINA_HOME=tomcat解压目录比如:SET JAVA_HOME=C:\develop\java\1.8.0_45\jdk1.8.0_45SET CATALINA_HOME=D:\apache-tomcat-8.0.3...原创 2018-09-18 10:17:08 · 337 阅读 · 0 评论 -
解决Spring+Quartz无法自动注入bean问题
原文地址: https://www.cnblogs.com/feiqihang/p/5358100.html工作遇到的问题,使用Quartz定时任务,如果需要用到自动注入,会报空指针异常,看了原文博主的方法,只需要加上SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);就能正常注入了。@S...转载 2018-08-30 13:21:09 · 472 阅读 · 0 评论 -
JS模拟按下回车方法
项目中需要用到模拟按下回车的方法,网上找了好多都是监听回车事件的,不过最终还是让我再某大佬的帖子里找到了这段代码。记录一下,以免以后又忘了。这个是大佬的原文,里面的ctrlKey没试过,看意思大概是ctrl键var evt = $.Event('keydown', {keyCode: 13, ctrlKey: true});$(document).trigger(evt);原创 2017-12-26 13:49:54 · 25169 阅读 · 2 评论 -
url中包含#字符等特殊字符导致请求报错的解决方案
今天在写流程的时候发现了这样一个问题,一个流程的消息我们通常会用这个流程的名称、编码之类的做区别,比如: 产品制造大纲: 编制[ #2 前缘肋] 上图前两行应该是正确的显示下面都是我测试时候失败的结果,点击这个链接的时候会报一个空指针,因为我后面的参数没有成功请求由于在url中特殊符号都有特殊意义或者被认为是不安全的字符,所以在拼接url时应当替换出url中原创 2017-06-03 13:05:30 · 43854 阅读 · 6 评论 -
循环删除List元素方法
for (int j = 0; j < list.size(); j++) { if (list.get(j).getSign() != null && list.get(j).getSign() == 1) { list.remove(j); } } // 修改前 Iterator it = list.iterator(); while(it.hasNext()原创 2017-02-27 09:48:30 · 551 阅读 · 0 评论