zhangtao's Blog

好记性不如烂笔头

单元测试--Mockito+JUnit

最近领导开始要求写代码需要写单元测试了。于是花了点时间研究下单元测试。 一、目的 单元测试适合一些项目复杂,启动一次项目要花很大成本的项目,这样

捞取大量数据慢查询优化

双11期间这家客户积压了5w笔订单没有发货,所以客户反映每次计算都很慢,需要几十秒的时间。波次计算的代码需要把系统中审核的订单捞出来后进行计

记一次长事务问题排查思路

今天早上dba群里抛出一个问题说,有一个长事务一直在重复执行我们的一个语句。于是问题抛给我们,我们开始排查。 首先dba告知我们这句sql是重

通过数据库唯一索引实现分布式锁

伪代码 // 需要加事务 @Transactional @Override public <T> T lock(XxxLock lock, ILockCallback<T> callback) { // 数据库加锁 lock(lock); // 加锁逻辑 T result = callback.callback(); //释放锁 try { lockDao.batchDelete(locks); } catch (Exception e) { logger.error("mysq

事务隔离级别实现-行锁与MCCC

我们都知道数据库在并发同时执行的时候,就可能出现脏读、不可重复读、幻读的问题,为了解决这些问题,设置了四种事务的隔离级别,分别是 读未提交:A

匿名内部类使用

在我们开发中,匿名内部类用的还是比较多的,笔者有点忘了一些细节,所以今天带大家复习一下匿名内部类 匿名内部类既没有名字的内部类 正因为没有名字,

JVM相关知识点总结

每个线程都有: 程序计数器:记录了上下文切换的位置 虚拟机栈:由栈帧组成,入栈出栈 本地方法栈:Native方法 每个线程共享: 堆:对象 方法区(jd

SpringBoot之Starter

SpringBoot之所以流行,是因为Spring Starter模式的提出。Spring Starter的出现,可以让模块开发更加独立化,相互

总结自己常用的JDK8写法(stream,function,optional)

特别要注意的是list集合,我们sql查询返回的list或者stream处理完的list都不可能是null,所以不需要判断是否为null 遍历

高可用方案和一致性hash

其实大部分中间件都逃不过这两种模式 这种模式的特点是有一Master多slave,一般采用读写分离的方式,只从master中写,然后同步给sl