title: RabbitMQ 拓展篇 date: 2019-01-22 16:17:19 tags: [Spring Boot,消息队列]
在 rabbitMq 中还有个重要的组件是 MessageConverter,用于消息格式的设置。 默认使用amqp的 SimpleMessageConverter 使用text传输,在传输量较大的数据时比较消耗性能。 另一种就是 Jackson2JsonMessageConverter,使用json传输。
全局配置文件
@Configuration
public class RabbitMqConfig {
/* 设置消息传输形式 使用jackson 相对默认SimpleMessageConverter 提高性能 */
/**
* 发送消息设置用json的形式序列化
* @param connectionFactory
* @return
*/
@Bean
public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
RabbitTemplate template = new RabbitTemplate(connectionFactory);
template.setMessageConverter(new Jackson2JsonMessageConverter());
return template;
}
/**
* 接受的时候使用jackson 反序列化
* @param connectionFactory
* @return
*/
@Bean
public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory) {
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
factory.setConnectionFactory(connectionFactory);
factory.setMessageConverter(new Jackson2JsonMessageConverter());
return factory;
}
}
接受者配置
@Component
@RabbitListener(queues = "dcloud.fanout.queue",containerFactory = "rabbitListenerContainerFactory")
public class FanoutReceiverA {
@RabbitHandler
public void process(@Payload String message) {
System.out.println("receive" + message);
}
}
贴出simple和jack ,string和Object 数据传输格式