RocketMQTemplate注⼊失败的解决RocketMQTemplate 注⼊失败
在使⽤rocketmq 发送消息时,会发现
@Autowired
private RocketMQTemplate rocketMQTemplate;
注⼊RocketMQTemplate 失败。
解决⽅案
究其原因是因为,配置⽂件中,我们没有添加
上图中蓝⾊的两⾏代码,指定发送的组名。写上后,问题解决。
好了,再来说说RocketMQTemplate 的基本使⽤吧~
RocketMQTemplate的使⽤
1、l依赖
<dependency>
<groupId>ketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>ketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.5.1</version>
</dependency>
<dependency>
<groupId>ketmq</groupId>
<artifactId>rocketmq-common</artifactId>
<version>4.5.1</version>
</dependency>
2、配置⽂件
# 必须配置
读取配置文件失败# 指定nameServer
rocketmq.nameServer=192.168.168.168:9876
# 指定发送者组名相当于rabbitmq的virtual host 逻辑上的划分
up=my-group
# 其他可选配置
#rocketmq.producer.send-message-timeout=300000
#rocketmq.producerpress-message-body-threshold=4096
羽生结弦简介#rocketmq.producer.max-message-size=4194304
#-times-when-send-async-failed=0
#-next-server=true
#-times-when-send-failed=2
感恩教师节手抄报3、RocketMQTemplate的基本⽅法
⾸先使⽤@Autowired注⼊MongoTemplate(后⾯直接使⽤,就不特殊说明)@Autowired
private RocketMQTemplate rocketMQTemplate;
简单使⽤
//发送消息
public class ProducerController {
@Autowired
private RocketMQTemplate rocketMQTemplate;
public void send(){
//实体类User
User user=new User(999L,"testUser");
//发送⾃定义对象
有没有一种思念永不疲惫
}1一100送花的含义
考研数学一二三区别}
//接收消息
@Component  //必须注⼊spring容器
@RocketMQMessageListener(
topic = "test_topic",      //topic:消息的发送者使⽤同⼀个topic
consumerGroup = "test_my-consumer",    //group:不⽤和⽣产者group相同
selectorExpression = "*")        //tag
// 在RocketMQ中消费者和发送者组没有关系
// 如果两个消费者groupname和topic都⼀样,则⼆者轮循接收消息
/
/ 如果两个消费者topic⼀样,⽽group不⼀样,则消息变成⼴播机制
// RocketMQListener<>泛型必须和接收的消息类型相同
public class TestListner implements RocketMQListener<User> {
private static final ObjectMapper MAPPER = new ObjectMapper();
@Override
public void onMessage(User user) {
JsonNode jsonNode = adTree(user);//可以使⽤mapper读取json格式数据
Long userId = ("userId").asLong();
System.out.println(user);
}
}
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。