简单Rabbitmq 发送消息和接收消息
1 先在Rabbitmq配置文件中预先创建好交换器,队列,路由等信息。
2 创建生产者发送消息
@Autowired
private RabbitTemplate rabbitTemplate;
private void mqSendMessage(UserOperLog userOperLog) throws Exception{
rabbitTemplate.setExchange("test.file.exchange");
rabbitTemplate.setRoutingKey("test.file.routing.key");
//string 类型
System.out.println("发送消息成功--"+JSONObject.toJSON(userOperLog).toString());
rabbitTemplate.convertAndSend(JSONObject.toJSON(userOperLog).toString());
}
先发送消息,举例场景是在用户操作后,将用户操作日志信息发送到队列中
打印信息:
发送消息成功--{"method":"","operation":"新增用户-rabbitmq","username":"admin"}
在rabbitmq后台管理界面进行查看,找到队列中的小内容,
查看消息内容,和我插入的信息一致
3 创建监听器,
@Component
@Slf4j
public class FileMqListener {
//指定要监听的队列 ,消费实例
@RabbitListener(queues = {"test.file.queue"},containerFactory = "singleListenerContainer")
public void consumeMsg(@Payload String msg) {
try {
System.out.println("监听到消息--"+msg);
} catch (Exception e) {
e.printStackTrace();
}
}
}
单一消费者实例 ,就是一个消费者进行消费
@Bean(name = "singleListenerContainer")
public SimpleRabbitListenerContainerFactory listenerContainer(){
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
factory.setConnectionFactory(connectionFactory);
factory.setMessageConverter(new Jackson2JsonMessageConverter());
factory.setConcurrentConsumers(1);
factory.setMaxConcurrentConsumers(1);
factory.setPrefetchCount(1);
return factory;
}
@RabbitListener 监听queue中是否有需要被消费的信息,
打印信息如下:
test.file.queue--监听到消息--{"method":"","operation":"新增用户-rabbitmq","username":"admin"}
4 测试在rabbitmq后台管理界面发布消息
打印信息:
test.file.queue--监听到消息--rabbitmq后台手动发布消息
然后就可以开始了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)