原创 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。        二、這也是爲了以後介