RabbitMQ配置消息转换器

1. 默认转换器

@Test
public void testSendMap() throws InterruptedException {
    // 准备消息
    Map<String, Object> msg = new HashMap<>();
    msg.put("name", "harry");
    msg.put("age", 21);
    // 发送消息
    rabbitTemplate.convertAndSend("object.queue", msg);
}

RabbitMQ配置消息转换器_第1张图片

2. 配置转换器

引入依赖

Jackson依赖。
<dependency>
    <groupId>com.fasterxml.jackson.dataformatgroupId>
    <artifactId>jackson-dataformat-xmlartifactId>
    <version>2.9.10version>
dependency>
@Bean
public MessageConverter messageConverter(){
    // 1.定义消息转换器
    Jackson2JsonMessageConverter jackson2JsonMessageConverter = new Jackson2JsonMessageConverter();
    // 2.配置自动创建消息id,用于识别不同消息,也可以在业务中基于ID判断是否是重复消息
    jackson2JsonMessageConverter.setCreateMessageIds(true);
    return jackson2JsonMessageConverter;
}

RabbitMQ配置消息转换器_第2张图片

3. 消费消息

@RabbitListener(queues = "object.queue")
public void listenSimpleQueueMessage(Map<String, Object> msg) {
    System.out.println("消费者接收到object.queue消息:【" + msg + "】");
}

你可能感兴趣的:(RabbitMQ,rabbitmq,分布式)