RocketMQ学习第一步之源码构建
这里写目录标题
- 绪论
- 源码构建
- 1.clone
- 2. 构建
- 3.配置
- 3.1配置namesrv
- 3.2新建文件夹
- 3.3 配置broker
- 3.4 配置producer
- 3.5 配置 consumer
- 4.启动
绪论
最近溪源在学习dubbo的相关API机制实践,如:负载均衡、服务分组、本地存根等等…一方面是dubbo官网文档给出了详细的介绍和demo,另一方面由于自己时间方面原因(自己现在也需要学习各种技术栈),没有整理相关实践总结。但是后面一定会整理出相关的实践总结。 今天主要给大家介绍一下rocketmq源码本地化构建,也是由于溪源项目中暂时未使用该技术栈,如果自己想要学习和精进,那只能阅读一下源码和了解相关机制啦! 好啦好啦~不再絮叨啦,无实际作用,下面进入今天的正题。
源码构建
首先,分享出rocketMQ相关资料: 项目地址:https://github.com/apache/rocketmq 中文文档:https://github.com/apache/rocketmq/tree/master/docs/cn
1.clone
源码本地化构建肯定是clone啦,大家都明白。
命令 : git clone https://github.com/apache/rocketmq.git
或者大家可以使用idea直接New->Version Control
2. 构建
项目克隆结束以后,输入命令构建:mvn clean install -U -DskipTests
但是但是~会那么轻松让我们构建成功吗??哈哈,惊喜终于来了—[ERROR]
- 解决方案 Error:不再支持源选项 6。请使用 7或更高版本。 修改pom.xml文件中plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
修改结束,再次输入上面的构建命令,静静地等待构建、下载依赖等~
3.配置
构建完成之后,下面开始着手配置项。
3.1配置namesrv
具体设置如图:
这里最重要的一步就是设置环境变量:
ROCKETMQ_HOME=/Users/***/rocketmq
目录结构根据自己实际情况新建文件夹,后面会用到(本文中溪源以rocketmq为例)。
3.2新建文件夹
以下新建文件夹与上面配置的环境变量目录保持一致,例如:/Users/***/rocketmq,以下目录均基于rocketmq目录建立。
- rocketmq中新建
conf、store、logs
- 配置conf
将distribution目录中conf
中的broker.conf、logback_broker.xml、logback_namesrv.xml
文件复制到上一步新建文件夹conf中。
- 修改broker.conf文件 修改上步复制的broker.conf文件。新增属性值:将该文件中的存放路径需要改成自己配置的路径。
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
##以下属于自己新增配置项
#nameserAddr地址,集群用分号;分割
namesrvAddr=127.0.0.1:9876
#存储路径
storePathRootDir=/Users/***/rocketmq/store
#commitLog存储路径
storePathCommitLog=/Users/***/rocketmq/store/commitLog
#消息队列存储路径
storePathConsumeQueue=/Users/***/rocketmq/store/consumeQueue
#消息索引存储路径
storePathIndex=/Users/***/rocketmq/store/index
#checkPoint文件存储路径
storeCheckpoint=/Users/***/rocketmq/store/checkpoint
#abort文件存储路径
abortFile=/Users/***/rocketmq/store/abort
- 修改logback_namesrv.xml配置:
需要${user.home}替换成自己上一步配置的文件夹路径;例如
/Users/***/rocketmq/
。
3.3 配置broker
- program参数:
-c /Users/***/rocketmq/conf/broker.conf
- 环境变量:
ROCKETMQ_HOME=/Users/***/rocketmq
以上路径均属于上面自定义配置文件路径。 具体配置如图:
3.4 配置producer
3.5 配置 consumer
4.启动
经历上面的一番配置后,最后一步就是启动生产者和消费者啦。 先提前说一下启动顺序:
- 启动org.apache.rocketmq.namesrv.NamesrvStartup
- 启动org.apache.rocketmq.broker.BrokerStartup
- 启动生产者org.apache.rocketmq.example.quickstart.Producer
- 启动消费者org.apache.rocketmq.example.quickstart.Consumer 如图:消费者已经成功消费消息
到此,源码本地化构建已经成功啦,接下来就是熟悉rocketmq中的各种机制啦~
- Log4Net使用心得
- nginx通过https方式反向代理多实例tomcat
- Linux系统下yum镜像源环境部署记录
- 特斯拉vs凯迪拉克vs奔驰:三大汽车自动驾驶系统比拼
- Centos下添加静态路由(临时和永久有效)的操作记录
- python如何保证输入键入数字
- 微信小程序自定义数据分析试水
- 挂载银行前置机Ukey到windows server2012虚拟机的操作记录
- 文件上传速度查询方法
- “AS3.0高级动画编程”学习:第三章等角投影(上)
- su: 无法设置用户ID: 资源暂时不可用
- NumPY学习笔记
- LVS负载均衡下session共享的实现方式-持久化连接
- Centos6.9下RabbitMQ集群部署记录
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SSH端口转发实现内网穿透的实现
- 在linux中用同一个版本的R 同时安装 Seurat2 和 Seurat3的教程
- AUCell:在单细胞转录组中识别细胞对“基因集”的响应
- linux查看硬件配置命令的方法示例
- Ubuntu环境编译安装PHP和Nginx的方法
- Ubuntu环境源码编译安装xdebug的方法
- CNS图表复现07—原来这篇文章有两个单细胞表达矩阵
- CentOS 7.x 安装 ZSH 终端的配置方法
- centos7 安装mysql和mysqlclient遇到的坑总结
- iOS音视频接入- TRTC计费及套餐介绍
- Linux简介及最常用命令(简单易学,但能解决95%以上的问题)
- Linux一行命令处理批量文件详解
- Linux中jar包启动和jar包后台运行的实现方式
- Linux下实现不活动用户登录超时后自动登出
- Centos7下nginx的安装与配置教程详解