目录
1.创建topic
此处使用RocketMq图形界面新建topic
安装RocketMq请移步 =====》》》
RocketMq安装控制台图形界面_Dreams°华的博客-CSDN博客
此处已创建好topic
2.新建Spring boot项目
3.导入依赖
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
4.配置yml文件
端口 服务器地址 组名
server:
port: 9091
#rocketmq配置信息
rocketmq:
#nameservice服务器地址(多个以英文逗号隔开)
name-server: 127.0.0.1:9876
#生产者配置
producer:
#组名
group: anran-producer-group
#目的地(topic:tag)
#topic
topic: anran-topic
#sync tag(同步消息tag)
sync-tag: anran-sync-tags
#async tag(异步消息tag)
async-tag: anran-async-tags
#oneway tag(单向消息tag)
oneway-tag: anran-oneway-tags
5.新建Controller(生产服务)
往主题 first_topic 添加信息
注意 JmsConfig.TOPIC(主题名要一样 此处用 ‘first_topic’)
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MessageController {
@Autowired
private RocketMQTemplate rocketMQTemplate;//注入Mq
@RequestMapping(value = "/CreateProduct",method = RequestMethod.GET)
public String createProduct(String s) {
//添加信息
rocketMQTemplate.convertAndSend(JmsConfig.TOPIC,"添加信息为:==="+s);
return "添加成功";
}
}
6.新建消费者
此时消费者和生产者 写在同一个项目,也可以写在不同项目,写法一样依赖一样
注意 JmsConfig.TOPIC(主题名要一样 此处用 ‘first_topic’)
consumerGroup = "my-consumer-group" 一个生产者可以有 无数个消费者但是消费者 组名不能一样,Mq根据组名 进行发信息(可以这样理解) 若组名一样 只会发其中一个消费者
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;
@Component
@RocketMQMessageListener(topic = JmsConfig.TOPIC,consumerGroup = "my-consumer-group")
public class Consumer implements RocketMQListener<String> {
@Override
public void onMessage(String message) {
System.out.println("消费者收到信息:==="+message);
}
}
7.配置类(定义topic)
public class JmsConfig {
/**
* 主题名称 主题一般是服务器设置好 而不能在代码里去新建topic( 如果没有创建好,生产者往该主题发送消息 会报找不到topic错误)
*/
public static final String TOPIC = "first_topic";
}
此时运行项目
8.添加消息以及 消费者查看
8.1 调用接口 往Mq中添加消息
8.2添加消息后 消费者监听到消息 进行消费
9.MQ图形界面控制台查看
这一步可以没有,只是为了看下添加信息