hql0312的技术博客

技术是第一生产力,抓住技术的原始动力,做最有温度的技术分享

Logback在SpringBoot中的启动

引言 在SpringBoot项目中,只要增加了logback.xml 配置文件,日志就会按配置好的方式,进行日志的输出,那日志的功能是如何配置到项目中的呢? 分析 日志启动依赖于spring容器中的监听器机制,LoggingApplicationListener类实现了该功能 public void onApplicationEvent(ApplicationEvent event) { /...

RocketMQ的偏移量分析

源码分析RocketMQ的偏移量更新逻辑

引言 RocketMQ的消息是存储于指定的MQ队列中,而消费端在消费消息时,也消费端在处理消息时,一个MQ队列,也只会被一个消费端订阅,同一个消费端可以处理同一个topic下的多个队列,当订阅的队列中有数据时,就会将获取到的数据提交到消费线程池进行处理,处理完成后,进行更新每个消费组对应的topic的偏移量,那在异步更新的逻辑中如何保证这个偏移量的值的顺序呢? 分析 当前主要集中于源代码 ...

Redis启动分析

通过Redis的源码进行启动流程的分析

Redis的启动的流程比较复杂,这里我们挑其中的一个流程来理解Redis单线程模型下的流程,即客户连接->执行命令->返回,对应的处理为三个函数acceptTcpHandler,readQueryFromClient和SendReplayToClient,通过阅读源码梳理流程如下: Redis 的通过IO多路复用来处理客户端连接,io多路复用通过一个线程来监听文件描述符的状态,...

Spring @Configuration proxyBeanMethods详解

Spring源码分析

@Configuration 注解 spring框架中,@Configuration用于声明一个Java类为配置类,通过标注该注解的类来声明@Bean注解,用于定义Spring 容器中的Bean,定义如下: public @interface Configuration { @AliasFor(annotation = Component.class) String value() d...