RabbitMQ 用SpringBoot处理消息队列

来源:互联网 发布:html5 modernizer.js 编辑:程序博客网 时间:2024/04/25 19:09

使用

RabbitMQ直接被SpringBoot支持,使用是非常的方便。具体只需要做三件事:

在SpringBoot项目文件中引入消息队列的库

compile("org.springframework.boot:spring-boot-starter-amqp")// 或者compile('org.springframework.cloud:spring-cloud-starter-bus-amqp')

添加RabbitMQ的登录配置

spring.rabbitmq.host    "your host ip or domain name"spring.rabbitmq.port    5672spring.rabbitmq.username    "mqadmin"spring.rabbitmq.password    "mqadmin"

使用注解实现生产者或者消费者

// 发送消息// 在Compontent类中使用Autowired注入RabbitTemplate,实现消息模板@AutowiredRabbitTemplate rabbitTemplate;rabbitTemplate.convertAndSend("MessageQueueName", "{some string content....}");// 接收消息// 使用RabbitListener注解接收消息的方法// 参数为String类型,没有返回值(void)@RabbitListener(queues = "MessageQueueName")public void processMessage(String message) {}

配合RabbitMQ的管理界面测试的问题

RabbitMQ提供了一个非常好用的管理界面,可以直接查看消息队列,还可以对队列进行添加,清空操作。
可是当通过管理界面添加的消息给SpringBoot的RabbitMQ消费时,会有乱码的问题!如果直接使用SpringBoot的RabbitTemplate模板是没有问题的。
这个问题主要的原因在于两个端使用的消息格式不一致导致的。
为了通过管理界面给SpringBoot的消费者发送测试消息需要添加两个属性,保证SpringBoot的代码可以解析。
RabbitMQ-Publish message content_type
主要是添加两个属性:
“content_type”:”text/plain”
“content_encoding”:”UTF-8”
表示内容类型为文本,编码格式为UTF-8。
这个非常重要,如果查看SpringBoot代码投递的消息,通过GetMessage可以查看SpringBoot输出的消息就是这个样子的。

阅读全文
0 0
原创粉丝点击