原创 從源碼分析RocketMQ系列-Producer的SendResult來自哪裏?

導語   對於消息中間件大家都應該不陌生,現在比較主流的消息中間件有Kafka、RabbitMQ、RocketMQ、ActiveMQ等等。前段時間花了很長時間分析了關於RocketMQ源碼,之前也分享了關於RabbitMQ的相關

原创 從源碼分析RocketMQ系列-消息拉取PullMessageProcessor詳解

導語   在之前的分析中分析了關於SendMessageProcessor,並且提供了對應的源碼分析分析對於消息持久化的問題,下面來看另外一個PullMessageProcessor,在RocketMQ中比較重要的一個概念就是消

原创 從源碼分析RocketMQ系列-Remoting通信架構源碼詳解

導語   這篇博客要從官方給出的一張圖開始說起,之前的分析我們都是簡單的分析了一下消息傳遞的流程,以及消息傳遞流程過程中出現的一些類的封裝,並且提出,所有的封裝操作都是爲了更加高效的服務於NameServer、Broker、Pr

原创 RabbitMQ學習筆記-RabbitMQ的運轉流程

導語   在之前的分享中介紹了有關RabbitMQ的架構模型以及相關的術語,這裏就來回顧一下整個的流程。 文章目錄RabbitMQ整體架構Connection和Channel的概念AMQP協議介紹AMQP協議總結 Rabbit

原创 從源碼分析RocketMQ系列-Producer的SendResult的封裝

導語   通過之前博客的Producer的SendResult來自哪裏分析到發送的核心機制,瞭解了在發送之前被使用的幾個Hook,以及發送消息的RequestHeader的封裝,但是這些封裝都被一個this.mQClientFa

原创 從源碼分析RocketMQ系列-Consumer消息接收邏輯

導語   在前面的分析中分析了關於Producer發送消息的邏輯,並且追蹤到了在DefaultMQPushConsumerImpl 類中的有對應的消息監聽方法,這個消息監聽的方法是從Consumer調用 start()方法就開始

原创 Java高併發編程詳解系列-線程上下文設計模式及ThreadLocal詳解

導語   在之前的分享中提到過一個概念就是線程之間的通信,都知道在線程之間的通信是一件很消耗資源的事情。但是又不得不去做的一件事情。爲了保證多線程線程安全就必須進行線程之間的通信,保證每個線程獲取到的數據都是一樣的。那麼就需要知

原创 JVM優化系列-JVM G1 垃圾收集器

導語   G1回收器是在JDK1.7中正式使用的一種全新的垃圾回收器,它的目標是爲了取代CMS回收器。G1回收器擁有獨特的垃圾回收策略,和之前的任意的一種垃圾回收器都有所不同,但是從分代策略上來說依然是屬於分代垃圾回收器,也分爲

原创 JVM優化系列-Stop-The-World實戰

導語   垃圾收集器的主要任務是識別和回收垃圾對象進行內存清理,爲了讓垃圾回收器可正常高效執行,在大部分的情況下會請求系統進入到一個停頓階段,在這個停頓階段對所欲應用進程進行終止,然後執行垃圾清理操作,只有所有應用線程都停止了纔

原创 從源碼分析RocketMQ系列-Producer的invokeSync()方法

導語   在之前的博客中通過對於Producer中SendResult的跟蹤找到了在Client模塊下的所有的封裝以及消費的過程,深入到對接Remoting模塊的接口中對消息的封裝以及發送回收等。但是對於具體後續操作還是沒有跟進

原创 垃圾回收算法與實現系列-學習GC之前的準備工作

導語   在學習垃圾回收算法之前,首先需要了解什麼是Heap、什麼是Root、什麼是Object、什麼是Stack、什麼是Pointer,這寫概念都是什麼,爲什麼要在垃圾回收算法中使用,使用這些東西有什麼樣的好處,爲什麼這樣使用

原创 垃圾回收算法與實現系列-GC 標記-清除算法

導語   在GC 中最重要的算法就是GC標記-清除算法(Mark-Sweep GC)。在很多的場景下都還是在使用這個算法來進行垃圾回收操作。就如如同它的名字一樣先標記,然後清除。下面就來看看標記清除算法到底如何實現。 文章目錄

原创 從源碼分析RocketMQ系列-MQClientInstance類詳解

導語   在之前的分析中,看到有一個類MQClientInstance,這個無論是在Producer端還是在Consumer端都是很重要的一個類,很多的功能都是從這個類發起的,這邊分享中就來詳細的看看這個類的功能。 文章目錄基

原创 Zookeeper深入系列-從Zookeeper中深入JMX原理

導語    JMX(Java Management Extensions,即Java管理擴展)是一個爲應用程序、設備、系統等植入管理功能的框架。JMX可以跨越一系列異構操作系統平臺、系統體系結構和網絡傳輸協議,靈活的開發無縫集成

原创 RocketMQ實戰系列-RocketMQ命令詳解

導語   之前分析了關於RocketMQ源碼的東西,接下來的階段就是進入到實戰的相關係列操作中,在這個系列中也會繼續從源碼的角度入手,深入的分析,在RocketMQ中的編程思想。下面就來介紹一下在RocketMQ中使用到的相關命