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/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • RocketMQ作为一款分布式的消息中间件(阿里的说法是不遵循任何规范的,所以不能完全用JMS的那一套东西来看它)...
    光剑书架上的书阅读 6,833评论 0 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,174评论 19 139
  • ** 今天看了一下kafka官网,尝试着在自己电脑上安装和配置,然后学一下官方document。** Introd...
    RainChang阅读 10,456评论 1 30
  • 本文转载自http://dataunion.org/?p=9307 背景介绍Kafka简介Kafka是一种分布式的...
    Bottle丶Fish阅读 10,823评论 0 34
  • kafka的定义:是一个分布式消息系统,由LinkedIn使用Scala编写,用作LinkedIn的活动流(Act...
    时待吾阅读 10,784评论 1 15

友情链接更多精彩内容