一. 前言 本篇主要說明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啟動原理[http://www.lxweimin.com/p...
一. 核心注解 @EnableFeignClients String[] basePackages 等同 String[] value()指定要掃描的包路徑,一般用于當項目引...
BeanDefinitionRegistry 摘要 見名知義,BeanDefinitionRegistry就是用于將BeanDefinition注冊到spring容器中,即添...
BeanDefinition 摘要 BeanDefinition是spring ioc的核心部分,可以說spring管理的幾乎所有bean都是BeanDefinition的子...