先确定一下版本
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.3.3.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.rocketmq/rocketmq-spring-boot-starter -->
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
定义消息的生产端:
package com.company.cloud.rocket.message;
import com.company.cloud.rocket.dto.User;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.client.producer.SendCallback;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.client.producer.TransactionSendResult;
import org.apache.rocketmq.spring.core.RocketMQLocalRequestCallback;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;
import org.springframework.messaging.support.GenericMessage;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* @author bin.li
* @date 2020/9/6
*/
@Service
@Slf4j
public class MessageProviderService {
@Autowired
private RocketMQTemplate rocketMQTemplate;
/**
* 同步消息
* 重要的消息通知,短信通知
* @param messages
*/
public void sendSyncMessage(String messages){
HashMap<String, Object> maps = new HashMap<>();
Message<String> message = new GenericMessage<String>(messages, new MessageHeaders(maps));
// SendResult sendResult = rocketMQTemplate.syncSend("sync", message);
SendResult sendResult = rocketMQTemplate.syncSend("sync:sync", message);
log.info(sendResult.toString());
}
/**
* 同步顺序消息
* hashkey:Orderly_Queue 随便给的值,只要是一样的就能保证发送到同一个队列queue中,那么就能保证顺序
* 重要的消息通知,短信通知
* @param messages
*/
public void sendSyncOrderlyMessa