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
相关文章
|
5天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
54 25
|
21天前
|
Ubuntu Java Linux
Linux 安装 Qualcomm ® SnapdragonTM Profiler
通过本文的详细介绍,您应该已经成功在 Linux 系统上安装并配置了 Qualcomm® Snapdragon™ Profiler,并能够连接 Android 设备进行性能分析。Snapdragon Profiler 提供了丰富的工具和功能,可以帮助开发者深入了解应用程序的性能瓶颈,从而进行优化。希望本文能对您有所帮助,让您在开发过程中更高效地使用 Snapdragon Profiler 进行性能分析和优化。
56 10
|
22天前
|
Linux
Linux安装svn并启动
Linux安装svn并启动
55 10
|
1月前
|
Oracle 关系型数据库 Linux
linux8安装oracle 11g遇到的问题记录
Oracle 11g在Linux 8上安装时会遇到link编译环节的问题。官方建议忽略安装中的链接错误,安装完成后应用DBPSU 11.2.0.4.240716补丁及一次性补丁33991024,再重新编译二进制文件,并配置监听器和数据库。但因11g已退出服务期,这些补丁需付费获取。网上信息显示22年1月的PSU补丁也可解决问题,找到该补丁后按常规方式打补丁即可。如有需求或疑问可咨询我。
83 20
|
1月前
|
弹性计算 运维 Ubuntu
os-copilot在Alibaba Cloud Linux镜像下的安装与功能测试
我顺利使用了OS Copilot的 -t -f 功能,我的疑惑是在换行的时候就直接进行提问了,每次只能写一个问题,没法连续换行更有逻辑的输入问题。 我认为 -t 管道 功能有用 ,能解决环境问题的连续性操作。 我认为 -f 管道 功能有用 ,可以单独创建可连续性提问的task问题。 我认为 | 对文件直接理解在新的服务器理解有很大的帮助。 此外,我还有建议 可以在非 co 的环境下也能进行连续性的提问。
79 7
|
2月前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
2月前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
244 20
|
2月前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
238 7
|
2月前
|
Unix Linux 编译器
UNIX/Linux 上的安装
UNIX/Linux 上的安装。
65 2
|
4月前
|
Linux 测试技术 网络安全
Linux系统之安装OneNav个人书签管理器
【10月更文挑战第19天】Linux系统之安装OneNav个人书签管理器
151 5
Linux系统之安装OneNav个人书签管理器