原创 Kafka 雜談

開始之前 首先,此篇文章會有很多地方會和 RocketMQ 比較,不太熟悉 RocketMQ 可以去看看我之前寫的RocketMQ基礎概念剖析&源碼解析,先有個大概的印象,可能會幫助你更好的理解 Kafka。 概覽 什麼是 Kafka?

原创 磁盤原理簡要分析

歡迎 wx 關注 SH的全棧筆記 磁盤這玩意兒,即使不作爲一個開發人員我們也會經常跟它打交道。比如你家裏的臺式機,或者拿來辦公的電腦,再比如你裝個操作系統,會涉及到對磁盤進行分區。 而作爲開發人員,自然更加需要關注磁盤。 平時你開發的代

原创 簡單瞭解 TiDB 架構

一、前言 大家如果看過我之前發過的文章就知道,我寫過很多篇關於 MySQL 的文章,從我的 Github 彙總倉庫 中可以看出來: 可能還不是很全,算是對 MySQL 有一個淺顯但較爲全面的理解。之前跟朋友聊天也會聊到,基於現有的微服務架

原创 MySQL 表數據多久刷一次盤?

前言 事情是這樣的,在某乎的邀請回答中看到了這個問題: - 然後當時我沒多想就啪一下寫下來這樣的答案: 這個其實要通過 MySQL 後臺線程來刷的,在 Buffer Pool 中被修改的過的 Page(頁)都會被標記成髒頁,放到一個鏈表(

原创 詳細瞭解 synchronized 鎖升級過程

前言 首先,synchronized 是什麼?我們需要明確的給個定義——同步鎖,沒錯,它就是把鎖。 可以用來幹嘛?鎖,當然當然是用於線程間的同步,以及保護臨界區內的資源。我們知道,鎖是個非常籠統的概念,像生活中有指紋鎖、密碼鎖等等多個種

原创 Java NIO Selector 的使用

之前的文章已經把 Java 中 NIO 的 Buffer、Channel 講解完了,不太瞭解的可以先回過頭去看看。這篇文章我們就來聊聊 Selector —— 選擇器。 首先 Selector 是用來幹嘛的呢?不熟悉這個概念的話我們其實可以

原创 Java NIO Channel 使用

Java NIO 中的 Channel 分類: FileChannel SocketChannel ServerSocketChannel DatagramChannel FileChannel: 主要用於文件的讀寫,可以從磁盤上讀取

原创 圖解四種 IO 模型

最近越來越認爲,在講解技術相關問題時,大白話固然很重要,通俗易懂,讓人有想讀下去的慾望。但幾乎所有的事,都有兩面性,在看到其帶來好處時,不妨想想是否也引入了不好的地方。 例如在博客中,過於大白話的語言的確會讓你閱讀起來更加順暢,也更容易理解

原创 玩轉 ByteBuffer

爲什麼要講 Buffer 首先爲什麼一個小小的 Buffer 我們需要單獨拎出來聊?或者說,Buffer 具體是在哪些地方被用到的呢? 例如,我們從磁盤上讀取一個文件,並不是直接就從磁盤加載到內存中,而是首先會將磁盤中的數據複製到內核緩衝區

原创 用戶態和內核態的區別是啥

這篇文章的深度不會太深,重點就是了解一下用戶態和內核態的區別就 OK 了。 先給不瞭解內核態、用戶態的簡單介紹一下,我們在什麼時候會提到這兩個概念。 例如我們的應用程序需要從磁盤讀取某個文件的數據,此時並不是直接從磁盤加載到應用內存中,

原创 關於 RocketMQ ClientID 相同引發的消息堆積的問題

首先,造成這個問題的 BUG RocketMQ 官方已經在 3月16號 的這個提交中修復了,這裏只是探討一下在修復之前造成問題的具體細節,更多的上下文可以參考我之前寫的 《RocketMQ Consumer 啓動時都幹了些啥?》 ,這篇文章

原创 RocketMQ Consumer 啓動時都幹了些啥?

可能我們對 RocketMQ 的消費者認知乍一想很簡單,就是一個拿來消費消息的客戶端而已,你只需要指定對應的 Topic 和 ConsumerGroup,剩下的就是隻需要: 接收消息處理消息 就完事了。 簡略消費模型 當然,可能在實際業務

原创 請求數據包從發送到接收,都經歷什麼?

我的 個人網站 上線了,上面可以更好的檢索歷史文章,並且可以對文章進行留言,歡迎大家訪問 之前講了「從輸入 URL 再到瀏覽器成功看到界面」中的域名是如何變成 IP 地址的,瞭解了 DNS 相關的東西。這篇文章就聊聊發生在 DNS 解析

原创 你的域名是如何變成 IP 地址的?

我的 個人網站 上線了,上面可以更好的檢索歷史文章,並且可以對文章進行留言,歡迎大家訪問 可能大家都知道或者被問過一個問題,那就是很經典的「從瀏覽器輸入 URL 再到頁面展示,都發生了什麼」。這個問題雖然簡單,但是真的能夠從回答的各種細

原创 MySQL 不完全入門指南

由於 MySQL 的整個體系太過於龐大,文章的篇幅有限,不能夠完全的覆蓋所有的方面。所以我會盡可能的從更加貼進我們日常使用的方式來進行解釋。 小白眼中的 MySQL 首先,對於我們來說,MySQL 是個啥?我們從一個最簡單的例子來回顧一下。