原创 從硬件級別再看可見性和有序性

  前言 王子之前的文章對於併發編程中的可見性問題已經有了一個初步的介紹,總結出來就是CPU的緩存會導致可見性問題。 這樣的解釋其實是沒有問題的,但這裏說的“緩存”其實一個籠統的概念,緩存其實指的是寄存器、高速緩存和寫緩衝器。 今天我們就從

原创 JAVA內存模型和Happens-Before規則

  前言 上一篇文章王子給大家介紹了併發編程中比較關心的三個核心問題,可見性、有序性和原子性。 今天我們繼續來探索併發編程的內容,聊一聊JAVA的內存模型和Happens-Before規則。   JAVA內存模型 這裏的JAVA內存模型指的

原创 你還不懂可見性、有序性和原子性?

  前言 今天開始,王子準備開始一個新的專欄:併發編程專欄。 併發編程無論在哪門語言裏,都屬於高級篇,面試中也嚐嚐會被問到。想要深入理解併發編程機制確實不是一件容易的事,因爲它涉及到計算機底層和操作系統的相關知識,如果對這部分知識不是很清楚

原创 探索RocketMQ的重複消費和亂序問題

  前言 在之前的MQ專題中,我們已經解決了消息中間件的一大難題,消息丟失問題。 但MQ在實際應用中不是說保證消息不丟失就萬無一失了,它還有兩個令人頭疼的問題:重複消費和亂序。 今天我們就來聊一聊這兩個常見的問題,看看RocketMQ是如何

原创 JVM常用調優工具介紹

  前言 王子在之前的JVM文章中已經大體上把一些原理性問題說清楚了,今天主要是介紹一些實際進行JVM調優工作的工具和命令,不會深入講解,因爲網上資料很多,篇幅可能不長,但都是實用的內容,小夥伴們有不清楚的可以自行查找資料。   jstat

原创 探索G1垃圾回收器

  前言 最近王子因爲個人原因有些忙碌,導致文章更新比較慢,希望大家理解,之後也會持續和小夥伴們一起共同分享技術乾貨。 上篇JVM的文章中我們對ParNew和CMS垃圾回收器已經有了一個比較透徹的認識,感興趣的小夥伴可以去回看一下探索Par

原创 RocketMQ消息丟失解決方案:同步刷盤+手動提交

  前言 之前我們一起了解了使用RocketMQ事務消息解決生產者發送消息時消息丟失的問題,但使用了事務消息後消息就一定不會丟失了嗎,肯定是不能保證的。 因爲雖然我們解決了生產者發送消息時候的消息丟失問題,但也只是保證Broker正確的接收

原创 大白話聊OSI七層模型和TCP/IP四層模型

  前言 今天和大家聊的是一個比較基礎的問題,OSI七層模型和TCP/IP四層模型。 小夥伴們可能有疑問,這個東西還用寫文章嗎,太基礎了吧,網上文章多的是,隨便一搜索就能找到。 確實是這樣,網上資料確實很多,但是如果面試官問你這個問題,你能

原创 探索ParNew和CMS垃圾回收器

  前言 上篇文章我們一起分析了JVM的垃圾回收機制,瞭解了新生代的內存模型,老年代的空間分配擔保原則,並簡單的介紹了幾種垃圾回收器。詳細內容小夥伴們可以去看一下我的上篇文章:秒懂JVM的垃圾回收機制。 今天我們就來探索一下,ParNew和

原创 秒懂JVM的垃圾回收機制

  前言 閱讀過王子之前JVM文章的小夥伴們,應該已經對JVM的內存分佈情況有了一個清晰的認識了,今天我們就接着來聊聊JVM的垃圾回收機制,讓小夥伴們輕鬆理解JVM是怎麼進行垃圾回收的。   複製算法、Eden區和Survivor區 首先我

原创 RocketMQ消息丟失解決方案:事務消息

  前言 上篇文章,王子通過一個小案例和小夥伴們一起分析了一下消息是如何丟失的,但沒有提出具體的解決方案。 我們已經知道發生消息丟失的原因大體上分爲三個部分: 1.生產者發送消息到MQ這一過程導致消息丟失 2.MQ自己發生故障導致消息丟失

原创 RocketMQ的消息是怎麼丟失的

  前言 通過之前文章的閱讀,有關RocketMQ的底層原理相信小夥伴們已經有了一個比較清晰的認識。 那麼接下來王子想跟大家討論一個話題,如果我們的項目中引入了MQ,勢必要面對的一個問題,就是消息丟失問題,今天我們就來聊聊消息是怎麼丟失的。

原创 輕鬆理解JVM的分代模型

  前言 上篇文章我們一起對jvm的內存模型有了比較清晰的認識,小夥伴們可以參考JVM內存模型不再是祕密這篇文章做一個複習。 本篇文章我們將針對jvm堆內存的分代模型做一個詳細的解析,和大家一起輕鬆理解jvm的分代模型。 相信看過其他文章的

原创 深入研究RocketMQ消費者是如何獲取消息的

  前言 小夥伴們,國慶都過的開心嗎?國慶後的第一個工作日是不是很多小夥伴還沉浸在假期的心情中,沒有工作狀態呢? 那王子今天和大家聊一聊RocketMQ的消費者是如何獲取消息的,通過學習知識來找回狀態吧。 廢話不多說,我們開始吧。   消費

原创 大白話談JVM的類加載機制

  前言 我們很多小夥伴平時都是做JAVA開發的,那麼作爲一名合格的工程師,你是否有仔細的思考過JVM的運行原理呢。 如果懂得了JVM的運行原理和內存模型,像是一些JVM調優、垃圾回收機制等等的問題我們纔能有一個更清晰的概念。 爲了走進JV