一. 前言 本篇主要说明eureka客户端与服务端间感知延迟的原因,并从源码层面解释各个延迟点的源码实现,以及如何保证调用方平滑感知实例上下线。 二. 服务上线 servic...
一. spring服务如何感知关闭信号 我们想停掉一个spring的进程,一般通过kill命令完成,常用的命令如kill -2 pid(ctrl + C)、kill -9 p...
jvm进程如何感知关闭事件 java.lang.Shutdown 结束一个普通的java进程,一般来说可以让程序自行结束,也可以通过System.exit(n);来主动触发终...
一. 前言 本文主要分析eureka server端启动流程,包括启动入口、bean注入过程、初始化过程等。 client端注册逻辑请参见Spring Cloud Eurek...
一. 前言 本文详细介绍了eureka server端关于服务治理的几个核心方法实现。主要实现逻辑集中在com.netflix.eureka.registry.Abstrac...
一. 前言 eureka的client端主要完成几件事情: 服务实例的注册 服务实例的续约 拉取server端的注册表 整个源码有几个重点类值得关注: 类名说明EurekaC...
Spring Cloud Ribbon 源码分析 前言 原理介绍 ribbon提供了http请求负载均衡的能力,既然要扩展调度能力,就需要在请求之前,通过某种调度策略选择合适...
前言 本篇主要贴一下cglib生成的代理类源码,详细的分析过程参考[%E9%93%BE%E6%8E%A5%E5%9C%B0%E5%9D%80]动态代理实现源码剖析 —— 深入...
cglib 动态代理 前言 cglib的源码实现要比JDK动态代理复杂的多,刚开始看会觉得很绕,其实只要把握住主线,明白总体的设计思路,看起来就会比较流程。 总体思路:整个过...
JDK 动态代理 基本用法 Proxy 和 InvocationHandler 动态代理明面上就这两个关键类InvocationHandler 里面就一个invoke方法,专...
前言 本文重点分析了ThreadPoolExecutor两个方法execute() 和 submit() 的执行原理,并说明Future如何实现阻塞返回。 继承关系图 关键方...
本篇主要介绍ReentrantLock 中 condition的await/signal方法的实现原理。 使用说明 当前线程在获取到锁后,通过await来让自己进入park阻...
ReentrantLock 作为常用的多线程下锁的一种实现类,常和synchronized进行比较,本篇主要介绍ReentrantLock常用方法的源码实现。 架构总览 先贴...
一. 前言 关于Feign的启动原理分析,参照另一篇Spring Cloud Feign 源码分析 - feign启动原理[https://www.jianshu.com/p...
一. 核心注解 @EnableFeignClients String[] basePackages 等同 String[] value()指定要扫描的包路径,一般用于当项目引...
BeanDefinitionRegistry 摘要 见名知义,BeanDefinitionRegistry就是用于将BeanDefinition注册到spring容器中,即添...
BeanDefinition 摘要 BeanDefinition是spring ioc的核心部分,可以说spring管理的几乎所有bean都是BeanDefinition的子...