RocketMQ源码分析(一)

一、源码下载

Alibaba RocketMQ已经迁移到了Apache 下面:

https://github.com/apache/incubator-rocketmq.git

如果希望阅读Alibaba原版的RocketMQ代码,看到很多网站上的给的连接都是这个地址

  • git clone https://github.com/alibaba/RocketMQ.git,但是实际点击进去是404,已经下载不到原来的代码了。

本文提出另外一种方式下载源码:

https://gitee.com/mirrors/rocketmq clone 到本地:

然后 通过版本回退,可以到任意指定的版本,本文是到了3.4.6版本,使用如下命令:

git reset --hard 03c1ad102 即可阅读阿里原版的3.4.6版本的RocketMQ代码。

二、RocketMQ第一个例子

1、启动namesvr:

com.alibaba.rocketmq.namesrv.NamesrvStartup 这个类,需要设置参数,注意将参数替换成具体的位置:

-Drocketmq.home.dir=/Users/xxx/alibaba-rocketMQ-3.4.6
-Duser.home=/Users/xxx/alibaba-rocketMQ-3.4.6/userhome

2、启动brocker:

com.alibaba.rocketmq.broker.BrokerStartup这个类,需要设置参数,如下所示:

-Drocketmq.home.dir=/Users/xxx/alibaba-rocketMQ-3.4.6
-Duser.home=/Users/xxx/alibaba-rocketMQ-3.4.6/userhome 
-Drocketmq.namesrv.addr=127.0.0.1:9876

其中namesvr的地址必须配置正确,还有一种配置方式是在输入参数中传入:

-n 127.0.0.1:9876

如果这里的namesvr设置不对,会出现No route info of this topic, TopicTest 的错误

3、启动Comsumer:

com.alibaba.rocketmq.example.simple.PushConsumer这个类:

需要设置namesvr的地址:

consumer.setNamesrvAddr("127.0.0.1:9876");

以及参数配置:

-Drocketmq.home.dir=/Users/xxx/alibaba-rocketMQ-3.4.6
-Duser.home=/Users/xxx/alibaba-rocketMQ-3.4.6/userhome

4、启动Producer

com.alibaba.rocketmq.example.quickstart.Producer这个类:

设置namesvr的地址:

producer.setNamesrvAddr("127.0.0.1:9876");

配置参数:

-Drocketmq.home.dir=/Users/xxx/alibaba-rocketMQ-3.4.6
-Duser.home=/Users/xxx/alibaba-rocketMQ-3.4.6/userhome

最终看到的结果是:

注意top要一一对应,才能看到发送成功,并且消费成功。

参考文献:

https://blog.csdn.net/a2888409/article/details/53781766

猜你喜欢

转载自my.oschina.net/u/3729778/blog/1795448
今日推荐