原创 大家都說單測沒啥用,這是真的嗎?

大家好,我是樹哥! 工作了快 10 年了,跟研發小夥伴聊起單測,絕大多數人的反應是 —— 單測沒啥用,寫單測就是爲了應付單測覆蓋率的 KPI 指標。恰好我最近在團隊落地單測相關的內容,經過一段時間的持續迭代,我對單測的看法也從一開始的 沒

原创 一文講清楚 JVM Safe Point

大家好,我是樹哥。 關於 Safe Point 是 JVM 中很關鍵的一個概念,但我估計有不少同學不是很懂。於是今天跟大家來深入聊聊 Safe Point,希望通過這篇文章能解答這樣幾個問題: 什麼是 Safe Point? 爲啥需要

原创 MySQL 不同隔離級別,都使用了什麼鎖?

大家好,我是樹哥。 在上篇文章,我們聊了「MySQL 啥時候會用表鎖,啥時候用行鎖」這個問題。在文章中,我們還留了一個問題,即:如果查詢或更新時的數據特別多,是否從行鎖會升級爲表鎖?此外,還有朋友留言說到:不同的隔離級別可能會用不同的鎖,

原创 怒啃 24 小時,終於搞懂上下文切換!

大家好,我是樹哥。 對於服務器系統來說,上下文切換也是影響系統性能的一個重要因素。深入理解上下文切換的原理,有利於我們做好性能優化工作。今天我將帶大家瞭解下上下文切換的幾種情形,以及其背後發生切換的具體信息,接着介紹一些監測上下文切換指標的

原创 這三大特性,讓 G1 取代了 CMS!

大家好,我是樹哥。 之前我們聊過 CMS 回收器,但那時候我們說 CMS 回收器已經落伍了,現在應該是用 G1 回收器的時候了。那麼 G1 回收器到底有什麼魔力,它比 CMS 回收器相比強在哪裏呢?今天,就讓樹哥帶大家盤一盤! G1 回

原创 深入理解 Spring 事務:入門、使用、原理

大家好,我是樹哥。 Spring 事務是複雜一致性業務必備的知識點,掌握好 Spring 事務可以讓我們寫出更好地代碼。這篇文章我們將介紹 Spring 事務的誕生背景,從而讓我們可以更清晰地瞭解 Spring 事務存在的意義。 接着,我們

原创 一文帶你弄懂 JVM 三色標記算法!

大家好,我是樹哥。 最近和一個朋友聊天,他問了我 JVM 的三色標記算法。我腦袋一愣發現竟然完全不知道!於是我帶着疑問去網上看了幾天的資料,終於搞清楚啥事三色標記算法,它是用來幹嘛的,以及它和 CMS 回收器和 G1 回收器的關係了。今天

原创 一文帶你弄懂 CDN 技術的原理

對於 CDN 這個東西,相信大家都有耳聞,感覺既陌生但又熟悉。最近深入瞭解了一下 CDN,這才發現原來 CDN 如此重要!今天就跟大家科普一下 CDN 是什麼,以及爲啥要有 CDN,最後再講一下 CDN 的工作過程! 瀏覽器的網絡請求 要

原创 如何設計一個分佈式 ID 發號器?

大家好,我是樹哥。 在複雜的分佈式系統中,往往需要對大量的數據和消息進行唯一標識,例如:分庫分表的 ID 主鍵、分佈式追蹤的請求 ID 等等。於是,設計「分佈式 ID 發號器」就成爲了一個非常常見的系統設計問題。今天我將帶大家一起學習一下

原创 關於 CMS 垃圾回收器,你真的懂了嗎?

大家好,我是樹哥。 前段時間有個小夥伴去面試,被問到了 CMS 垃圾回收器的詳細內容,沒答出來。實際上,CMS 垃圾回收器是回收器歷史上很重要的一個節點,其開啓了 GC 回收器關注 GC 停頓時間的歷史。今天,就讓樹哥帶你一起來學一波吧!

原创 接口流量突增,如何做好性能調優?

大家好,我是樹哥! 對於提供接口服務的應用來說,很多都是用 SpringBoot 默認的 Servlet 容器 Tomcat。在一開始上線的時候,由於大多數流量較小,我們也並不會爲 Tomcat 做專門的參數調整。但隨着流量越來越大,應用

原创 MySQL 啥時候用表鎖,啥時候用行鎖?

大家好,我是樹哥。 MySQL Innodb 的鎖可以說是執行引擎的併發基礎了,有了鎖才能保證數據的一致性。衆所周知,我們都知道 Innodb 有全局鎖、表級鎖、行級鎖三種,但你知道什麼時候會用表鎖,什麼時候會用行鎖嗎?雖然對 MySQL

原创 從全局角度,如何設計一個秒殺系統?

大家好,我是樹哥。 秒殺系統的設計是高級職位面試中非常高頻的一道題目,它可以較好地考察候選人的知識體系情況。對於我們來說,學習秒殺系統的設計,能夠讓我們學以致用,設計系統的時候考慮得更加全面。今天就讓樹哥帶你一起來看看怎麼設計一個秒殺系統

原创 系統總出故障怎麼辦,或許你該學學穩定性建設!

大家好,我是樹哥。 說到系統穩定性,不知道大家會想起什麼?我想大多數人會覺得這個詞挺虛的,不知道系統穩定性指的是什麼。一年前的我看到這個詞,也是類似於這樣的感受,大概只知道要消除單點、做好監控報警,但卻並沒有一個體系化的方法論。經過一段時

原创 服務器宕機了,Kafka 消息會丟失嗎?

大家好,我是樹哥。 消息隊列可謂是高併發下的必備中間件了,而 Kafka 作爲其中的佼佼者,經常被我們使用到各種各樣的場景下。隨着 Kafka 而來得,還有三個問題:消息丟失、消息重複、消息順序。今天,樹哥帶大家聊聊消息丟失的問題。 可