从0开始学习RocketMQ,这一节主要是windows下环境部署,以及我理解的基本使用流程。
安装
1.下载地址:下载 | RocketMQ
注意,如果是windows环境下需要下载的是二进制文件,也就是这一列。
2.下载后解压到自己想要的目录。
3.配置环境变量。在系统变量中新建。注意,要保证变量值中填写路径的下一级就是bin目录了。
注意:如果不是jdk8的版本,在启动rocketmq的时候可能会出现闪退的问题,所以最好是在jdk1.8的环境下进行配置。
4.启动namesrv:进入bin目录,双击打开mqnamesrv.cmd。
5.在bin目录下打开命令行窗口,输入:
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
但是我这里又报错了,所以只好去掉autoCreateTopicEnable=true.
反正现在就算是启动了吧,注意4、5步这两个命令行窗口都不要关闭。
然后就开始在项目中进行相关配置了。
项目使用
1.在pom.xml中引入相关依赖,但是尴尬的是不论哪个版本,我都不能引入,如果大家有解决方法可以给我评论一下!
引入依赖格式:
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.5.1</version>
</dependency>
2.配置application.yml或者application.properties文件。(图源右下角博主)
# chatgpt给的配置
# Name Server地址
rocketmq.name-server=127.0.0.1:9876
# 生产者组名
rocketmq.producer.group=my-group
# 消费者组名
rocketmq.consumer.group=my-group
3.创建生产者类和消费者类。简单示例如下:
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class MyProducer {
@Autowired
private RocketMQTemplate rocketMQTemplate;
public void sendMessage(String message) {
rocketMQTemplate.convertAndSend("my-topic", message);
}
}
消费者:
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;
@Component
@RocketMQMessageListener(topic = "my-topic", consumerGroup = "my-group")
public class MyConsumer implements RocketMQListener<String> {
@Override
public void onMessage(String message) {
System.out.println("Received message: " + message);
}
}
4.调用生产者和消费者。
一旦RocketMQ配置正确并且相关组件正在运行,可以在代码中调用生产者和消费者。
对于生产者,可以在需要发送消息的地方调用生产者的方法。在上面的示例中,我们创建了一个名为MyProducer
的生产者,并在其中定义了一个sendMessage
方法。可以通过获取MyProducer
实例并调用sendMessage
方法来发送消息。例如:
@Autowired
private MyProducer myProducer;
public void someMethod() {
myProducer.sendMessage("Hello, RocketMQ!");
}
5.那么消费者在接收到消息的时候就会自动进行处理。所以生产者是显式调用的,但是消费者是无需用户主动调用的(那应该就是容器来处理)。
但是非常尴尬的是依赖引入失败,所以后续都是纸上谈兵。明天再看看怎么回事,争取把小demo跑通吧。
参考链接:RocketMQ 入门使用-腾讯云开发者社区-腾讯云
windows安装RocketMQ_rocketmq windows_book多得的博客-CSDN博客