原创 UnsupportedOperationException異常分析
直接先說結論:1不會報錯,2、3都會報UnsupportedOperationException錯 源碼分析: ①先看看ArrayList的add方法的原理 看上去很簡單,就是數組賦值,但是注意這個ArrayList的包名:java
原创 mysql ACID以及隔離級別原理(innodb)
一個被老生常談的問題,但是國內文章複製粘貼以及人云亦云太多,我算是做個總結。 一、髒讀、不可重複讀、幻讀 ①髒讀:首先我們要知道mysql是可以支持事務併發執行的,那麼一個事務A查詢一條id=1,name=“java”數據,這時候
原创 阿里sentinel分析
一、這是什麼?可以做什麼? sentinel可以對接口、系統提供限流,熔斷降級,系統保護等功能的一個工具。 二、跟網關、hystrix區別 網關區別:網關雖然也可以做到限流,但是隻是做到client到server的限流,我們服務一般是由一
原创 zuul源碼解析
zuul——springcloud的網關。如果看過我之前的博客,可以知道feign的坑是比較多的,但是網關這塊做的是比較好的,不管是性能還是靈活性。 一、網關的作用: ①路由 ②利用filter可以實現限流(也
原创 Feign源碼解析
首先我要說的是springcloud沒有rpc,這就涉及rpc和微服務的區別。springcloud的模塊通信工具feign跟httpclient和okhttp是一樣的東西,都是對http請求封裝的工具,其實feign可以選擇httpcl
原创 攜程apollo配置中心介紹及安裝
分佈式配置中心有很多,springcloud的config、百度的disconfig、攜程的apollo、淘寶的diamond。由於攜程的apollo極少的侵入性,以及面對springcloud開發,所以我項目技術選型最終定爲ap
原创 ThreadLocal和InheritableThreadLocal解析
一、兩者區別: ThreadLocal:爲每一個線程創建一個副本,每個副本線程隔離。但是他不支持繼承。 InheritableThreadLocal:支持繼承。這裏的繼承不是extends,是指線程的繼承。也就是說新起一個線程
原创 Eureka源碼解析與配置
Eureka只要分爲2部分,一個server,一個是client(包含生產者和消費者)。 Eureka client: ①從@EnableEurekaClient註解開始看 ②查看@EnableDiscovery
原创 封裝springboot基礎框架(含demo)
寫此篇博文目的有2個: 一、我想做一個最小化框架,包括配置、攔截器,工具包等等都一應具備,使開發可以直接開始編寫業務代碼,所以我的demo的名字叫做springboot-base。 二、這也是爲了以後介