linux安装RocketMQ实例步骤

下面是“Linux安装RocketMQ实例步骤”的完整攻略。

准备工作

在进行安装前,请确保你已经完成如下步骤:

  1. 安装好Java环境(建议使用JDK 8及以上版本)。
  2. 确认安装好了RocketMQ服务端的压缩包(下载地址详见官网)。
  3. 确认你拥有安装并运行RocketMQ所需的系统权限。

安装步骤

  1. 下载RocketMQ服务端的压缩包,解压到指定目录下:

bash
tar zxvf rocketmq-all-4.9.1-bin-release.tar.gz -C /usr/local/

  1. 配置环境变量:

~/.bashrc~/.bash_profile末尾追加以下内容:

bash
export ROCKETMQ_HOME=/usr/local/rocketmq-all-4.9.1-bin-release
export PATH=$PATH:$ROCKETMQ_HOME/bin

让配置生效:

bash
source ~/.bashrc

  1. 启动Name Server和Broker:

bash
nohup sh $ROCKETMQ_HOME/bin/mqnamesrv &
nohup sh $ROCKETMQ_HOME/bin/mqbroker -n localhost:9876 &

  1. 验证是否启动成功:

bash
tail -f $ROCKETMQ_HOME/logs/rocketmqlogs/namesrv.log
tail -f $ROCKETMQ_HOME/logs/rocketmqlogs/broker.log

上述命令行的输出日志中如果没有错误信息,则说明安装成功。

示例说明

示例一:创建Topic

创建一个示例的test_topic Topic,分别在两个Producer和Consumer上发布和接收消息。

  1. 先启动Consumer:

bash
sh $ROCKETMQ_HOME/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer test_consumer_group test_topic localhost:9876

  1. 再启动两个Producer:

bash
sh $ROCKETMQ_HOME/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer test_topic localhost:9876
sh $ROCKETMQ_HOME/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer test_topic localhost:9876

  1. 通过Producer分别向Topic发送消息:

bash
hello rocketmq 1
hello rocketmq 2

  1. 在Consumer上看是否可以接收到消息:

CONSUME: ConsumeResult [MessageExt=messageExt {topic='test_topic', brokerName='**', queueId=1, storeSize=129, queueOffset=1, sysFlag=0, bornTimestamp=1642424835662, bornHost=/192.168.1.1:40482, storeTimestamp=1642424835728, storeHost=/192.168.1.1:10911, msgId='3662D71846360DD1AAC4926847E00000', commitLogOffset=889, bodyCRC=1583895369, reconsumeTimes=0, preparedTransactionOffset=0}, status=CONSUME_SUCCESS, isSuccess=true]
CONSUME: ConsumeResult [MessageExt=messageExt {topic='test_topic', brokerName='**', queueId=1, storeSize=129, queueOffset=2, sysFlag=0, bornTimestamp=1642424841707, bornHost=/192.168.1.1:40482, storeTimestamp=1642424841726, storeHost=/192.168.1.1:10911, msgId='3662D71B00000DD1AAC4926847FE0000', commitLogOffset=1705, bodyCRC=-1914527645, reconsumeTimes=0, preparedTransactionOffset=0}, status=CONSUME_SUCCESS, isSuccess=true]

示例二:消息发送状态查询

通过查询消息发送状态,可以判断消息是否发送成功,并找到发送失败的原因。

  1. 先启动Producer:

bash
sh $ROCKETMQ_HOME/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer test_topic localhost:9876

  1. 发送消息并查看发送状态:

bash
sh $ROCKETMQ_HOME/bin/rocketmq-console.sh queryMsgById -n localhost:9876 --msgId=C0A81A0100002A9F00000000003C4F2E

上述命令中的--msgId参数值需要替换为实际发送的消息ID。

如果消息发送成功,则会返回如下信息:

{
"msgId": "C0A81A0100002A9F00000000003C4F2E",
"messageQueue": {
"brokerName": "**",
"topic": "test_topic",
"queueId": 0
},
"status": "SEND_OK",
"body": "***",
"QueueOffset": 6,
"queueId": 0,
"transactionId": null,
"bornTimestamp": 1642429384913,
"storeTimestamp": 1642429384945,
"bornHost": "192.168.1.1:38676",
"storeHost": "192.168.1.1:10911",
"commitLogOffset": 1573,
"bodyCRC": 229289180,
"reconsumeTimes": 0
}

如果消息发送失败,则会返回如下信息:

{
"msgId": "C0A81A0100002A9F00000000003C4F2E",
"messageQueue": {
"brokerName": "**",
"topic": "test_topic",
"queueId": 0
},
"status": "SEND_OK",
"body": "***",
"QueueOffset": 6,
"queueId": 0,
"transactionId": null,
"bornTimestamp": 1642429384913,
"storeTimestamp": 1642429384945,
"bornHost": "192.168.1.1:38676",
"storeHost": "192.168.1.1:10911",
"commitLogOffset": 1573,
"bodyCRC": 229289180,
"reconsumeTimes": 3
}

如果消息发送过程中遇到了某些问题,那么status字段的值就会反映出对应的情况。例如,如果因为Broker无法写入消息而发送失败,则status字段的值为FLUSH_DISK_TIMEOUT。在查看消息发送状态时,你需要参考官方文档来对各种发送状态进行识别和判断。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux安装RocketMQ实例步骤 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • Java实现办公文档在线预览功能

    实现Java办公文档的在线预览功能需要完成以下步骤: 步骤一:选择合适的文件预览解决方案 Java实现办公文档在线预览功能需要使用第三方工具来解析文档文件,目前比较流行的解决方案有如下几种: LibreOffice:可实现对多种文档格式的解析,包括Microsoft Office文件,OpenOffice文件,PDF文件等等。 Aspose.Words:仅支…

    Java 2023年5月19日
    00
  • Java中IO流文件读取、写入和复制的实例

    下面是Java中IO流文件读取、写入和复制的实例的完整攻略。 IO流简介 在Java中,输入输出都是通过流(Stream)来实现的,也就是将数据源或者目的地以流的形式组织起来,以字节为基础的流就是字节流,以字符为基础的流就是字符流。在Java中,IO流分为四个抽象类:InputStream、OutputStream、Reader和Writer。 文件读取 J…

    Java 2023年5月20日
    00
  • 多端登录如何实现踢人下线需求实现

    实现多端登录下的踢人下线需求,可以采用以下几种方法: 基于Token和Session实现 方案简介:采用Token和Session配合,来实现多端登录下的踢人下线需求实现。 接口可以采用Token认证,每次客户端请求接口时,服务端进行Token验证并通过Session记录Token。 当用户进行登录操作时,客户端请求登录接口,服务端通过验证用户的账号和密码,…

    Java 2023年5月23日
    00
  • javascript实现自动填写表单实例简析

    下面我就为大家详细讲解一下“JavaScript实现自动填写表单实例简析”的完整攻略。 1. 确认表单元素 首先,在实现自动填写表单之前,我们需要先确认表单中需要填写的元素。可以通过浏览器的开发者工具或者JavaScript代码获取。在HTML中,表单元素通常通过<input>、<select>、<textarea>等标签…

    Java 2023年6月15日
    00
  • 如何使用Spring Security手动验证用户的方法示例

    下面我为你讲解如何使用Spring Security手动验证用户的方法示例,并提供两个示例。 如何使用Spring Security手动验证用户的方法示例 概述 Spring Security是一个基于Spring框架的安全性解决方案,它提供了许多实用的功能,可以用于开发安全的web应用程序。其中之一就是手动验证用户的方法。 在Spring Security…

    Java 2023年5月20日
    00
  • Java基础之代码死循环详解

    Java基础之代码死循环详解 简介 代码死循环是指在程序运行过程中,因为某些原因造成程序不停地重复执行某一段代码的现象。死循环通常是因为程序设计不合理或者编写错误所导致的,如果长时间不会自动退出,会造成计算机死机或者卡死。代码死循环是编写程序时需要避免的错误。 常见死循环 for循环死循环 for(int i=0; i>=0; i++){ System…

    Java 2023年5月20日
    00
  • TOMCAT内存溢出及大小调整的实现方法

    TOMCAT内存溢出及大小调整的实现方法 在TOMCAT服务运行时,经常会出现内存溢出的问题。这时我们需要调整TOMCAT的内存大小,以避免出现卡顿、崩溃等问题。下面将详细讲解如何进行这一操作。 1. 确定TOMCAT的启动脚本 在Linux环境中,TOMCAT的启动脚本位于/etc/init.d/tomcat目录下。我们需要编辑这个脚本来进行内存大小的调整…

    Java 2023年6月2日
    00
  • Java Web 实现QQ登录功能一个帐号同一时间只能一个人登录

    首先我们需要了解一下QQ登录的实现流程。 用户打开网站,点击QQ登录按钮。 网站向QQ开放平台发送授权请求,获取用户授权。 QQ开放平台返回用户授权凭证,包含用户唯一标识openid。 网站拿到授权凭证后,向QQ开放平台发送请求,获取用户信息。 网站将用户信息保存在数据库中,同时在用户登录时生成一个token,返回给用户。 用户在访问其他需要登录的页面时,将…

    Java 2023年6月16日
    00
合作推广
合作推广
分享本页
返回顶部