摘要: 大家好,我是三友。 Spring对于每个Java后端程序员来说肯定不陌生,日常开发和面试必备的。本文就来盘点Spring/SpringBoot常见的扩展点,同时也来看看常见的开源框架是如何基于这些扩展点跟Spring/SpringBoot整合的。 话不多说,直接进入正题。 FactoryBean 提 阅读全文
posted @ 2022-07-26 13:12 三友的java日记 阅读(1684) 评论(2) 推荐(8) 编辑
摘要: 大家好,我是三友。 背景 前段时间,一个同事小姐姐跟我说她的项目起不来了,让我帮忙看一下,本着助人为乐的精神,这个忙肯定要去帮。 于是,我在她的控制台发现了如下的异常信息: Exception in thread "main" org.springframework.beans.factory.Be 阅读全文
posted @ 2022-07-12 13:08 三友的java日记 阅读(2750) 评论(1) 推荐(5) 编辑
摘要: 最近一直畅游在RocketMQ的源码中,发现在RocketMQ中很多地方都使用到了CompletableFuture,所以今天就跟大家来聊一聊JDK1.8提供的异步神器CompletableFuture,并且最后会结合RocketMQ源码分析一下CompletableFuture的使用。 Futur 阅读全文
posted @ 2022-07-05 12:59 三友的java日记 阅读(2447) 评论(1) 推荐(3) 编辑
摘要: 大家好,前面我已经剖析了OpenFeign的动态代理生成原理和Ribbon的运行原理,这篇文章来继续剖析SpringCloud组件原理,来看一看OpenFeign是如何基于Ribbon来实现负载均衡的,两组件是如何协同工作的。 一、Feign动态代理调用实现rpc流程分析 通过Feign客户端接口的 阅读全文
posted @ 2022-06-23 13:21 三友的java日记 阅读(893) 评论(0) 推荐(0) 编辑
摘要: 万字剖析Ribbon核心组件以及运行原理 大家好,本文我将继续来剖析SpringCloud中负载均衡组件Ribbon的源码。本来我是打算接着OpenFeign动态代理生成文章直接讲Feign是如何整合Ribbon的,但是文章写了一半发现,如果不把Ribbon好好讲清楚,那么有些Ribbon的细节理解起来就很困难,所以我还是打算单独写一篇文章 阅读全文
posted @ 2022-06-15 23:36 三友的java日记 阅读(651) 评论(0) 推荐(3) 编辑
摘要: 6000字|22张图 带你彻底弄懂Zookeeper分布式锁 前面我们剖析了Redisson的源码,主要分析了Redisson实现Redis分布式锁的15问,理清了Redisson是如何实现的分布式锁和一些其它的特性。这篇文章就来接着剖析Zookeeper分布式锁的实现框架Curator的源码,看看Curator是如何实现Zookeeper分布式锁的,以及它提 阅读全文
posted @ 2022-06-13 13:15 三友的java日记 阅读(1274) 评论(0) 推荐(0) 编辑
摘要: 前言 dubbo是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力。作为spring cloud alibaba体系中重要的一部分,随着spring cloud alibaba在国内活跃起来,dubbo也越来越深受各大公司的青睐。本文就来对dubbo的spi机制源码进行剖析,看 阅读全文
posted @ 2022-06-07 13:23 三友的java日记 阅读(1114) 评论(0) 推荐(0) 编辑
摘要: 前言 众所周知,spring对于java程序员来说是一个及其重要的后端框架,几乎所有的公司都会使用的框架,而且深受广大面试官的青睐。所以本文就以常见的一个面试题"spring bean的生命周期"为切入点,从源码的角度带领大家来看一看 spring bean到底是如何创建的 。spring bean 阅读全文
posted @ 2022-06-04 22:56 三友的java日记 阅读(1155) 评论(2) 推荐(2) 编辑
摘要: synchronized 是java中常见的保证多线程访问共享资源时的安全的一个关键字。很多人在讲到synchronized 时都说synchronized 是一把重量级的锁,那么synchronized 真的很重么? synchronized 在jdk 1.6以前(不包括1.6)的确是一把很重的锁 阅读全文
posted @ 2022-06-01 22:43 三友的java日记 阅读(208) 评论(0) 推荐(1) 编辑
摘要: 大家好,我是三友。 在一个分布式系统中,由于涉及到多个实例同时对同一个资源加锁的问题,像传统的synchronized、ReentrantLock等单进程情况加锁的api就不再适用,需要使用分布式锁来保证多服务实例之间加锁的安全性。常见的分布式锁的实现方式有zookeeper和redis等。而由于r 阅读全文
posted @ 2022-05-30 13:06 三友的java日记 阅读(1479) 评论(0) 推荐(2) 编辑