RabbitMQ统一消息处理

添加消息请求头

使用RabbitMQ进行异步通信时,可能不仅仅需要传递消息本身,有时需要包含一些额外的信息,比如登录状态。可以参考前端发送请求时的做法,把登录状态保存在请求头中。Message类中也有请求头,可以使用一下方式添加到请求头:

message.getMessageProperties().getHeaders().put("user-info", 1L);

实际使用中,没有必要每次都创建一个Message类,然后手动添加。通过MessagePostProcessor可以简单实现请求头添加,而最常用的convertAndSend方法就可以直接传入MessagePostProcessor作为参数:

String exchangeName = "test.direct";
String key = "test";
rabbitTemplate.convertAndSend(exchangeName, key, "msg", new MessagePostProcessor() {
    @Override
    public Message postProcessMessage(Message message) throws AmqpException {
        message.getMessageProperties().setHeader("user-info", 1L);
        // 这里也可以做一些其他的统一逻辑处理
        return message;
    }
});

也可以这样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值