win7下安装RocketMQ并启动

本文档详细介绍了在Windows环境下如何部署和启动Apache RocketMQ,包括下载解压工程,配置系统环境变量,启动NAMESERVER和BROKER。在启动消费者和生产者时,遇到'找不到或无法加载主类'的问题,解决方法是在runbroker.cmd中将%CLASSPATH%加上英文双引号。此外,针对'NoRouteInfoOfThisTopic'错误,提供了修改broker.properties自动创建Topic的配置或升级RocketMQ版本至4.4.0的解决方案。

一.预备环境

 

1.系统

        Windows

2. 环境

        JDK1.8、Maven、Git

二. RocketMQ部署

1.下载

1.1地址:http://rocketmq.apache.org/release_notes/release-notes-4.2.0/

1.2选择‘Binary’进行下载

1.3解压已下载工程

2. 配置

2.1 系统环境变量配置

        变量名:ROCKETMQ_HOME

        变量值:MQ解压路径\MQ文件夹名

3. 启动

3.1 启动NAMESERVER

        Cmd命令框执行进入至‘MQ文件夹\bin’下,然后执行‘start mqnamesrv.cmd’,启动NAMESERVER。成功后会弹出提示框,此框勿关闭。


3.2 启动BROKER

        Cmd命令框执行进入至‘MQ文件夹\bin’下,然后执行‘start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true’,启动BROKER。成功后会弹出提示框,此框勿关闭。

假如弹出提示框提示‘错误: 找不到或无法加载主类 xxxxxx’。打开runbroker.cmd,然后将‘%CLASSPATH%’加上英文双引号。保存并重新执行start语句。

 

启动消费者

依次输入以下命令:

set NAMESRV_ADDR=localhost:9876
tools.cmd org.apache.rocketmq.example.quickstart.Consumer

启动生产者

重新打开一个cmd窗口,跳转到bin目录下,依次执行以下命令:

set NAMESRV_ADDR=localhost:9876
tools.cmd org.apache.rocketmq.example.quickstart.Producer

谨记:执行消息队列前,需要先启动:

mqnamesrv 和 BROKER:

1. start mqnamesrv.cmd

2. start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true

如果报错:

org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, TopicTest

原因:

  Broker 禁止自动创建Topic,且用户没有通过手动创建此Topic,或者broker 和 Nameserver网络不通;

  

  解决方案:

  1. 修改broker.properties配置,自动创建topic,添加如下:

1

autoCreateTopicEnable=true

  

  2. 升级RocketMQ版本为4.4.0,新版本会默认自动创建

1

2

3

4

5

<dependency>

    <groupId>org.apache.rocketmq</groupId>

    <artifactId>rocketmq-client</artifactId>

    <version>4.4.0</version>

</dependency>

  

### 在 Windows 10 上通过 Docker 安装和配置 RocketMQ #### 准备工作 确保已安装 Docker Desktop 启动服务。对于 Windows 10 用户,推荐使用 WSL2 (Windows Subsystem for Linux 2) 来提高容器性能和支持更多功能。 #### 拉取 RocketMQ 镜像 打开 PowerShell 或者命令提示符窗口,执行如下命令来获取官方 RocketMQ 镜像: ```bash docker pull apacherocketmq/rocketmq:latest ``` 此操作会下载最新版本的 RocketMQ 到本地环境[^1]。 #### 启动 NameServer 和 Broker 实例 创建编辑 `docker-compose.yml` 文件用于定义多个关联的服务实例: ```yaml version: '3' services: namesrv1: image: apacherocketmq/rocketmq:latest container_name: rmqnamesrv environment: - JAVA_OPTS=-server -Xms512m -Xmx512m command: "sh mqnamesrv" ports: - "9876:9876" broker1: image: apacherocketmq/rocketmq:latest container_name: rmqbroker depends_on: - namesrv1 environment: NAMESRV_ADDR: "rmqnamesrv:9876" BROKER_IP1: localhost JAVA_OPTS: "-n rmqnamesrv:9876 autoCreateTopicEnable=true" ports: - "10911:10911" - "10909:10909" ``` 保存文件后,在同一目录下运行以下命令启动所有组件: ```bash docker-compose up -d ``` 这将会以后台模式启动两个容器:一个是名字服务器(nameserver),另一个是消息代理(broker)[^3]。 #### 测试 RocketMQ 是否正常工作 为了验证安装成功与否,可以发送一条简单的测试消息给新建立的消息队列系统。这里提供一段 Python 的例子作为参考实现方式之一: ```python from rocketmq.client import PushConsumer, Message consumer = PushConsumer('please_rename_this_group') consumer.set_namesrv_addr('localhost:9876') consumer.subscribe('TestTopic', lambda msg: print(f'Received message: {msg.body.decode()}')) consumer.start() try: while True: pass except KeyboardInterrupt: consumer.shutdown() ``` 上述脚本监听名为 TestTopic 的主题,打印接收到的信息内容到控制台上。如果一切顺利,则说明 RocketMQ 已经正确设置完毕且能够处理基本的任务需求[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值