RocketMQ3.2.6安裝部署及調用

來源:互聯網
上載者:User

標籤:

RocketMQ3.2.6安裝部署及調用
1、RocketMQ部署架構
所有IP都是127.0.0.1,其中NameServer一個,Broker一個,Producer一個,Consumer一個

2、 RocketMQ環境搭建
(1).下載安裝包 :https://github.com/alibaba/RocketMQ/releases

(2).解壓,並進入bin目錄

(3).啟動name server

(4).啟動broker

(5).啟動完成


3、 RocketMQ調用使用JAR:

4、 RocketMQ一些概念
RocketMQ以Topic來管理不同應用的訊息。對於生產者而言,發送訊息是,需要指定訊息的Topic,對於消費者而言,在啟動後,需要訂閱相應的Topic,然後可以消費相應的訊息。Topic是邏輯上的概念,在物理實現上,一個Topic由多個Queue組成,採用多個Queue的好處是可以將Broker儲存分布式化,提高系統效能。

RocketMQ中,producer將訊息發送給Broker時,需要制定發送到哪一個隊列中,預設情況下,producer會輪詢的將訊息發送到每個隊列中(所有broker下的Queue合并成一個List去輪詢)。

對於consumer而言,會為每個consumer分配固定的隊列(如果隊列總數沒有發生變化),consumer從固定的隊列中去拉取沒有消費的訊息進行處理。

Producer

Producer端(屬於client)的邏輯概述:

producer端的邏輯都比較簡單,將訊息發送到某個Queue中即可,具體發送到那個Queue可以由使用者控制(MessageQueueSelector介面),預設情況下,將輪詢方式選擇Queue。在producer端,會從NameServer將所有Broker的Topic及對應的Queue資訊(即:TopicRoute資訊)拉取到本地,然後根據(brokerName, queueId)組建成一個List。因此在MessageQueueSelector,可以看到所有的Queue資訊。

RocketMQ將topic的訊息以多個Queue來管理,使得其較為容易的就可以進行水平擴充,提供系統吞吐力。這樣分布帶來的問題,就是從全域上不能做到順序性(很多時候也並不需要全域上的順序性)。

RocketMQ提到支援順序訊息,實際上是指基於Queue層級的順序。使用者將某些需要滿足順序的一批訊息(比如電商某個訂單號的一系列後續操作、比如資料庫的某個主鍵的insert、delete、update等操作)發送到固定的某個Queue中,則從這個Queue消費訊息的consumer,針對這一批訊息是順序消費。

問題1:針對順序訊息的隊列,是否可以做到不停服務下的叢集動態擴充?

Consumer

consumer邏輯稍微複雜一點。初步思考,consumer端至少需要處理:

(1) 訊息的擷取

(2) offset(消費進度)的管理與儲存

(3) 叢集消費模式下,Queue的分配問題(rebalance)

RocketMQ對外提供了兩種不同形式的Consumer:PushConsumer和PullConsumer。顧名思義,對於PullConsumer而言,使用者需要主動調用相應的介面去拉取未消費的訊息。對於PushConsumer而言,使用者提供訊息處理的CallBack,有未曾消費的訊息時,會主動回調這個CallBack來處理訊息。雖從使用者角度而言,Consumer存在主動(pull)和被動(push),但RocketMQ本身的broker端僅僅儲存所有的訊息,並不負責push訊息,因此PushConsumer的底層實現也是有一個長串連主動去broker上拉取未消費的訊息,然後回調使用者的callback邏輯。
5、 RocketMQ如何使用
A. 生產者


B. 消費者



C. 控制器中調用

D. 啟動消費者任務。注意:切記不可以在每次發送訊息時,都調用start方法

6、 RocketMQ工作原理

RocketMQ3.2.6安裝部署及調用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.