掌握了开源框架还不够,你更需要掌握源代码

摘要:本篇文章将以解决 Element Plus 问题的经历开始,循序渐进讨论开源项目或开源框架的问题,进一步讨论驾驭开源项目源代码的方法和技巧,分享自己阅读、理解和更改源代码的思路。 本文分享自华为云社区《优秀开源框架就一定靠谱么?五招助你驾驭源代码》,原文作者:Marvin Zhang 。 前言 ... »

从RocketMQ的Broker源码层面验证一下这两个点

本篇博客会从源码层面,验证在RocketMQ基础概念剖析,并分析一下Producer的底层源码中提到的结论,分别是: Broker在启动时,会将自己注册到所有的NameServer上Broker在启动之后,会每隔30S向NameServer发送心跳 之前的文章中,我们知道了RocketMQ中的一些核 ... »

Prometheus时序数据库-数据的查询

Prometheus时序数据库-数据的查询 前言 在之前的博客里,笔者详细阐述了Prometheus数据的插入过程。但我们最常见的打交道的是数据的查询。Prometheus提供了强大的Promql来满足我们千变万化的查询需求。在这篇文章里面,笔者就以一个简单的Promql为例,讲述下Promethe ... »

Tomcat源码学习 - 环境搭建

一. 源码下载 PS: 多图预警 在开始阅读源码之前,我们需要先构建一个环境,这样才能便于我们对源码进行调试,具体源码我们可以到官网进行下载(这里我以8.5.63版本为例)。 二. 项目导入 下载并解压 apache-tomcat-8.5.63-src.zip。 然后进入 apache-tomcat ... »

读 Kafka 源码写优雅业务代码:配置类

这个 Kafka 的专题,我会从系统整体架构,设计到代码落地。和大家一起杠源码,学技巧,涨知识。希望大家持续关注一起见证成长! 我相信:技术的道路,十年如一日!十年磨一剑! 往期文章 Kafka 探险 - 架构简介 Kafka 探险 - 源码环境搭建 Kafka 探险 - Kafka 探险 - 生产 ... »

springboot源码解析-管中窥豹系列之EnableXXX(十)

一、前言 Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。 我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。 二、EnableXXX 我们上一节讲了自动装配,用到了@SpringBootAp ... »

springboot源码解析-管中窥豹系列之自动装配(九)

一、前言 Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。 我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。 二、何为自动装配? 我们想用redis,直接引入spring-boot-star ... »

RocketMQ基础概念剖析,并分析一下Producer的底层源码

由于篇幅原因,本次的源码分析只限于Producer侧的发送消息的核心逻辑,我会通过流程图、代码注释、文字讲解的方式来对源码进行解释,后续应该会专门开几篇文章来做源码分析。 这篇博客聊聊关于RocketMQ相关的东西,主要聊的点有RocketMQ的功能使用、RocketMQ的底层运行原理和部分核心逻辑 ... »

springboot源码解析-管中窥豹系列之BeanDefinition(八)

# 一、前言 - Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。 - 我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。 ![ 简介 ](https://zhangbin1989.gitee ... »

springboot源码解析-管中窥豹系列之web服务器(七)

一、前言 Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。 我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。 二、web服务器 以前的的spring项目或者springmvc项目都需要一个w ... »

Spring 事务、异步和循环依赖有什么关系?

前言 在循环依赖中有一种循环依赖,就是自注入:自己依赖自己。 事务的自注入 在 Spring 自调用事务失效,你是怎么解决的? 有小伙伴提出可以自己注入自己来解决事务失效。 具体使用方式如下: @Slf4j @Service public class OrderBizServiceImpl impl ... »

剖析 CopyOnWriteArrayList

原文链接:https://www.changxuan.top/?p=1252 CopyOnWriteArrayList 是 JUC 中唯一一个支持并发的 List。 CopyOnWriteArrayList 的修改操作都是在底层的一个复制的数组上进行,即写时复制策略,从而实现了线程安全。其实原理和数 ... »

Spring 是如何解决循环依赖的?

前言 相信很多小伙伴在工作中都会遇到循环依赖,不过大多数它是这样显示的: 还会提示这么一句: Requested bean is currently in creation: Is there an unresolvable circular reference? 老铁!这就是发生循环依赖了! 当然 ... »

Python 中 lru_cache 的使用和实现

在计算机软件领域,缓存(Cache)指的是将部分数据存储在内存中,以便下次能够更快地访问这些数据,这也是一个典型的用空间换时间的例子。一般用于缓存的内存空间是固定的,当有更多的数据需要缓存的时候,需要将已缓存的部分数据清除后再将新的缓存数据放进去。需要清除哪些数据,就涉及到了缓存置换的策略,LRU( ... »

Kafka 探险 - 生产者源码分析: 核心组件

这个 Kafka 的专题,我会从系统整体架构,设计到代码落地。和大家一起杠源码,学技巧,涨知识。希望大家持续关注一起见证成长! 我相信:技术的道路,十年如一日!十年磨一剑! 往期文章 Kafka 探险 - 架构简介 Kafka 探险 - 源码环境搭建 前言 我们说 Kafka 是一个消息队列,其实更 ... »

springboot源码解析-管中窥豹系列之aware(六)

一、前言 Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。 我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。 二、ApplicationContextAware 假设我们想使用某个bean, ... »

springboot源码解析-管中窥豹系列之排序(五)

一、前言 Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。 我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。 二、排序 前几节我们讲源码的时候,会遇到一些排序的问题,我们都避而不谈 比如获取 ... »