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项目, 即可完成集成开发环境的搭建, 非常方便.

RocketMQ源码阅读(一)-调试环境搭建_第1张图片
IDEA集成开发环境

参考文档:
https://rocketmq.incubator.apache.org/docs/quick-start/

你可能感兴趣的:(RocketMQ源码阅读(一)-调试环境搭建)