- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 从源码看世界:偏向锁从入门到放弃
完整的偏向流程:撤销锁成本大,需要等待安全点逻辑过于复杂,并且到处都耦合偏向锁的逻辑,后期维护成本高编程思维的改变,锁范围的缩小与锁竞争的频率增加都会导致偏向失效,反而降低程序性能偏向锁撤销需要安全点原因:对象头需要存储线程信息(方便偏向),因此需要在线程栈帧中遍历寻找lock record,在非safepoint时栈帧是动态的偏向锁适用范围:单一线程反复进入同步块。
2022-06-20 09:48:00 136
原创 记一次shardingsphere自动更新datasource引发的生产故障
从本次故障得出经验,在使用开源框架时必须多查阅其官网手册,基本可以避免大部分的坑;对于不确定的事情需要多做测试,多想后果,多准备预案,不要等到出现问题时自乱阵脚!
2023-09-19 23:00:43 272 1
原创 任务协同框架设计初稿
日常工作中若遇到一个功能非常复杂时往往实现起来已经相当困难,然而更大的挑战是日后的维护与扩展。……倘若后期需要增加营销活动的需求,到底应该在哪增强呢?这就催生出任务编排/协同的需求了。
2023-09-03 22:12:40 95
原创 dubbo服务端方法增加字段导致消费端反序列化失败
前几天在实现一个新功能时,在dubbo provider提供的SDK中某个方法的返回对象增加了一个字段,照理consumer不使用的时候无需升级也不受影响,结果provider上线后发现未升级的consumer出现反序列失败的异常,这就让我一脸懵B了,于是我赶紧去排查一遍。此时consumer A由于没用到 userInfo,因此继续使用1.0版本。
2023-09-02 22:35:23 390 1
原创 dubbo异常Waiting server-side response timeout by scan timer
调用dubbo api报异常: Caused by: org.apache.dubbo.remoting.TimeoutException: Waiting server-side resp...
2022-03-23 11:05:00 273 2
原创 从源码看世界:tomcat如何在spring boot中启动
在前面的介绍中已经了解过ServletWebServerFactory的实现类,其中就有一个抽象实现类AbstractServletWebServerFactory,它里面实现了session、contextPath、ServletContextInitializer等容器的通用方法,这样tomcat、jetty等容器工厂实现类只需继承这个抽象类即可拥有通用能力,无需重复实现,这种设计也就是常说的。Spring boot之所以如此受欢迎,不仅自动完成了大量配置,还内嵌了web容器tomcat,开箱即用。
2020-02-22 19:15:00 63
原创 JVM堆外内存异常增长的解决过程
最近解决了几次内存异常的问题,有两次是堆外内存异常,感觉解决的问题越多,问题的共性就越容易总结,在这里给大家分享一下,希望抛砖引玉能够帮大家解决遇到的问题。 其实有了MAT这类工具,一般堆内内存基本都能借助工具分析出大概问题所在...
2020-02-16 23:02:00 13
原创 从源码看世界:Springboot整合Mybatis后到底做了什么
在 Mybatis一次数据库操作过程 的文章中,我展示了使用Mybatis操作数据库的demo,但实际使用时并不会这里写代码,因为一般都会使用springboot了,那现在我们一起来看看S...
2020-01-30 00:16:00 19
原创 从源码看世界:Mybatis初始化过程(下)
statement的id、查询offset/limit、sql、参数和环境id,属于二级缓存(此二级非二级分布式缓存,它由事务缓存管理器提供,仍然存储于本地)。可以看到Executor也在这里实例化了,还记得Executor是真正发起数据库操作的执行器,并且Executor有多个实现类,这里到底使用的是哪个实现类呢。众所周知,接口是无法实例化的,那Mybatis到底实例出来的是什么东西呢?这是Mybatis的一种扩展机制,通过拦截器添加自定义操作,需要实现各自的接口并实现到全局配置中。
2020-01-26 23:03:00 16
原创 从源码看世界:Mybatis初始化过程(上)
从注册的内容中可以看出,类型别名主要用于取代复杂的类型全限定名,由于Mybatis支持xml和注解配置,配置一般以字符串形式键入,使用类型别名可以更加方便地进入配置,其用途或用于映射器配置文件中进行参数类型与返回结果类型的设置,或用于其它特定字符的类解析例如JDBC=JdbcTransactionFactory等等。registerAlias方法最终是保存在HashMap里,key=别名,value=类对象。至此,sql的生成已完成,具体的sql解析请自行查看源码,主要还是字符串的解析。
2020-01-26 19:13:00 20
原创 从源码看世界:Mybatis一次数据库操作过程
Mybatis作为大家熟知的持久层框架,能够通过XML或注解方便地实现ORM和数据库操作,到底它是怎么实现的呢,这里通过源码带大家揭开它的神秘面纱。 首先创建srping boot的demo项目,添加mybatis依赖、数据库配...
2020-01-24 00:22:00 14
原创 springboot增加@ComponentScan后本地bean无加载
1、前言 springboot需要加载jar包里的bean时,一般是使用注解@ComponentScan(basePackages = {"com.test.h...
2019-07-24 20:29:00 58
原创 tomcat项目接口每隔一段时间出现延迟慢
一、问题出现 之前在搞性能优化,发现有些通过Spring boot feign的RPC接口比较慢,达到100-200ms,按理RPC调用都是IP直连,不应该超过...
2019-06-25 20:03:00 53
原创 IDEA中Spring boot配置热部署无效问题解决方式
先说明下idea版本: 百度过Spring boot热部署应该都知道怎么配置了,但结果还是无效的话再往下看, ...
2018-08-27 17:03:00 39
原创 web.xml中的welcome-file认识
以前只知道welcome-file是用于配置首页地址,当访问域名时自动进入对应的页面,所以一直以为这个配置的是一个绝对地址。最近在一次测试中发现输入一个没有配置nginx的地址竟然可以进入一个页面,查了很久只有welcome-file这个最可疑,于是才去深扒它的说明(好吧,我承认我基础差) ...
2015-08-31 15:13:00 16
原创 运用@Transactional,自己抛出异常时不会回滚的原因
一、 当你读这篇文章的时候,假如读者是在整合j2EE的三大框架式遇到这个问题,那应该就是下面这个问题: ...
2015-03-25 10:17:00 25
原创 使用jquery.form.js的ajaxsubmit方法提交时参数file标签有值报JS错误
先把问题描述一下,功能是使用ajax向后台来提交数据,为了向用户进行很好的错误提示,后台中将出现错误时的错误原因返回给前端,前端使用jquery.form.js的ajaxsubmit来提交数据,并在success方法中提示"操作成功",在error方法中提示错误原因。整个form提交的数据包括一些简单的input和一个文件的上传...
2015-02-27 11:52:00 25
原创 maven热部署之resin配置
通过resin配置,可令maven项目热部署,具体如下: jsp热部署:在resin设置项目路径时,设置到src的webapp下 ...
2015-02-27 11:49:00 18
原创 获取Spring的上下文环境ApplicationContext的方式
Web项目中发现有人如此获得Spring的上下环境: publicclassSpringUtil{publicstaticApplicationContextcontext=newClassPathXmlApplicationCo...
2015-02-27 11:46:00 20
原创 Mysql数据类型错误引起的问题
前段时间发现后台某个查询经常超时,后来通过排查,把SQL语句打印出来,结果发现: 原来是开发人员在查询日期时,在参数里不小心...
2015-02-27 11:36:00 26
原创 可变参数导致参数没传入的问题
由于其中一个参数需要变化,于是写成: for(intkey:ProvinceCity.PROMAP.keySet()){sql="selectcount(1)fro...
2014-11-24 11:45:00 7
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人