原创 Spring Boot自動配置原理與實踐(二)

前言   在之前的博文(Spring Boot自動配置原理與實踐(一))中,已經介紹了Spring boot的自動配置的相關原理與概念,本篇主要是對自動配置的實踐,即自定義Starter,對原理與概念加深理解。   本篇是我在實際工作中配

原创 MySQL是怎麼解決幻讀問題的?

前言   我們知道MySQL在可重複讀隔離級別下別的事物提交的內容,是看不到的。而可提交隔離級別下是可以看到別的事務提交的。而如果我們的業務場景是在事物內同樣的兩個查詢我們需要看到的數據都是一致的,不能被別的事物影響,就使用可重複讀隔離級

原创 深入學習Netty(5)——Netty是如何解決TCP粘包/拆包問題的?

前言   學習Netty避免不了要去了解TCP粘包/拆包問題,熟悉各個編解碼器是如何解決TCP粘包/拆包問題的,同時需要知道TCP粘包/拆包問題是怎麼產生的。   在此博文前,可以先學習瞭解前幾篇博文: 深入學習Netty(1)——傳統

原创 深入學習Netty(4)——Netty編程入門

前言   從學習過BIO、NIO、AIO編程之後,就能很清楚Netty編程的優勢,爲什麼選擇Netty,而不是傳統的NIO編程。本片博文是Netty的一個入門級別的教程,同時結合時序圖與源碼分析,以便對Netty編程有更深的理解。   在

原创 深入學習Netty(2)——傳統NIO編程

前言   學習Netty編程,避免不了從瞭解Java 的NIO編程開始,這樣才能通過比較讓我們對Netty有更深的瞭解,才能知道Netty大大的好處。傳統的NIO編程code起來比較麻煩,甚至有遺留Bug,但其中最基本的思想是一致的。  

原创 深入學習Netty(3)——傳統AIO編程

前言   之前已經整理過了BIO、NIO兩種I/O的相關博文,每一種I/O都有其特點,但相對開發而言,肯定是要又高效又簡單的I/O編程纔是真正需要的,在之前的NIO博文(深入學習Netty(2)——傳統NIO編程)中就已經介紹過NIO編程

原创 深入學習Netty(1)——傳統BIO編程

前言   之前看過Dubbo源碼,Nacos等源碼都涉及到了Netty,雖然遇到的時候查查資料,後面自己也有私下學習Netty並實踐,但始終沒有形成良好的知識體系,Netty對想要在Java開發上不斷深入是十分重要的。所以藉此博客平臺記錄

原创 分佈式事務與Seate框架(3)——Seata的AT模式實現原理

前言       在上兩篇博文(分佈式事務與Seate框架(1)——分佈式事務理論、分佈式事務與Seate框架(2)——Seata實踐)中已經介紹並實踐過Seata AT模式,這裏一些例子與概念來自這兩篇(特別是第一篇理論部分),如果有不

原创 MySQL是如何實現事物隔離?

前言   衆所周知,MySQL的在RR隔離級別下查詢數據,是可以保證數據不受其它事物影響,而在RC隔離級別下只要其它事物commit後,數據都會讀到commit之後的數據,那麼事物隔離的原理是什麼?是通過什麼實現的呢?那肯定是通過MVCC

原创 分佈式事務與Seate框架(2)——Seata實踐

前言   在上一篇博文(分佈式事務與Seate框架(1)——分佈式事務理論)中瞭解了足夠的分佈式事務的理論知識後,到了實踐部分,在工作中雖然用到了Seata,但是自己卻並沒有完全實踐過,所以自己私下花點時間實踐以加深理解,實際上在實踐過程

原创 分佈式事務與Seate框架(1)——分佈式事務理論

前言   雖然在實際工作中,由於公司與項目規模限制,實際上所謂的微服務分佈式事務都不會涉及,更別提單獨部署構建Seata集羣。但是作爲需要不斷向前看的我,還是有必要記錄下相關的分佈式事務理論與Seate框架,甚至Seate框架的源碼分析,

原创 學習JUC源碼(3)——Condition等待隊列(源碼分析結合圖文理解)

前言   在Java多線程中的wait/notify通信模式結尾就已經介紹過,Java線程之間有兩種種等待/通知模式,在那篇博文中是利用Object監視器的方法(wait(),notify()、notifyAll())實現的,然而在實際生

原创 Sentinel Dashboard(基於1.8.1)流控規則持久化到Nacos——涉及部分Sentinel Dashboard源碼改造

前言   之前雖然也一直在使用sentinel實現限流熔斷功能,但卻沒有好好整理之前看的源碼與資料,今天有時間將之前自己整理過的資料寫成一篇博文,或者是是一篇關於Sentinel(基於目前最近版本1.8,如果沒有特殊說明,都指最新1.8版

原创 學習JUC源碼(2)——自定義同步組件

前言   在之前的博文(學習JUC源碼(1)——AQS同步隊列(源碼分析結合圖文理解))中,已經介紹了AQS同步隊列的相關原理與概念,這裏爲了再加深理解ReentranLock等源碼,模仿構造同步組件的基本模式,編寫不可重複的互斥鎖Mut

原创 學習JUC源碼(1)——AQS同步隊列(源碼分析結合圖文理解)

前言   最近結合書籍《Java併發編程藝術》一直在看AQS的源碼,發現AQS核心就是:利用內置的FIFO雙向隊列結構來實現線程排隊獲取int變量的同步狀態,以此奠定了很多併發包中大部分實現基礎,比如ReentranLock等。今天又是週