RabbitMQ 用SpringBoot处理消息队列

使用

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    5672
spring.rabbitmq.username    "mqadmin"
spring.rabbitmq.password    "mqadmin"

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

// 发送消息
// 在Compontent类中使用Autowired注入RabbitTemplate,实现消息模板
@Autowired
RabbitTemplate 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输出的消息就是这个样子的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值