pom中导入对应的坐标
因为springboot没有收录rocket,所以我们需要到maven官网上去搜索
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.2.1</version>
</dependency>
书写yml配置
rocketmq:
name-server: localhost:9876
producer:
group: rocket1 //自定义默认消息队列的所在组名
同步消息业务层代码
@Autowired
private RocketMQTemplate template;
@Override
public void getMessage(String id) {
System.out.println("待发送短信的订单已纳入处理队列,id:"+id);
template.convertAndSend("one",id); //前者代表消息队列名
}
异步消息业务层代码
@Autowired
private RocketMQTemplate template;
@Override
public void getMessage(String id) {
SendCallback callback=new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
System.out.println("消息发送成功");
}
@Override
public void onException(Throwable throwable) {
System.out.println("消息发送失败!!!");
}
};
System.out.println("待发送短信的订单已纳入处理队列,id:"+id);
template.asyncSend("one",id,callback); //多了一个参数
}
监听器即消费者代码
@Component
@RocketMQMessageListener(topic = "one",consumerGroup = "rocket1") //消息队列名,消息队列组
public class RocketListener implements RocketMQListener<String> { //泛型为消息的数据类型
@Override
public void onMessage(String id) { //消息的数据类型
System.out.println("已完成短信发送业务,id:"+id);
}
}
有监听器我们就不用手动的去请求处理消息了,一旦有消息产生会自动处理。
ok,现在你就可以启动服务器用控制层去请求消息了。