Linux 下RocketMQ 安装

简介: 安装前提环境条件:1, JDK1.8 及以上2,Maven 3.2x ;3,Git ;4,4G+ 空间为 Broker 服务器使用

安装前提环境条件:

1, JDK1.8 及以上

2,Maven 3.2x ;

3,Git ;

4,4G+ 空间为 Broker 服务器使用

1,下载binary 压缩包

源码下载地址:https://dlcdn.apache.org/rocketmq/4.9.3/rocketmq-all-4.9.3-source-release.zip


2,解压

unzip rocketmq-all-4.9.3-bin-release.zip
cd rocketmq-4.9.3/


3,运行 name-server

> nohup sh bin/mqnamesrv &
> tail -f ~/logs/rocketmqlogs/namesrv.log
2022-04-19 15:34:48 INFO main - tls.client.keyPassword = null
2022-04-19 15:34:48 INFO main - tls.client.certPath = null
2022-04-19 15:34:48 INFO main - tls.client.authServer = false
2022-04-19 15:34:48 INFO main - tls.client.trustCertPath = null
2022-04-19 15:34:48 INFO main - Using JDK SSL provider
2022-04-19 15:34:49 INFO main - SSLContext created for server
2022-04-19 15:34:49 INFO main - Try to start service thread:FileWatchService started:false lastThread:null
2022-04-19 15:34:49 INFO NettyEventExecutor - NettyEventExecutor service started
2022-04-19 15:34:49 INFO FileWatchService - FileWatchService service started
2022-04-19 15:34:49 INFO main - The Name Server boot success. serializeType=JSON


4,启动 Broker

nohup sh bin/mqbroker -n localhost:9876 &
tail -f ~/logs/rocketmqlogs/broker.log
2022-04-19 15:57:09 INFO main - The broker[iZbp16xc9vwddb2wodsge4Z, 172.26.136.245:10911] boot success. serializeType=JSON and name server is localhost:9876
2022-04-19 15:57:19 INFO BrokerControllerScheduledThread1 - dispatch behind commit log 0 bytes
2022-04-19 15:57:19 INFO BrokerControllerScheduledThread1 - Slave fall behind master: 0 bytes
2022-04-19 15:57:19 INFO brokerOutApi_thread_2 - register broker[0]to name server localhost:9876 OK


5,Producer 发送消息

5.1,设置 NAMESRV_ADDR 环境变量

export NAMESRV_ADDR=localhost:9876                


5.2,发送消息

sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

终端出现类似以下打印输出,表示发送成功

SendResult [sendStatus=SEND_OK, msgId=7F0000015C2508EFB84660239ED503E5, offsetMsgId=AC1A88F500002A9F000000000002EB52, messageQueue=MessageQueue [topic=TopicTest, brokerName=iZbp16xc9vwddb2wodsge4Z, queueId=3], queueOffset=249]
SendResult [sendStatus=SEND_OK, msgId=7F0000015C2508EFB84660239ED503E6, offsetMsgId=AC1A88F500002A9F000000000002EC12, messageQueue=MessageQueue [topic=TopicTest, brokerName=iZbp16xc9vwddb2wodsge4Z, queueId=0], queueOffset=249]
SendResult [sendStatus=SEND_OK, msgId=7F0000015C2508EFB84660239ED603E7, offsetMsgId=AC1A88F500002A9F000000000002ECD2, messageQueue=MessageQueue [topic=TopicTest, brokerName=iZbp16xc9vwddb2wodsge4Z, queueId=1], queueOffset=249]


5.3,Consumer 消费消息


sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer


终端出现类似以下打印输出,表示消息消费成功

ConsumeMessageThread_please_rename_unique_group_name_4_13 Receive New Messages: [MessageExt [brokerName=iZbp16xc9vwddb2wodsge4Z, queueId=0, storeSize=192, queueOffset=195, sysFlag=0, bornTimestamp=1650355346976, bornHost=/172.26.136.245:36668, storeTimestamp=1650355346977, storeHost=/172.26.136.245:10911, msgId=AC1A88F500002A9F0000000000024A12, commitLogOffset=150034, bodyCRC=576617176, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0, properties={MIN_OFFSET=0, MAX_OFFSET=250, CONSUME_START_TIME=1650355501879, UNIQ_KEY=7F0000015C2508EFB84660239E20030E, CLUSTER=DefaultCluster, TAGS=TagA}, body=[72, 101, 108, 108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 55, 56, 50], transactionId='null'}]] 
ConsumeMessageThread_please_rename_unique_group_name_4_11 Receive New Messages: [MessageExt [brokerName=iZbp16xc9vwddb2wodsge4Z, queueId=0, storeSize=192, queueOffset=191, sysFlag=0, bornTimestamp=1650355346937, bornHost=/172.26.136.245:36668, storeTimestamp=1650355346940, storeHost=/172.26.136.245:10911, msgId=AC1A88F500002A9F0000000000023E12, commitLogOffset=146962, bodyCRC=1001427791, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0, properties={MIN_OFFSET=0, MAX_OFFSET=250, CONSUME_START_TIME=1650355500938, UNIQ_KEY=7F0000015C2508EFB84660239DF902FE, CLUSTER=DefaultCluster, TAGS=TagA}, body=[72, 101, 108, 108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 55, 54, 54], transactionId='null'}]] 

6,关闭 boker 与 name-server

6.1 关闭 boker

sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK

6.2 关闭 name server

sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK

安装时可能遇到的错误,以及解决方案:

1,启动 bocker 时,启动不起来,出现类似于以下内存不足报错信息

Java HotSpot(TM) 64-Bit Server VM warning: error='Cannot allocate memory' (errno=12)


解决方案:Linux下 找 runserver.sh,runboker.sh ;Windwos 下找 runserver.cmd,runboker.cmd,打开后,定位到以下位置




替换为以下相关设置,减小JVM最大内存申请量

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn125m -XX:MetaspaceSize=128m -XX:MaxMetasp
相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
6天前
|
Ubuntu 网络协议 Linux
【附安装包】CentOS7(Linux)详细安装教程(手把手图文详解版)
【附安装包】CentOS7(Linux)详细安装教程(手把手图文详解版)
45 2
|
3天前
|
Linux C语言
成功解决 在Linux CentOS 7 中安装gcc
这篇文章介绍了如何在Linux CentOS 7系统中安装gcc (g++) 8工具集。由于CentOS 7默认的gcc版本是4.8,而这个版本与Qt 5.14、Qt 5.15或更高版本不兼容,可能会导致编译时出现系统头文件错误。文章中提到,即使在项目配置中添加了`CONFIG+=c++11`,如果仍然报错,那么很可能是gcc版本的问题。为了解决这个问题,文章提供了使用CentOS的Software Collections (scl)来安装更新版本的gcc的步骤。
成功解决 在Linux CentOS 7 中安装gcc
|
2天前
|
关系型数据库 Java MySQL
Linux安装JDK1.8 & tomcat & MariaDB(MySQL删减版)
本教程提供了在Linux环境下安装JDK1.8、Tomcat和MariaDB的详细步骤。这三个组件的组合为Java Web开发和部署提供了一个强大的基础。通过遵循这些简单的指导步骤,您可以轻松建立起一个稳定、高效的开发和部署环境。希望这个指导对您的开发工作有所帮助。
20 8
|
4天前
|
Linux Python
Linux 升级安装 Python 3
Linux 升级安装 Python 3
11 2
|
4天前
|
存储 Ubuntu 安全
在Ubuntu 16.04上安装和保护Mosquitto MQTT消息代理的方法
在Ubuntu 16.04上安装和保护Mosquitto MQTT消息代理的方法
13 1
|
4天前
|
Linux 网络安全 Python
Linux离线安装Python时ssh和hashlib死活安装不上的解决方案
本文提供了Linux环境下离线安装Python时遇到的"ImportError: No module named _ssl"和"ERROR:root:code for hash md5|sha1|sha224|sha256|sha384|sha512 was not found"两个问题的解决方案,通过设置OpenSSL环境变量和编辑Python源码配置文件来解决。
8 1
|
4天前
|
存储 NoSQL Java
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
该博客文章展示了如何在Linux虚拟机上使用Redis和Jedis客户端实现手机验证码的验证功能,包括验证码的生成、存储、验证以及限制每天发送次数的逻辑,并提供了测试结果截图。
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
|
4天前
|
Linux
虚拟机安装Linux系统的网络配置
该博客文章提供了解决虚拟机中Linux系统网络问题的多种方法,包括重置网络服务、修改网络配置文件、使用不同网络模式等,以确保虚拟机能够成功连接到网络。
虚拟机安装Linux系统的网络配置
|
6天前
|
Linux Go
Linux——windows10下的Ubuntu18.04安装并配置go环境
Linux——windows10下的Ubuntu18.04安装并配置go环境
18 1
|
6天前
|
存储 Linux Docker
Linux——快速安装Docker
Linux——快速安装Docker
51 1