原创 JDK SPI 源碼解讀

本文首發於個人微信公衆號《andyqian》, 期待你的關注! 前言 在之前的文章《Seata 之 config 模塊源碼解讀》中提到了Microkernel + Plugin 的架構模式。如果對它還不熟悉的話,沒關係。我們可以簡單的

原创 Java 基本功 之 AQS

本文首發於個人微信公衆號《andyqian》,期待與你相遇 ~  前言   在之前的文章《Java 基本功 之 CAS 》中介紹了CAS的概念以及原理,今天來介紹 Java concurrent.locks 包 中的基礎組件AQS -

原创 MySQL InnoDB 鎖事

本文首發於個人微信公衆號《andyqian》,  期待你的關注  ~ 前言 在數據庫中,通常通過鎖來解決併發下數據一致性問題,從而避免數據產生髒亂。在保證數據一致性問題的前提下,通過鎖範圍又分爲不同種類,在 MySQL 中,存儲引擎就

原创 軟件設計實踐

本文首發於個人微信公衆號《andyqian》, 期待你的關注! 前言   拿破崙曾經說過:“不想當將軍的士兵不是好士兵”。而在軟件行業中,幾乎每個程序員心裏都有一個成長爲架構師的夢想。程序員與架構師之間,不僅僅是角色的轉變,更多的是知

原创 Java 代碼中幾類典型的 "壞味道"

本文首發於個人微信公衆號《andyqian》, 關注即可獲得一線互聯網內推! 前言 最近一段時間進行了部分代碼的code review。其中有 review 的,也有被review的。在這過程中發現了許多問題,而其中就包含許多本不該發

原创 Seata 之 config 模塊源碼解讀

本文首發於個人微信公衆號《andyqian》,關注即可獲取一線互聯網內推機會! 前言 我們在編寫項目過程中,配置文件幾乎是標配,從最簡單且最常用的 application.properties 文件,到現在集羣環境下的配置中心。也算是

原创 接口設計的五點建議!

本文首發於個人微信公衆號《andyqian》, 期待你的關注! 前言 接口是目前:前後端交互(Rest),系統交互(RPC)最普遍的一種方式。一個好的接口,應該清晰易懂,職責明確,易於維護。反之,則會造成很多困擾。特別是Open AP

原创 Seata 分佈式事務

本文首發於個人微信公衆號《andyqian》, 期待你的關注~ 前言 上一篇文章《Seata 之 rm-datasource 源碼解讀》發出後。有很多同學對 Seata 是什麼還不夠了解,今天我們就起來認識一下它。 簡介 Seata

原创 Seata 之 rm-datasource 源碼解讀

本文首發於個人微信公衆號《andyqian》, 期待你的關注! 前言 這篇文章主要講述的是分佈式事務 seata 框架的 rm - datasource 模塊。文章會按照以下幾點進行講解: 簡介 結構 源碼解析 涉及的設計模式 後續的

原创 你所不知道的 BigDecimal

本文首發於個人微信公衆號《andyqian》,期待你的關注~ 前言 在Java中,我們通常使用 BigDecimal 類型來表示金額,特別是在金融,財務系統中,使用的特別多。例如:轉賬金額,手續費等等。今天就一起來認識下BigDeci

原创 Dubbo 線程池源碼解析

本文首發於個人微信公衆號《andyqian》,期待你的關注~ 前言 之前文章《Java線程池ThreadPoolExecutor》《ThreadPoolExecutor 原理解析》中,分別講述了ThreadPoolExecutor 的

原创 軟件之路 之 項目外包

本文首發於個人微信公衆號《andyqian》, 期待你的關注~ 一   前兩天,被一篇題爲《貧困縣的4000萬是怎麼花的》的文章刷屏了。內容簡直精彩的不像話,可惜很快被刪除了,其原因不得而知。感興趣的朋友,可以去搜索看看。我看過文章後

原创 ThreadPoolExecutor 原理解析

本文首發於個人公衆號《andyqian》,期待你的關注 前言   在上一篇文章《Java線程池ThreadPoolExecutor》中描述了ThreadPoolExecutor的基本概念,以及一些常用方法。這對於我們來說,是遠遠不夠的,今

原创 系統設計的幾點思考

首發於個人公衆號《andyqian》,期待你的關注! 前言   又有好一陣子沒有更新文章了,今天聊聊系統設計的幾點思考。對於我們來說,始終會獨自設計,研發,迭代系統。爲系統的演進,整個生命週期負責。而負責的系統到底處於什麼狀態?是否健康?

原创 Java線程池ThreadPoolExecutor

本文首發於個人微信公衆號《andyqian》,關注免費獲取Java學習資料   前言   多線程一直是Java進階的必修課。在Java中,我們很早就知道可以通過 Thread 類和 Runnable 接口來實現多線程。與之有着類似職責的數