一個小伙伴私信我,他說遇到了一個關(guān)于CAS機制的問題,他以為面試官問的是CAS實現(xiàn)單點登錄。心想,這個問題我熟啊,然后就按照單點登錄的思路去回答,結(jié)果面試官一直搖頭。他來和我...
一個小伙伴私信我,他說遇到了一個關(guān)于CAS機制的問題,他以為面試官問的是CAS實現(xiàn)單點登錄。心想,這個問題我熟啊,然后就按照單點登錄的思路去回答,結(jié)果面試官一直搖頭。他來和我...
AQS是AbstractQueuedSynchronizer的簡稱,是并發(fā)編程中比較核心的組件。在很多大廠的面試中,面試官對于并發(fā)編程的考核要求相對較高,簡單來說,如果你不懂...
當(dāng)系統(tǒng)并發(fā)流量過大的時候,有可能會造成系統(tǒng)被壓垮導(dǎo)致整個服務(wù)不可用的問題。 針對這個場景,一般的解決方案是:如果超過這個流量,我們就拒絕提供服務(wù),從而使得我們的服務(wù)不會掛掉。...
Nacos作為配置中心,必然需要保證服務(wù)節(jié)點的高可用性,那么Nacos是如何實現(xiàn)集群的呢? 下面這個圖,表示Nacos集群的部署圖。 Nacos集群工作原理 Nacos作為配...
Nacos 作為配置中心,當(dāng)應(yīng)用程序去訪問Nacos動態(tài)獲取配置源之后,會緩存到本地內(nèi)存以及磁盤中。由于Nacos作為動態(tài)配置中心,意味著后續(xù)配置變更之后需要讓所有相關(guān)的客戶...
理解了上述Environment的基本原理后,如何從遠程服務(wù)器上加載配置到Spring的Environment中。 NacosPropertySourceLocator 順著...
Spring Cloud針對Environment的屬性源功能做了增強, 在spring-cloud-contenxt這個包中,提供了PropertySourceLocato...
Environment的中文意思是環(huán)境,它表示整個spring應(yīng)用運行時的環(huán)境信息,它包含兩個關(guān)鍵因素 profiles properties profiles profil...
OpenFeign是一個遠程客戶端請求代理,它的基本作用是讓開發(fā)者能夠以面向接口的方式來實現(xiàn)遠程調(diào)用,從而屏蔽底層通信的復(fù)雜性,它的具體原理如下圖所示。 在今天的內(nèi)容中,我們...
在傳統(tǒng)的單體軟件架構(gòu)中,軟件開發(fā)、測試、運維都是以單個進程為單位。 當(dāng)拆分成微服務(wù)之后,單個應(yīng)用可以被拆分成多個微服務(wù),比如用戶系統(tǒng),可以拆分成基本信息管理、積分管理、訂單管...
Eureka-Server是如何判斷一個服務(wù)不可用的? Eureka是通過心跳續(xù)約的方式來檢查各個服務(wù)提供者的健康狀態(tài)。 實際上,在判斷服務(wù)不可用這個部分,會分為兩塊邏輯。 ...
Eureka Server 為了提供響應(yīng)效率,提供了兩層的緩存結(jié)構(gòu),將 Eureka Client 所需要的注冊信息,直接存儲在緩存結(jié)構(gòu)中,實現(xiàn)原理如下圖所示。 第一層緩存:...
Spring Cloud是一個生態(tài),它提供了一套標(biāo)準(zhǔn),這套標(biāo)準(zhǔn)可以通過不同的組件來實現(xiàn),其中就包含服務(wù)注冊/發(fā)現(xiàn)、熔斷、負(fù)載均衡等,在spring-cloud-common這...
Ribbon的核心作用就是進行請求的負(fù)載均衡,它的基本原理如下圖所示。就是客戶端集成Ribbon這個組件,Ribbon中會針對已經(jīng)配置的服務(wù)提供者地址列表進行負(fù)載均衡的計算,...
Dubbo的出現(xiàn)背景 Dubbo從開源到現(xiàn)在,已經(jīng)出現(xiàn)了接近10年時間,在國內(nèi)各大企業(yè)被廣泛應(yīng)用。 它到底有什么魔力值得大家去追捧呢?本篇文章給大家做一個詳細的說明。 大規(guī)模...
在前面的分析中,Spring Framework一直在致力于解決一個問題,就是如何讓bean的管理變得更簡單,如何讓開發(fā)者盡可能的少關(guān)注一些基礎(chǔ)化的bean的配置,從而實現(xiàn)自...
本篇文章,從Spring1.x到Spring 5.x的迭代中,站在現(xiàn)在的角度去思考Spring注解驅(qū)動的發(fā)展過程,這將有助于我們更好的理解Spring中的注解設(shè)計。 Spri...
要了解Spring Boot的發(fā)展背景,還得從2004年Spring Framework1.0版本發(fā)布開始說起,不過大家都是從開始學(xué)習(xí)Java就使用Spring Framew...
閱讀這篇文章之前,建議先閱讀和這篇文章關(guān)聯(lián)的內(nèi)容。 1. 詳細剖析分布式微服務(wù)架構(gòu)下網(wǎng)絡(luò)通信的底層實現(xiàn)原理(圖解)[https://mp.weixin.qq.com/s?__...