RocketMQ quikstart

  • 获取源码

    git clone https://github.com/alibaba/RocketMQ.git
  • 编译打包

    cd RocketMQ

    bash install.sh

这是一个maven工程,官方给出了编译打包的脚本install.sh,主要就是

# mvn 编译打包
mvn -Dmaven.test.skip=true clean package install assembly:assembly -U
# 建立一个软连接(快捷方式)
ln -s target/alibaba-rocketmq-broker/alibaba-rocketmq devenv
  • 生成idea工程文件

    生成工程文件就可以使用IDE直接打开
mvn idea:idea
# 生clipse工程文件
mvn eclipse:eclipse
  • 设置环境变量
# 上面创建了devenv软连接
cd devenv
# 将devenv目录作为ROCKETMQ_HOME,其实也可以作为jvm启动参数传入,broker和nameServer启动的时候需要这个目录参数,默认取的是jvm启动的时候rocketmq.home.dir的值
echo "ROCKETMQ_HOME=`pwd`" >> ~/.bash_profile
# 让上面的环境变量起作用
source ~/.bash_profile
  • 启动nameServer和broker

    启动NameServer
cd bin
chmod u+x mqnamesrv
bash mqnamesrv

如果启动成功显示

Listening for transport dt_socket at address: 9555
The Name Server boot success. serializeType=JSON

启动脚本mqnamesrv掉用的是runserver.sh,其实就是执行NamesrvStart这个类,这个类负责启动nameServer,然后在启动jvm的时候添加一堆参数,注意runserver.sh

  1. 启动jvm的时候注意jvm各个内存区域的大小(如果电脑内存较小,而且不是用在生产环境可以调小一些)
  2. 因为是jvm,可以打开远程调试端口把下一句话的注释去掉,就可以进行远程调试了
# 去掉下面这句话前面的#
JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"

启动broker

chmod u+x mqbroker
bash mqbroker -n localhost:9876

和nameServer启动类似mqbroker调用了runbroker.sh来启动jvm运行BrokerStart类,在里面添加各种参数,也可以通过去掉上面那句话来进行远程调试(注意远程调试端口不要和上面nameServer的冲突了)。

  • 运行example
  1. 设置nameServer的地址到环境变量中,因为Producer和Consumer都需要知道nameServer的地址才能进一步获取broker的地址
# 设置到环境变量
export NAMESRV_ADDR=localhost:9876
# 在Producer和Consumer类中设置
producer.setNamesrvAddr("localhost:9876");
consumer.setNamesrvAddr("localhost:9876");
  1. 发送消息和接受消息

    在IDE中打开这个工程(上面已经生成工程文件),然后直接运行Producer和Consumer两个类的main方法就可以了。

    也可以通过提供的脚本运行
bash tools.sh com.alibaba.rocketmq.example.quickstart.Producer
bash tools.sh com.alibaba.rocketmq.example.quickstart.Consumer

模块划分

参考

RocketMQ共包含9个模块

  • rocketmq-common:通用的枚举、基类方法、或者数据结构,包名有admin、consumer、filter、hook、message
  • rocketmq-remoting:使用netty的客户端、服务端,使用fastjson序列化,自定义二进制协议
  • rocketmq-srvutil:只有一个ServerUtil类,只提供Server程序依赖,尽可能减少客户端依赖
  • rocketmq-store:消息存储,索引,consumerLog,commitLog等
  • rocketmq-client:消息发送和接收,包含consumer和producer
  • rocketmq-filtersrv:消息过滤器
  • rocketmq-broker:服务端,接受消息,存储消息,consumer拉取消息
  • rocketmq-tools:命令行工具
  • rocketmq-namesrv:NameServer,类似服务注册中心,broker在这里注册,consumer和producer在这里找到broker地址

RocketMQ源码 — 一、 quikstart的更多相关文章

  1. ROCKETMQ源码分析笔记1:tools

    rocketmq源码解析笔记 大家好,先安利一下自己,本人男,35岁,已婚.目前就职于小资生活(北京),职位是开发总监. 姓名DaneBrown 好了.我保证本文绝不会太监!转载时请附上以上安利信息. ...

  2. RocketMQ源码 — 六、 RocketMQ高可用(1)

    高可用究竟指的是什么?请参考:关于高可用的系统 RocketMQ做了以下的事情来保证系统的高可用 多master部署,防止单点故障 消息冗余(主从结构),防止消息丢失 故障恢复(本篇暂不讨论) 那么问 ...

  3. RocketMQ 源码学习笔记————Producer 是怎么将消息发送至 Broker 的?

    目录 RocketMQ 源码学习笔记----Producer 是怎么将消息发送至 Broker 的? 前言 项目结构 rocketmq-client 模块 DefaultMQProducerTest ...

  4. RocketMQ 源码学习笔记 Producer 是怎么将消息发送至 Broker 的?

    目录 RocketMQ 源码学习笔记 Producer 是怎么将消息发送至 Broker 的? 前言 项目结构 rocketmq-client 模块 DefaultMQProducerTest Roc ...

  5. RocketMQ 源码分析 —— Message 发送与接收

    1.概述 Producer 发送消息.主要是同步发送消息源码,涉及到 异步/Oneway发送消息,事务消息会跳过. Broker 接收消息.(存储消息在<RocketMQ 源码分析 —— Mes ...

  6. RocketMQ源码分析之从官方示例窥探:RocketMQ事务消息实现基本思想

    摘要: RocketMQ源码分析之从官方示例窥探RocketMQ事务消息实现基本思想. 在阅读本文前,若您对RocketMQ技术感兴趣,请加入RocketMQ技术交流群 RocketMQ4.3.0版本 ...

  7. 记一次RocketMQ源码导入IDEA过程

    首先,下载源码,可以官网下载source包,也可以从GitHub上直接拉下来导入IDEA.如果是官网下载的source zip包,直接作为当前project的module导入,这里不赘述太多,只强调一 ...

  8. 【RocketMQ源码分析】深入消息存储(1)

    最近在学习RocketMQ相关的东西,在学习之余沉淀几篇笔记. RocketMQ有很多值得关注的设计点,消息发送.消息消费.路由中心NameServer.消息过滤.消息存储.主从同步.事务消息等等. ...

  9. 【RocketMQ源码分析】深入消息存储(3)

    前文回顾 CommitLog篇 --[RocketMQ源码分析]深入消息存储(1) ConsumeQueue篇 --[RocketMQ源码分析]深入消息存储(2) 前面两篇已经说过了消息如何存储到Co ...

  10. 【RocketMQ源码分析】深入消息存储(2)

    前文回顾 CommitLog篇 --[RocketMQ源码分析]深入消息存储(1) MappedFile篇 --[RocketMQ源码分析]深入消息存储(3) 前文说完了一条消息如何被持久化到本地磁盘 ...

随机推荐

  1. .NET MVC4 实训记录之二(扩展WebSecurity模型下的UserProfile表)

    使用VS2013创建MVC4项目后,自动生成的代码中默认使用WebSecurity模型创建用户管理,生成以下数据库:

  2. SpringMVC 国际化

    SpringMVC学习系列(8) 之 国际化 在系列(7)中我们讲了数据的格式化显示,Spring在做格式化展示的时候已经做了国际化处理,那么如何将我们网站的其它内容(如菜单.标题等)做国际化处理呢? ...

  3. [翻译]用Dart塑造Android未来

    明天回家,今天下午瞅时间翻译了Cyril Mottier的另外一篇有关Android前景的文章. 原谅地址是:http://cyrilmottier.com/2014/06/12/shaping-th ...

  4. Windows Phone App Studio发布

    Windows Phone App Studio发布重要更新-支持Windows 8.1 源代码生成 自2013年8月Apps Team发布Windows Phone App Studio以来,由于其 ...

  5. Web Api的安全性

    Web Api的安全性 系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 这一篇文章我们主要来探讨一下Web Api的安全性,到目前为止所有的 ...

  6. 2014.3.12-C语言小测试

    测试代码: 学号:1402049 1.请实现一个函数,功能为使用循环输出以下的图案 void print_alpha(int n) { int i, j; for(i=0;i<n;++i){ f ...

  7. Step one : 熟悉Unix/Linux Shell 常见命令行 (二)

    2.学会使用一些文本操作命令 sed -- stream editor 1. Sed简介sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pat ...

  8. WebApi HttpMsgHanler的执行顺序

    原来忘记在哪个大牛的博客上看到的,说添加顺序与执行顺序是相反的,事实在下边:直接上代码: //STEP10,不论如何先记录下来请求信息 if (msgHandlerSettings.LoggingHa ...

  9. C# 词法分析器

    当前标签: 编译原理   C# 词法分析器(七)总结 CYJB 2014-01-09 12:46 阅读:582 评论:1   C# 词法分析器(六)构造词法分析器 CYJB 2013-05-07 01 ...

  10. Jumony Core 3,真正的HTML引擎

    Jumony Core 3,真正的HTML引擎,正式版发布 2013-11-28 17:22 by Ivony..., 778 阅读, 18 评论, 收藏, 编辑 Jumony是一个开源项目,已经有三 ...