Browse Source

添加 rabbitmq 拓展篇

王智勇 5 years ago
parent
commit
3d836a3d2e

+ 64 - 0
source/_posts/rabbitmq2.md

@@ -0,0 +1,64 @@
+---
+title: RabbitMQ 拓展篇
+date: 2019-01-22 16:17:19
+tags: [Spring Boot,消息队列]
+categories: [Java,Spring]
+---
+#### jackson
+在 rabbitMq 中还有个重要的组件是 MessageConverter,用于消息格式的设置。
+默认使用amqp的 SimpleMessageConverter 使用text传输,在传输量较大的数据时比较消耗性能。
+另一种就是 Jackson2JsonMessageConverter,使用json传输。
+
+**全局配置文件**
+```java
+@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;
+    }
+}
+```
+
+**接受者配置**
+```java
+@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 数据传输格式
+
+![javabean_jackson_message](javabean_jackson_message.jpg)
+![javabean_simple_message](javabean_simple_message.jpg)
+![string_jackson_message](string_jackson_message.jpg)
+![string_simple_message](string_simple_message.jpg)

+ 0 - 0
source/_posts/rabbitmq/javabean_jackson_message.jpg → source/_posts/rabbitmq2/javabean_jackson_message.jpg


+ 0 - 0
source/_posts/rabbitmq/javabean_simple_message.jpg → source/_posts/rabbitmq2/javabean_simple_message.jpg


+ 0 - 0
source/_posts/rabbitmq/string_jackson_message.jpg → source/_posts/rabbitmq2/string_jackson_message.jpg


+ 0 - 0
source/_posts/rabbitmq/string_simple_message.jpg → source/_posts/rabbitmq2/string_simple_message.jpg