rocketmq consume學習筆記

來源:互聯網
上載者:User


consumer與NameServer Broker之間的通訊

先看一下MQClientInstance的startScheduledTask方法,裡面有很多定時任務

MQClientInstance.this.mQClientAPIImpl.fetchNameServerAddr(); 定期擷取NameServer地址 周期是2分鐘

MQClientInstance.this.updateTopicRouteInfoFromNameServer(); 定期更新topicroute資訊 周期是pollNameServerInteval 這個可以配置

MQClientInstance.this.cleanOfflineBroker(); MQClientInstance.this.sendHeartbeatToAllBrokerWithLock();

清除斷線的broker,向broker發送心跳,周期是heartbeatBrokerInterval 可配置,

MQClientInstance.this.persistAllConsumerOffset();

MQClientInstance.this.adjustThreadPool();


MQClientInstance.sendHeartbeatToAllBrokerWithLock();

這個發送心跳是在DefaultMQPushConsumer start啟動的過程中和DefaultMQPushConsumer subscribe訂閱topic 都會發送心跳,逾時時間3秒


consumer訂閱topic

訂閱的資訊記錄在RebalanceImpl一個map中,ConcurrentHashMap<String /* topic */,SubscriptionData>

這個RebalanceImpl在消費訊息的時候解釋



consumer消費訊息

consume消費有2種模式 push 和 pull 本質都是pull,push是封裝了pull的過程,然後推送到監聽器,

消費service ConsumeMessageService,有2個子類,ConsumeMessageConcurrentlyService和ConsumeMessageOrderlyService

註冊registerMessageListener有2中類型,

如果是MessageListenerConcurrently,MessageService就是ConsumeMessageConcurrentlyService

如果是MessageListenerOrderly,MessageService就是ConsumeMessageOrderlyService

是一一對應的。


待寫。。。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.