确保本地环境有jdk和maven(检查一下)
在Windows系统中,可以通过按下Windows键+R
,输入cmd
并回车来打开命令行窗口
在命令行中输入java -version命令,如果JDK已经安装,系统会显示安装的Java版本信息
在命令行中输入mvn -v命令,如果maven已经安装,系统会显示安装的maven版本信息
去RocketMQ官网下载一个版本,我这里下载的4.4.0版本
下载好以后进行解压
1.配置一下RocketMQ环境变量
2.打开bin目录,找到runbroker.cmd文件,修改这个文件,在%CLASSPATH%左右加双引号""
3.先启动 NameServer
进入bin目录下,双击启动 mqnamesrv.cmd ,启动成功如下
4.在启动Broker
进入bin目录,打开cmd命令窗口:
输入:start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true,启动成功如下
5.去RocketMQ官网下载控制台 (往下滑) 下载 | RocketMQ (apache.org)
6.解压后在idea中打开,修改配置文件
7.启动应用
8.http://localhost:8080 访问控制台,可以更换语言
到这里差不多就结束了
下面是一个使用Java编写的简单生产者和消费者示例,用于测试RocketMQ是否可用
首先,确保已经正确安装并启动了RocketMQ的NameServer和Broker。然后按照以下步骤进行操作:
1.创建生产者
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.common.message.Message;
public class Producer {
public static void main(String[] args) throws Exception {
// 初始化生产者配置
DefaultMQProducer producer = new DefaultMQProducer("producer_group");
producer.setNamesrvAddr("localhost:9876"); // 设置NameServer地址
producer.start();
// 发送消息
for (int i = 0; i < 10; i++) {
Message msg = new Message("test_topic", "tagA", ("Hello RocketMQ " + i).getBytes());
producer.send(msg);
System.out.println("Send message: " + msg);
}
// 关闭生产者
producer.shutdown();
}
}
2.创建消费者
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.common.message.MessageExt;
public class Consumer {
public static void main(String[] args) throws Exception {
// 初始化消费者配置
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("consumer_group");
consumer.setNamesrvAddr("localhost:9876"); // 设置NameServer地址
consumer.subscribe("test_topic", "*"); // 订阅主题和标签
// 注册消息监听器
consumer.registerMessageListener(new MessageListenerConcurrently() {
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
for (MessageExt msg : msgs) {
System.out.printf("%s Receive New Messages: %s %n", Thread.currentThread().getName(), new String(msg.getBody()));
}
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
});
// 启动消费者
consumer.start();
System.out.printf("Consumer Started.%n");
}
}
3. 运行生产者和消费者
- 首先运行
Producer
类,它将向名为test_topic
的主题发送10条消息。 - 然后运行
Consumer
类,它将消费这些消息并打印到控制台。
如果一切正常,你应该能在消费者控制台上看到接收到的消息。这表示RocketMQ已经成功搭建并可以使用