- 博客(12)
- 收藏
- 关注
原创 蝴蝶效应与“数据库慢查询雪崩“
这是一次由于DM数据库异常超时的蝴蝶在 系统不规范代码(7*5层循环,翻几十倍)的翅膀煽动下,刮起了一阵风(单次HTTP请求长期占用链接),最终引起了隔壁大洋海啸(系统整个大屏数据统计全都宕机)的故事。
2022-11-18 23:11:54 375 1
原创 Linux磁盘空间说明
对于Java开发人员来讲,我们或多或少都会了解一些Linux基础知识。 "磁盘空间满了"的问题。我们每个人都可能遇到过,解决方式也是很简单,莫名奇妙的删除一些大文件就好了,接下来我们针对如何看懂Linux 磁盘空间和文件存储进行一下简单的说明。 对于 df -h命令,我们可以看出当前磁盘使用率,如下图所示:Filesystem: 文件系统的名称Size: 一个特定的文件系统1K-块1K是1024字节为单位的总内存...
2021-10-03 10:55:17 533
原创 Alibaba Dubbo 和 Apache Dubbo两个版本的SpringBoot Demo整合
基于Alibaba Dubbo 和 Apache Dubbo两个版本整合的SpringBoot Demo。
2021-04-21 14:07:11 1746 1
原创 Redis分布式锁的实现
一般,我们在处理定时业务逻辑时,经常使用SpringSchedule这个定时任务组件。但是随着用户量的提升,服务集群部署时这些定时任极有可能相互冲突。这种场景就要用到Redis分布式锁,附录两个基于sping-data-redis不同版本的分布式锁,它的本质是redis的setNX(set if not exists )方法,只有不存在的时候才会赋值,设置成功时返回 1 ,设置失败时返回 0 。这种锁的实现是悲观锁。低版本:import org.slf4j.Logger;...
2020-09-09 14:11:55 181
原创 SpringAop系统日志
通过SpringAop记录日志,避免侵入代码,附录简单的实现:import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import org.apache.commons.fileupload.FileUploadBase;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.AfterReturning;import o
2020-09-08 19:53:28 185
原创 调用链traceID的简单使用
日志输出是定位线上问题的重要手段。但是服务大量并发的情况下,我们很难获取单次请求的完整上下文调用链。可能有同学会想到tomcat线程名、线程号,但是tomcat线程池能够复用线程。还可能有同学想到程序入口生成一个UUID传递给上下文使用,这种类方式能够解决准确获取调用链,但是当我们代码逻辑较为复杂时,难么这种方式代码侵入性就比较高、历史代码改动也比较大。那么如何精确、优雅的获取调用链呢? 对于logback日志框架比较熟悉的同学就会知道,logback中有一个 MDC(Map...
2020-09-08 19:26:27 2555
原创 VMware安装Centos系统问题指南
楼主前段时间用到Docker,就在自己的电脑上的虚拟机上安装docker环境,遇到了一些问题。(1)VMware Workstation 12 Pro 12.0.1 Win10系统不兼容问题可以升级成最新的VMware-workstation-full-15.5.0-14665864,以前安装的虚拟机还可以正常使用。(2)每次启动更改IP一般安装后都是自动获取IP,如果不想每次重启都要修改代码中的IP参数配置,可以编辑Centos7系统网卡配置。使用 ifconfig命令查看本地的...
2020-06-08 13:36:36 267
原创 关于MyBatis-Plus 一对多关联查询的分页问题
问题场景:一般查询记录表T_CONTENT和记录附件表T_CONTENT_FILE这两个表的数据,一个T_CONTENT对应多个T_CONTENT_FILE。(1)查询content list时,基本上都是先分页查询list,遍历list再次查询fileList。这样循环查询效率较慢,不提倡这种查询方法。(2)运用Mybatis-Plus...
2020-04-20 16:29:45 3910 5
原创 HttpClient性能优化方案
Java的复杂应用开发过程中经常遇到跨系统的数据访问活动(例如业务系统访问基础数据、校验票据、验证身份等等),系统和系统之间的数据连接和传输是制约服务器响应速度的关键。1.前言 目前HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。HttpClient 是 Apache Jakar...
2020-01-16 14:29:30 3742
原创 MybatisPlus 大批量数据插入缓慢问题
一般在做业务的增删改查时,都会遇到大量数据插入的问题。如果数据记录达到几万条时,系统服务在数据入库时会卡的非常难受。如何快速的插入数据呢?首先,我们都会想到进行批量插入数据,但是批量插入之间也有很大的差异。 本文对比MybatisPlus 自带 saveBatch()方法、SqlSession 批量插入方式、自定义foreach方式、多线程foreach()...
2020-01-16 14:25:54 9063 3
原创 Druid连接池配置及sql监控使用
数据库操作是Java后台开发过程中最为重要的一部分,快速、稳定、安全的访问数据库能够大大提升服务器的响应速度。我们刚开始接触Java开发时都学过JDBC操作数据库。对于一个简单的数据库应用,需要访问数据库时,就新创建一个连接,用完后就关闭它,这种情况下占用系统资源不高,不会出现性能瓶颈。但是对于一个复杂的数据库应用,频繁的建立、关闭连接,会消耗大量的系统资源,非常容易使系统的性能陷...
2020-01-16 14:08:22 771
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人