如何优雅地开始研究一个新技术

大家不要嘲笑我,我对 rocketmq 一无所知,所以写这篇文章刚好合适,正好也记录下我开始学习 rocketmq 这个冷启动阶段,大家看看对自己是否有帮助。

这篇文章是我边看边写的,力求还原一下我最真实的启动过程,不了解 rocketmq 的不用担心,甚至更好,因为本文不会涉及到 rocketmq 的细节,只是突出从一无所知开始研究它的启动阶段。

开始吧。

先把源码跑起来

第一步,先把源码搞到手。

百度出来它的官方网站:

如何优雅地开始研究一个新技术

傻瓜式的首页,非常友好,直接点击最大的那个 Getting Started 按钮。

然后就进入了 quick-start 文档页。

根据开头给的 4.8.0 版本的 rocketmq 源码地址 

https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.8.0/rocketmq-all-4.8.0-source-release.zip 

把它下载了下来。

是个 Java 项目,还是 maven 构建的,那好办了,直接 idea 打开!

如何优雅地开始研究一个新技术

紧接着人家就教我如何构建它。

> mvn -Prelease-all -DskipTests clean install -U > cd distribution/target/rocketmq-4.8.0/rocketmq-4.8.0

mvn 构建这一步就受挫了,好像是 maven 默认中央仓库好多 jar 包下载不了,于是我把 maven 配置文件的中央仓库改成阿里的,就好了。

<mirror>   <id>alimaven</id>   <name>aliyun maven</name     <url></url>   <mirrorOf>central</mirrorOf> </mirror>

阿里云牛逼!(此处应有广告位)

体验一下最简操作

接着往下读文档,现在代码已经到手,也构建成功,接下来讲的是如果体验一下发个消息,再收个消息的过程。

我是 windows 系统,就照着下面 windows 的教程来,就是这么任性。

如何优雅地开始研究一个新技术

嗯,配置一下环境变量而已。

接下来是四个启动脚本,很清晰。

## Start Name Server .\bin\mqnamesrv.cmd ## Start Broker .\bin\mqbroker.cmd -n localhost:9876 autoCreateTopicEnable=true ## Send Messages .\bin\tools.cmd  org.apache.rocketmq.example.quickstart.Producer ## Receive Messages .\bin\tools.cmd  org.apache.rocketmq.example.quickstart.Consumer

我看了一下这些 cmd 文件,意思就是执行这些类的 main 方法而已,于是我改在 idea 里分别执行他们,大概长这个样子。

如何优雅地开始研究一个新技术

‍‍‍‍‍‍‍

具体看下较为关心的两个 main 方法。

Producer 的 main 方法,很简单,简化版如下。

DefaultMQProducer producer = new DefaultMQProducer("example"); producer.start(); for (int i = 0; i < 1000; i++) {     Message msg = new Message(...);     SendResult sendResult = producer.send(msg);     System.out.printf("%s%n", sendResult); }

执行后,会看到一堆消息作为生产者被生产出来。

... SendResult [sendStatus=SEND_OK, msgId=7F000001162C18B4AAC28D83A84C03DF, offsetMsgId=0AE84A8400002A9F00000000000F7133, messageQueue=MessageQueue [topic=TopicTest, brokerName=DESKTOP-Q6M76VI, queueId=2], queueOffset=1244] SendResult [sendStatus=SEND_OK, msgId=7F000001162C18B4AAC28D83A84C03E0, offsetMsgId=0AE84A8400002A9F00000000000F71FE, messageQueue=MessageQueue [topic=TopicTest, brokerName=DESKTOP-Q6M76VI, queueId=3], queueOffset=1249] SendResult [sendStatus=SEND_OK, msgId=7F000001162C18B4AAC28D83A84D03E1, offsetMsgId=0AE84A8400002A9F00000000000F72C9, messageQueue=MessageQueue [topic=TopicTest, brokerName=DESKTOP-Q6M76VI, queueId=0], queueOffset=1244] SendResult [sendStatus=SEND_OK, msgId=7F000001162C18B4AAC28D83A84D03E2, offsetMsgId=0AE84A8400002A9F00000000000F7394, messageQueue=MessageQueue [topic=TopicTest, brokerName=DESKTOP-Q6M76VI, queueId=1], queueOffset=1251] SendResult [sendStatus=SEND_OK, msgId=7F000001162C18B4AAC28D83A84D03E3, offsetMsgId=0AE84A8400002A9F00000000000F745F, messageQueue=MessageQueue [topic=TopicTest, brokerName=DESKTOP-Q6M76VI, queueId=2], queueOffset=1245] SendResult [sendStatus=SEND_OK, msgId=7F000001162C18B4AAC28D83A84D03E4, offsetMsgId=0AE84A8400002A9F00000000000F752A, messageQueue=MessageQueue [topic=TopicTest, brokerName=DESKTOP-Q6M76VI, queueId=3], queueOffset=1250] SendResult [sendStatus=SEND_OK, msgId=7F000001162C18B4AAC28D83A84E03E5, offsetMsgId=0AE84A8400002A9F00000000000F75F5, messageQueue=MessageQueue [topic=TopicTest, brokerName=DESKTOP-Q6M76VI, queueId=0], queueOffset=1245] SendResult [sendStatus=SEND_OK, msgId=7F000001162C18B4AAC28D83A84E03E6, offsetMsgId=0AE84A8400002A9F00000000000F76C0, messageQueue=MessageQueue [topic=TopicTest, brokerName=DESKTOP-Q6M76VI, queueId=1], queueOffset=1252] SendResult [sendStatus=SEND_OK, msgId=7F000001162C18B4AAC28D83A84E03E7, offsetMsgId=0AE84A8400002A9F00000000000F778B, messageQueue=MessageQueue [topic=TopicTest, brokerName=DESKTOP-Q6M76VI, queueId=2], queueOffset=1246] ...

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyjjds.html