原创 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隊