一. 前言 本篇主要說明eureka客戶端與服務(wù)端間感知延遲的原因,并從源碼層面解釋各個(gè)延遲點(diǎn)的源碼實(shí)現(xiàn),以及如何保證調(diào)用方平滑感知實(shí)例上下線。 二. 服務(wù)上線 servic...
一. spring服務(wù)如何感知關(guān)閉信號(hào) 我們想停掉一個(gè)spring的進(jìn)程,一般通過kill命令完成,常用的命令如kill -2 pid(ctrl + C)、kill -9 p...
jvm進(jìn)程如何感知關(guān)閉事件 java.lang.Shutdown 結(jié)束一個(gè)普通的java進(jìn)程,一般來說可以讓程序自行結(jié)束,也可以通過System.exit(n);來主動(dòng)觸發(fā)終...
一. 前言 本文主要分析eureka server端啟動(dòng)流程,包括啟動(dòng)入口、bean注入過程、初始化過程等。 client端注冊(cè)邏輯請(qǐng)參見Spring Cloud Eurek...
一. 前言 本文詳細(xì)介紹了eureka server端關(guān)于服務(wù)治理的幾個(gè)核心方法實(shí)現(xiàn)。主要實(shí)現(xiàn)邏輯集中在com.netflix.eureka.registry.Abstrac...
一. 前言 eureka的client端主要完成幾件事情: 服務(wù)實(shí)例的注冊(cè) 服務(wù)實(shí)例的續(xù)約 拉取server端的注冊(cè)表 整個(gè)源碼有幾個(gè)重點(diǎn)類值得關(guān)注: 類名說明EurekaC...
Spring Cloud Ribbon 源碼分析 前言 原理介紹 ribbon提供了http請(qǐng)求負(fù)載均衡的能力,既然要擴(kuò)展調(diào)度能力,就需要在請(qǐng)求之前,通過某種調(diào)度策略選擇合適...
前言 本篇主要貼一下cglib生成的代理類源碼,詳細(xì)的分析過程參考[%E9%93%BE%E6%8E%A5%E5%9C%B0%E5%9D%80]動(dòng)態(tài)代理實(shí)現(xiàn)源碼剖析 —— 深入...
cglib 動(dòng)態(tài)代理 前言 cglib的源碼實(shí)現(xiàn)要比JDK動(dòng)態(tài)代理復(fù)雜的多,剛開始看會(huì)覺得很繞,其實(shí)只要把握住主線,明白總體的設(shè)計(jì)思路,看起來就會(huì)比較流程。 總體思路:整個(gè)過...
JDK 動(dòng)態(tài)代理 基本用法 Proxy 和 InvocationHandler 動(dòng)態(tài)代理明面上就這兩個(gè)關(guān)鍵類InvocationHandler 里面就一個(gè)invoke方法,專...
前言 本文重點(diǎn)分析了ThreadPoolExecutor兩個(gè)方法execute() 和 submit() 的執(zhí)行原理,并說明Future如何實(shí)現(xiàn)阻塞返回。 繼承關(guān)系圖 關(guān)鍵方...
本篇主要介紹ReentrantLock 中 condition的await/signal方法的實(shí)現(xiàn)原理。 使用說明 當(dāng)前線程在獲取到鎖后,通過await來讓自己進(jìn)入park阻...
ReentrantLock 作為常用的多線程下鎖的一種實(shí)現(xiàn)類,常和synchronized進(jìn)行比較,本篇主要介紹ReentrantLock常用方法的源碼實(shí)現(xiàn)。 架構(gòu)總覽 先貼...
一. 前言 關(guān)于Feign的啟動(dòng)原理分析,參照另一篇Spring Cloud Feign 源碼分析 - feign啟動(dòng)原理[http://www.itdecent.cn/p...
一. 核心注解 @EnableFeignClients String[] basePackages 等同 String[] value()指定要掃描的包路徑,一般用于當(dāng)項(xiàng)目引...
BeanDefinitionRegistry 摘要 見名知義,BeanDefinitionRegistry就是用于將BeanDefinition注冊(cè)到spring容器中,即添...
BeanDefinition 摘要 BeanDefinition是spring ioc的核心部分,可以說spring管理的幾乎所有bean都是BeanDefinition的子...