原创 【開源項目系列】如何基於 Spring Cache 實現多級緩存(同時整合本地緩存 Ehcache 和分佈式緩存 Redis)

一、緩存 當系統的併發量上來了,如果我們頻繁地去訪問數據庫,那麼會使數據庫的壓力不斷增大,在高峯時甚至可以出現數據庫崩潰的現象。所以一般我們會使用緩存來解決這個數據庫併發訪問問題,用戶訪問進來,會先從緩存裏查詢,如果存在則返回,如果不存在再

原创 【開源項目系列】將自己的開源項目發佈到 Maven 中央倉庫的步驟詳細講解

前言:開源項目 我相信,擁有自己的開源項目是每個程序員心中最想達成的事,不管是小項目還是大項目。當然了,大項目不是每個程序員都要能力完成的;但是小項目,例如自己編寫的 Spring Boot Starter,或者自己編寫的工具類,這些還是挺

原创 【MySQL 原理分析】之 Explain & Trace 深入分析全模糊查詢走索引的原理

一、背景 今天,交流羣有一位同學提出了一個問題。看下圖: 之後,這位同學確實也發了一個全模糊查詢走索引的例子: 到這我們可以發現,這兩個sql最大的區別是:一個是查詢全字段(select *),而一個只查詢主鍵(select id)。

原创 【大白話系列】MySQL 學習總結 之 COMPACT 行格式的設計原理

如果大家對我的 【大白話系列】MySQL 學習總結系列 感興趣的話,可以點擊關注一波。 一、回顧 MySQL 學習總結系列至此已經第七節了。 從大方向:我們已經學習了 MySQL 的架構設計、InnoDB 的架構設計。 從較爲深

原创 【大白話系列】MySQL 學習總結 之 緩衝池(Buffer Pool) 如何支撐高併發和動態調整

如果大家對我的 【大白話系列】MySQL 學習總結系列 感興趣的話,可以點擊關注一波。 一、上節回顧 在上節《 緩衝池(Buffer Pool) 的設計原理和管理機制》中,介紹了緩衝池整體的設計原理。包括幾個比較重要的概念:fr

原创 【MySQL 線上 BUG 分析】之 多表同字段異常:Column ‘xxx’ in field list is ambiguous

一、生產出錯! 今天早上11點左右,我在工作休息之餘,擼了一下貓。突然,工作羣響了,老大在裏面說:APP出錯了! 媽啊,這太嚇人了,因爲只是說了出錯,但是沒說錯誤的信息。所以我趕緊到APP上看看。 這果然是出錯了,而且還是簡單

原创 【大白話系列】MySQL 學習總結 之 Java系統如何和 MySQL 打交道?

如果大家對我的 【大白話系列】MySQL 學習總結系列 感興趣的話,可以點擊關注一波。 一、MySQL驅動 我們如果在 Java 系統裏要訪問 MySQL,我們只需要引入一個 MySQL 的驅動即可,然後通過 MySQL 驅動和

原创 【大白話系列】MySQL 學習總結 之 緩衝池(Buffer Pool) 的設計原理和管理機制

如果大家對我的 【大白話系列】MySQL 學習總結系列 感興趣的話,可以點擊關注一波。 一、緩衝池(Buffer Pool)的地位 在《MySQL 學習總結 之 InnoDB 存儲引擎的架構設計》中,我們就講到,緩衝池是 Inn

原创 【大白話系列】MySQL 學習總結 之 MySQL 的架構設計

一、MySQL還是個黑盒子 我們都知道,只要我們系統引入了 MySQL 驅動和連接池,就能從數據庫連接池獲取一個數據庫連接,然後就可以執行增刪改查的操作了。 可是我們並不知道 MySQL 裏面是怎麼執行的,例如我們執行了 inse

原创 【Spring Cloud 源碼解讀】之 【如何配置好OpenFeign的各種超時時間!】

關於Feign的超時詳解: 在Spring Cloud微服務架構中,大部分公司都是利用Open Feign進行服務間的調用,而比較簡單的業務使用默認配置是不會有多大問題的,但是如果是業務比較複雜,服務要進行比較繁雜的業務計算,那後臺很有可能

原创 【Kafka 源碼解讀】之 【代碼沒報錯但是消息卻發送失敗!】

聊聊最近,2020年,在2019年的年尾時,大家可謂對這年充滿新希望,特別是有20200202這一天。可是澳洲長達幾個月的大火,新型冠狀病毒nCoV的發現,科比的去世等等事情,讓大家感到相當的無奈,生命是如此的脆弱,明天又是如此的未知。但是

原创 【Spring Boot 源碼解讀】之 【爲何引入了 Jedis 依賴最後用的還是 Lettuce 客戶端?】

1、Spring Boot 2.x 的兩種 Redis 客戶端 首先,我們都知道,從 Spring Boot 2.x 開始 Lettuce 已取代 Jedis 成爲首選 Redis 的客戶端。當然 Spring Boot 2.x 仍然支持

原创 【MySQL 原理分析】之 Trace 分析 order by 的索引原理

一、背景 昨天早上,交流羣有一位同學提出了一個問題。看下圖: 我不是大佬,而且當時我自己的想法也只是猜測,所以並沒有回覆那位同學,只是接下來自己做了一個測試驗證一下。 他只簡單了說了一句話,就是同樣的sql,一個沒加 order by 就

原创 【大白話系列】MySQL 學習總結 之 MySQL Server 的 binlog 組件

一、上節回顧 上節我們講到,建議將 redo log 的刷盤策略設置爲1:即提交事務時,強制將 redo log buffer 裏的 redo log 刷入到磁盤後纔算事務提交成功。 但是我們都知道,redo log buffer 是 In

原创 【Spring Cloud 源碼解讀】之 【這也太神奇了,RestTemplate加上一個@LoadBalanced註解就能實現負載均衡!】

前提概要: 前天,有個前端大佬問了我兩個問題:爲啥不引入Ribbon依賴就能使用Ribbon?爲啥RestTemplate加上@LoadBalanced註解就能負載均衡了?我也表示很疑惑,而我自己其實也真的沒去了解過,所以趁着工作不太忙,趕