原创 RocketMQ存儲篇——事務消息相關的文件

在RocketMQ-3.1.9版本中,有TransactionStateService類,用於存儲每條事務消息的狀態。在該類中有兩個成員變量tranRedoLog:ConsumeQueue和tranStateTable: Mape

原创 Dubbo——過濾器鏈

過濾器鏈各類協議protocol類均是由ProtocolFilterWrapper類封裝的,ProtocolFilterWrapper在服務的暴露與引用的過程中根據KEY是PROVIDER還是CONSUMER來構建服務提供者與消費者的調用

原创 Dubbo——動態適配器類

部分接口的動態適配器類

原创 RocketMQ存儲篇——整體結構以及MappedFile講解

存儲篇 大文件的磁盤操作——MapedFile 1 存儲篇 1.1 整體結構 存儲層的結構如下圖所示,業務層均通過DefaultMessageStore類提供的方法作爲統一入口訪問底層文件。RocketMQ

原创 RocketMQ——Name Server篇

1 NameServer的功能 1、每個Broker啓動的時候會向Namesrv發送註冊請求,Namesrv接收Broker的請求註冊路由信息,NameServer保存活躍的broker列表,包括Master和Slave; 2、用

原创 RocketMQ存儲篇——數據文件的訪問入口(DefaultMessageStore)

1 根據topic和queueId查找ConsumeQueue(findConsumeQueue) 調用findConsumeQueue(String topic, int queueId)方法獲得,從ConsumeQueue集合

原创 Dubbo——各協議暴露和引用服務的邏輯

各協議暴露和引用服務的邏輯    目前Dubbox版本支持的協議有dubbo、injvm、rmi、hessian、thrift、memcached、redis、rest等九種,其中memcached和redis協議只支持服務引用不支持服務

原创 RocketMQ存儲篇——CommitLog

CommitLog commitlog文件的存儲地址:$HOME\store\commitlog\${fileName},每個文件的大小默認1G =1024*1024*1024,commitlog的文件名fileName,名字長度

原创 Dubbo——監聽器鏈

監聽器鏈  各類協議protocol類均是由ProtocolListenerWrapper類封裝的,在服務的暴露和引用過程中,都是調用該類的export和refer方法,在這些方法中完成監聽器鏈的創建。一、ExporterListener

原创 Dubbo——消費端調用

消費端調用1、在業務層代碼中調用遠程接口的方法時,實際上是調用的本地創建的代理對象。即在《4.4.3 創建服務類的本地代理》中創建的代理對象。2、在該代理對象中,調用了InvokerInvocationHander.invoke方法。遠程

原创 Dubbo——Transport網絡傳輸層

Transport網絡傳輸層1請求/響應的處理流程NettyHandler:繼承netty對象SimpleChannelHandler,重寫了channelConnected、channelDisconnected、messageRece

原创 Dubbo——服務端接收請求的處理流程

服務端接收請求的處理流程 在創建NettyServer對象時,初始化了NettyHandler對象,該對象中的ChannlHandler賦值爲NettyServer對象。在接受到消息之後,調用NettyHandler.messageR

原创 Dubbo——擴展點加載機制

擴展點加載機制        只有標有@SPI註解的接口類纔會查找擴展點的實現,依次從下面這三個路徑讀取擴展點文件:META-INF/dubbo/internal 、META-INF/dubbo/ 、META-INF/services/,

原创 RocketMQ存儲篇——Config文件以及執行延遲消息的線程服務

在$HOME\store\config目錄下面存儲各類config文件,包括:consumerOffset.json、delayOffset.json、subscriptionGroup.json、topics.json四類con

原创 RocketMQ存儲篇——MapedFileQueue

MapedFileQueue 應用層訪問commitlog和consumequeue文件是通過MappFileQueue來操作MapedFile類,從而間接操作磁盤上面的文件;MappFileQueue是由多個MapedFile隊