一、RokectMQ部署图
RocketMQ是阿里的开源消息中间件,在介绍怎样安装之前,先简单介绍下RokectMQ,在总体认识它的架构,各组件的作用
物理部署结构:
- name server:主要是提供轻量级的服务发现和路由服务,每个节点都存放了全部的路由信息和对应的服务,也就是说生产者和消费从任意name server节点都能去注册或获取服务
- broker:简单来说就是消息存放的地方,满足TOPIC和QUEUE机制,其他特点有提供上亿消息的堆积能力、提供故障恢复、统计功能和告警功能、通过2或3拷贝实现高可用,很强大
- producer:给broker发送消息,消息生产者,可以支持分布式部署
- consumer:消息消费者,支持推和拉两种模式,支持集群消费和广播消费
二、安装与启动
1.系统要求
- 64bit OS, Linux/Unix/Mac
- 64bit JDK 1.8+
- Maven 3.2.x
- Git
2.下载安装包
3.解压
unzip rocketmq-all-4.2.0-source-release.zip
如果二次解压需要覆盖,命令加上-o,即:
unzip -o rocketmq-all-4.2.0-source-release.zip
3.进入项目目录,并执行安装操作
cd rocketmq-all-4.2.0/
mvn -Prelease-all -DskipTests clean install -U
4.安装完成,进入项目启动文件目录
cd distribution/target/apache-rocketmq
5.启动nameServer,查看启动日志
nohup sh bin/mqnamesrv &
查看启动日志:
tail -f ~/logs/rocketmqlogs/namesrv.log
6.开启自动创建Topic方式启动broker,查看启动日志
nohup sh bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true &
查看启动日志:
tail -f ~/logs/rocketmqlogs/broker.log
7.发送和接受消息测试联通性
在发送/接收消息前,我们需要告诉客户端:消息服务器的地址:端口(本地的话可以用localhost:端口)。RocketMQ提供多种方式来实现它
- 需要进入到RokectMQ目录下:
export NAMESRV_ADDR=localhost:9876
- 发送一条消息:
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
应答示例:
SendResult [sendStatus=SEND_OK, msgId=1E27D5677A4D61BBE9BA02F57A3B0294, offsetMsgId=C0A8006500002A9F0000000000048E54, messageQueue=MessageQueue [topic=TopicTest, brokerName=broker-a, queueId=3], queueOffset=415]
- 接收消息:
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
应答示例:
ConsumeMessageThread_4 Receive New Messages: [MessageExt [queueId=1, storeSize=180, queueOffset=476, sysFlag=0, bornTimestamp=1583041642342, bornHost=/192.168.0.101:64271, storeTimestamp=1583041642344, storeHost=/192.168.0.101:10911, msgId=C0A8006500002A9F0000000000053B4C, commitLogOffset=342860, bodyCRC=1735662019, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message [topic=TopicTest, flag=0, properties={MIN_OFFSET=0, MAX_OFFSET=500, CONSUME_START_TIME=1583041884578, UNIQ_KEY=1E27D5677A4D61BBE9BA02F57B66038A, WAIT=true, TAGS=TagA}, body=18]]]
以上就完成了RocketMQ的安装和启动,需要注意的是Java环境变量必须要配置好,mac电脑可以通过/usr/libexec/java_home -V查看Java安装路径,然后在~/.bash_profile中添加:
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home
export JAVA_HOME
然后执行 source ~/.bash_profile 即可。
三、关闭nameServer和broker
进入到apache-rocketmq目录,关闭nameServer:
sh bin/mqshutdown namesrv
进入到apache-rocketmq目录,关闭broker:
sh bin/mqshutdown broker