- 博客(10)
- 资源 (8)
- 收藏
- 关注
原创 RocketMQ订阅关系不一致浅析
本文先介绍背景,分析官方文档中的一些场景,包括正确和错误的订阅关系,然后对出现订阅关系不一致进行原来解析,最后对MQ消息出现问题的场景做出应对解决方案。
2022-11-30 16:03:23
2861
1
原创 Spring参数校验和全局异常处理
目录一、前言二、Validation1、JSR-3032、Spring Validation3、@Validated和@Valid的区别三、全局异常处理1、为何要处理异常2、@RestControllerAdvice3、返回自定义消息四、全局异常原理解析1、ControllerAdvice的加载2、Controller接口异常如何进入exceptionHandler方法五、总结参考一、前言数据校验在业务代码中经常用到,比如前...
2022-05-08 16:34:39
1197
原创 RocketMQ消息存储之刷盘机制(原理篇)
一、前言RocketMQ的刷盘机制是一种确保消息可靠性的机制,简单来说就是Broker收到消息后,将消息存储到磁盘上。这样可以解决几个问题:存储空间问题。内存空间有限,存入磁盘可以维护更多消息。 消息可靠性问题。消息存入磁盘后,即使断电了,重启后便可恢复消息。二、刷盘机制原理RocketMQ的刷盘机制原理可以参考下图。下图为官方文档的原理图,主要说明两种刷盘机制:左图是同步刷盘机制,右图是异步刷盘机制。1、同步刷盘上面左图代表...
2022-05-02 12:00:07
4425
1
原创 RocketMQ消息存储之物理存储与逻辑存储
RocketMQ消息存储主要发生在Broker端,作为一种高可用消息中间件,RocketMQ具有独特的消息存储方式:RocketMQ消息存储分为物理存储和逻辑存储,物理存储发生在CommitLog文件中;逻辑存储发生在ConsumeQueue和Index文件中。
2021-12-18 16:18:05
1097
原创 mac的crontab没有执行的原因
crontab是一种定时任务调度工具,其用途就是根据表达式在特定的时间执行特定的任务。具体的时间可以用cron表达式表述,任务可以是sh脚本,也可以是基本的命令。
2021-11-29 12:59:40
3473
2
原创 Java日志规范
一、日志级别org.apache.log4j.Level的日志级别总共有8种,从All到Off,日志输出优先级依次变高。通过日志级别,可以控制到应用程序中相应级别的日志信息的开关。比如应用中定义日志级别是Info,那么在Info级别以下的日志就不会输出,即Debug、Trace等级别的日志不会被输出。日志级别的含义:OFF:最高级别,关闭日志,不打印日志。 FATAL:致命日志,指明非常严重的可能会导致应用终止执行错误事件。 ERROR:错误日志,这种级别...
2021-10-24 18:04:17
4365
原创 logback-spring.xml配置详解
日志配置文件,官方文档建议使用-spring 命令格式的配置,日志框架不直接加载,由SpringBoot解析日志配置,如:logback-spring.xml。如果直接定义为logback.xml 将直接被日志框架识别。下面详细解释下logback-spring.xml中属性的具体作用:<configuration> <contextListener class="com.ofpay.logback.TtlMdcListener"/> <...
2021-10-23 12:30:32
11380
原创 Collections.sort引发的线上问题及原理研究
目录一、问题重现二、Arrays.sort源码分析三、TimSort1、TimSort简介2、TimSort原理1)、二分插入排序2)、minRunLength3)、do-while循环3、TimSort异常案例分析四、总结五、参考一、问题重现@Datapublic class BusinessApplyDto implements Comparable<BusinessApplyDto>, Serializable { pr
2021-10-07 17:04:46
756
1
原创 mapstruct常见用法梳理
目录一、前言二、mapstruct使用前的准备1、maven方式2、Gradle方式3、 Apache Ant方式三、mapstruct使用方式梳理1、最简单的映射2、不同属性名映射3、不同类型映射 1)、日期格式转化 2)、数字格式转化4、List映射5、Map和Set映射6、枚举映射四、总结参考一、前言 在互联网企业中,随着业务越来越繁琐,导致系统架构越来越复杂,很多企业都...
2021-09-25 20:53:39
2081
原创 mapstruct原理解析
目录一、mapstruct简介二、mapstruct与其他映射框架对比三、mapstruct底层原理解析1、Java动态编译2、mapstruct源码分析四、小结一、mapstruct简介mapstruct是一种实体类映射框架,能够通过Java注解将一个实体类的属性安全地赋值给另一个实体类。有了mapstruct,只需要定义一个映射器接口,声明需要映射的方法,在编译过程中,mapstruct会自动生成该接口的实现类,实现将源对象映射到目标对象的效果。 ...
2021-09-12 22:19:52
20600
4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人