RocketMQ源碼閱讀(一)-調試環境搭建

最近想深入學習一下消息隊列, 本來想看kafka的源碼, 但由于kafka是scala寫的,本人又不懂kafaka,最終選擇了阿里的RocketMQ. RocketMQ是基于kafka的原理構建的, 又根據阿里自身的需求進行了修改. 下文根據RocketMQ官方文檔, 搭建RocketMQ的開發環境.

先決條件

首先需要下列軟件:
1.64bit OS, Linux/Unix/Mac is recommended;
2.64bit JDK 1.7+;
3.Maven 3.2.x
4.Git

Clone & Build

> git clone https://github.com/apache/incubator-rocketmq.git
> cd incubator-rocketmq
> mvn clean package install -Prelease-all assembly:assembly -U
> cd target/apache-rocketmq-all/

target/apache-rocketmq-all目錄下的文件就是RocketMQ的所有安裝文件. 將apache-rocketmq-all拷貝到/usr/install(本人安裝軟件的目錄)目錄下就完成了安裝.

下面是官網提供的quick start.

Start Name Server

> nohup sh bin/mqnamesrv &
> tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...

Start Broker

> nohup sh bin/mqbroker -n localhost:9876 &
> tail -f ~/logs/rocketmqlogs/broker.log 
The broker[%s, 172.30.30.233:10911] boot success...

由于broker不會使用loopback的地址,因此必須確保loopback連入了某個網絡(我們認為是局域網就行).

發送&&接收消息

為了收發消息客戶端必須知道name servers的地址, RocketMQ提供了多種方式獲取name servers的地址, 下面是使用環境變量的方式:

> export NAMESRV_ADDR=localhost:9876
> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
SendResult [sendStatus=SEND_OK, msgId= ...

> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
ConsumeMessageThread_%d Receive New Messages: [MessageExt...

Shutdown Servers

> sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK

> sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK

搭建IDEA集成開發環境

用IDEA引入incubator-rocketmq項目, 即可完成集成開發環境的搭建, 非常方便.

IDEA集成開發環境

參考文檔:
https://rocketmq.incubator.apache.org/docs/quick-start/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • RocketMQ作為一款分布式的消息中間件(阿里的說法是不遵循任何規范的,所以不能完全用JMS的那一套東西來看它)...
    光劍書架上的書閱讀 2,339評論 0 6
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • ** 今天看了一下kafka官網,嘗試著在自己電腦上安裝和配置,然后學一下官方document。** Introd...
    RainChang閱讀 5,050評論 1 30
  • 本文轉載自http://dataunion.org/?p=9307 背景介紹Kafka簡介Kafka是一種分布式的...
    Bottle丶Fish閱讀 5,502評論 0 34
  • kafka的定義:是一個分布式消息系統,由LinkedIn使用Scala編寫,用作LinkedIn的活動流(Act...
    時待吾閱讀 5,366評論 1 15