目录
RocketMQ环境搭建:
官网参考地址:http://rocketmq.apache.org/docs/quick-start/
RocketMQ源代码地址:https://github.com/apache/rocketmq
RocketMQ-externals源代码地址:https://github.com/apache/rocketmq-externals
1、检查jdk、maven环境
2、maven环境按照步骤
(1)下载bin.tar.gz文件
(2)解压缩
(3)配置环境变量
#maven
MAVEN_HOME=/app/apache-maven-3.6.0
export PATH=$PATH:$MAVEN_HOME/bin
(4)source配置文件,检查maven版本,确定按照成功
mvn -version
3、按照rockeMQ,官网截图
提示没有unzip命令:
yum -y install zip unzip
Download & Build from Release
Click here to download the 4.3.0 source release. Also you could download a binary release from here.
Now execute the following commands to unpack 4.3.0 source release and build the binary artifact.
> unzip rocketmq-all-4.3.0-source-release.zip
> cd rocketmq-all-4.3.0/
> mvn -Prelease-all -DskipTests clean install -U
> cd distribution/target/apache-rocketmq
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...
Send & Receive Messages
Before sending/receiving messages, we need to tell clients the location of name servers. RocketMQ provides multiple ways to achieve this. For simplicity, we use environment variable NAMESRV_ADDR
> 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
RockeMQ其他安装:
rocketMQConsole安装:
1、git下载zip
2、unzip解压缩
3、修改配置文件
/app/rocketmq-externals-master/rocketmq-console/src/main/resources
vi application.properties
4、修改完毕后到console根目录,编译
mvn clean package -Dmaven.test.skip=true
如果是在Windows下的PowerShell命令行模式可能会报错,切换到cmd下执行
(官方说明)
With Docker
- get docker image
mvn clean package -Dmaven.test.skip=true docker:build
or
docker pull styletang/rocketmq-console-ng
- run it (change namesvrAddr and port yourself)
docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=127.0.0.1:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t styletang/rocketmq-console-ng
Without Docker
require java 1.7
mvn spring-boot:run
or
mvn clean package -Dmaven.test.skip=true
java -jar target/rocketmq-console-ng-1.0.0.jar
5、启动
java -jar /app/rocketmq-externals-master/rocketmq-console/target/rocketmq-console-ng-1.0.0.jar > /dev/null 2>&1 &
6、地址访问
生产环境配置:
namesrvAddr=192.168.2.100:9876;192.168.2.101:9876
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
listenPort=10911
strePathRootDir=/app/rocketmq/broker_a
1、namesrvAddr=192.168.2.100:9876;192.168.2.101:9876
NameServer地址,可以是多个,集群环境下。
2、brokerClusterName=DefaultCluster
cluster的地址,集群情况下,也可分成多个,比如按照业务,某个cluster单独处理某些业务。
3、brokerName=broker-a
Broker的名称,master和slave使用相同的name,也方便表示二者的主从关系。
4、brokerId=0
0表示Master,大于0表示其余Slave的id,一个master可以有多个slave
5、deleteWhen=04
和fileReservedTime配合,表示凌晨4点删除消息。
6、fileReservedTime=48
在磁盘上保存消息的时长,单位:小时,到期后自动删除超时的消息。
7、brokerRole=ASYNC_MASTER
三种:SYNC_MASTER、ASYNC_MASTER、SLAVE。前缀SYNC和ASYNC表示主从同步消息的机制,同步或异步,SYNC就表示同步完成后,返回消息发送成功的状态标志。
8、flushDiskType=ASYNC_FLUSH
刷盘策略:SYNC_FLUSH、ASYNC_FLUSH。同步刷盘,消息写入磁盘成功后再返回成功状态;异步刷盘下,消息写入page_cache即返回成功状态。
9、listenPort=10911
broker监听的端口号,避免重复或占用。
10、strePathRootDir=/app/rocketmq/broker_a
存储消息和配置信息的根目录。
注:所有配置信息更改后需要重启服务。
源代码导入学习:
源代码地址:https://github.com/apache/rocketmq.git
从github上拉取源代码,导入工具,如下:
RocketMQ源码目录说明:
1、broker:broker模块,启动进程;
2、client:消息客户端,包含消息生产者,消费者等;
3、common:公共包;
4、dev:开发者信息;
5、distribution:部署实例;
6、example:示例代码;
7、filter:消息过滤相关基础类;
8、filtersrv:消息过滤服务器实现相关,启动进程;
9、logAppender:日志实现;
10、namesrv:NameServer实现相关类,启动进程;
11、openmessaging:消息开放标准;
12、remoting:远程通信模块,基于netty;
13、srvutil:服务器工具类;
14、store:消息持久化存储相关;
15、style:checkstyle检查;
16、test:单元测试;
17、tools:工具类,监控命令等。
Apache RocketMQ开发者指南
这个开发者指南是帮忙您快速了解,并使用 Apache RocketMQ
1. 概念和特性
-
概念(Concept):介绍RocketMQ的基本概念模型。
-
特性(Features):介绍RocketMQ实现的功能特性。
2. 架构设计
-
架构(Architecture):介绍RocketMQ部署架构和技术架构。
-
设计(Design):介绍RocketMQ关键机制的设计原理,主要包括消息存储、通信机制、消息过滤、负载均衡、事物消息等。
3. 样例
- 样例(Example) :介绍RocketMQ的常见用法,包括基本样例、顺序消息样例、延时消息样例、批量消息样例、过滤消息样例、事物消息样例等。
4. 最佳实践
-
最佳实践(Best Practice):介绍RocketMQ的最佳实践,包括生产者、消费者、Broker以及NameServer的最佳实践,客户端的配置方式以及JVM和linux的最佳参数配置。
-
消息轨迹指南(Message Trace):介绍RocketMQ消息轨迹的使用方法。
-
权限管理(Auth Management):介绍如何快速部署和使用支持权限控制特性的RocketMQ集群。
-
Dledger快速搭建(Quick Start):介绍Dledger的快速搭建方法。
-
集群部署(Cluster Deployment):介绍Dledger的集群部署方式。
5. 运维管理
- 集群部署(Operation):介绍单Master模式、多Master模式、多Master多slave模式等RocketMQ集群各种形式的部署方法以及运维工具mqadmin的使用方式。