原创 5 分鐘精通一致性 Hash

起源 在1997年由麻省理工學院提出的一種分佈式哈希(DHT)實現算法,設計目標是爲了解決因特網中的熱點(Hot spot)問題 性質 平衡性 單調性 分散性 負載 平滑性 考慮因素 數據的均衡性:計算 Hash 擴容:減少

原创 架構設計-第三週作業

請在草稿紙上手寫一個單例模式的實現代碼,拍照提交作業。 雙重檢測 /** * @author liuwenxue * @date 2020-06-23 */ public class DoubleLockSingleton

原创 架構設計作業 第 4 周

作業一: 一個典型的大型互聯網應用系統使用了哪些技術方案和手段,主要解決什麼問題?請列舉描述。 單機時代 應用服務器:Spring + Tomcat + Mybatis 此外,通過池化技術提高數據庫的 TPS 和 QPS 應用服

原创 Spring 核心原理 5 分鐘: spring 處理請求的主流程是怎樣的?

Spring 中整個處理請求的主流程是啥?經常進行 spring 開發,大家知道攔截器,過濾器,還有具體的 Controller 處理。大體的順序也能理清楚。但是不看源碼總覺得不踏實。那麼 spring 到底是如何處理的呢?事實上

原创 5 分鐘掌握 Java 源碼分析:Integer 源碼解讀

日常使用的 Integer ,設計上也有很多亮度。 設計 緩存設計 /** * Cache to support the object identity semantics of autoboxing for v

原创 5 分鐘掌握 JDK 源碼之 PriorityBlockingQueue

PriorityBlockingQueue PriorityQueue 的線程安全版,建議先閱讀 PriorityQueue 初始化 初始容量 11,因此,如果能預估元素個數,最好能設置元素個數,避免元素拷貝 支持從 Collec

原创 5 分鐘掌握 Java 核心之 一:你真的瞭解 Java 麼?

問題 java 是一門多範式的語言,你知道麼?它支持哪些編程範式? JRE 和 JDK 分別指什麼?它們的關係是咋樣的? 爲什麼安裝 JDK 的時候會安裝兩個 JRE? Java8 到 Java13 都有哪些重大變化?JRE從哪

原创 5 分鐘掌握 JDK 源碼之 ArrayBlockingQueue

ArrayBlockingQueue 初始化 有界隊列,隊列容量一旦初始化不能再改變 支持對鎖的公平性進行設置 容量擴展 無 實現原理 用一個固定長度的數組保存隊列元素 用 putIndex 和 takeIndex 分別標

原创 5 分鐘掌握 JDK 源碼之 LockSupport

問題 爲什麼LockSupport 是核心基礎類? 如果在wait()之前執行了notify()會怎樣? 如果在park()之前執行了unpark()會怎樣? 寫出分別通過wait/notify和LockSupport的park

原创 5 分鐘掌握 JDK 源碼之 PriorityQueue

PriorityQueue 初始化 初始容量 11,因此,如果能預估元素個數,最好能設置元素個數,避免元素拷貝 支持從 Collection,SortedSet,PriorityQueue 等初始化 容量擴展 如果容量小於 64

原创 mybatis源碼解析之TypeAlias

mybatis-typealias 自定義類型別名的方式 方法一:自定義註解 @Alias("user") class User { String name; } 方法二:定義別名 <typeAliases> <ty

原创 mybatis源碼解析之 TypeHandler

TypeHanler MyBatis 在預處理語句(PreparedStatement)中設置一個參數或者從結果集中取出一個值時,都會用類型處理器將獲取的值以合適的方式轉換成 Java 類型。Mybatis默認爲我們實現了許多Ty

原创 mybatis 源碼解析之 cache

預備知識 對 Mybatis 的執行流程有一定的瞭解。 一級緩存 在讀多寫少的情況下,減少了網絡的開銷,顯著提升性能。 配置 public enum LocalCacheScope { SESSION,STATEMENT }

原创 如何做好技術分分享

如何看待技術分享 是領導強加給我的任務麼? 覺得浪費時間,不如安安心心寫代碼? 這是一次難得的機會,要好好把握? 我的理解:技術分析是一次難得的機會,讓大家瞭解你的能力,才能把更多的機會交給你,才能會更信賴你。 想要中獎,至少

原创 Mysql 系列之:如何正確地對 Mysql 實例做健康檢查

問題 select 1 做節點健康檢查有啥問題? 如何正確地做實例監控檢查? Mysql 高可用架構 Mysql 的 HA 架構包括一主一備、雙主、一主一備多從。既然是高可用,必然涉及切換。 主備切換包括兩種場景 主動切換: