rocketmq 消息 自定义_rocketmq中的自定义消息头

本文介绍了在SpringBoot中使用RocketMQ时如何添加自定义消息头。通过使用`MessageBuilder`设置`setHeader`,发现自定义头与内置属性冲突时会添加`USER_`前缀,但某些内置属性如`MessageConst.PROPERTY_BUYER_ID`并未按此规则处理。发送消息时,`TAGS`属性需要作为发送函数的第一个参数来设定。
摘要由CSDN通过智能技术生成

在springboot中使用rocketmq的客户端,有2种方式。

一是使用 org.apache.rocketmq的rocketmq-client

二是,在pom.xml中引用

org.apache.rocketmq

rocketmq-spring-boot-starter

2.0.3

在原文的FAQ的6和7中的描述,即可以添加自定义的头属性。

在实验中发现,与原有定义的属性名称重复的自定义名称将按照描述中的说明添加“USER_”,如果不是冲突的名称,则不会被改变。

public void send() throws InterruptedException {

Message> msg = MessageBuilder.withPayload("Hi rocketmq!")

.setHeader(MessageConst.PROPERTY_KEYS, "20191018")

.setHeader("TAGS", "191018")

.setHeader(MessageConst.PROPERTY_BUYER_ID,"20191018a")

.setHeader("MQ", "user_mq")

.build();

template.convertAndSend(topic + ":1018", "topic with tags");

java.lang.Thread.sleep(2000);

template.send(topic, msg);

log.info("send mq message, ext message" + msg.toString());

}

setHeader("TAGS", "191018"),将被过滤掉,setHeader("USER_TAGS", "191018"),在接收端能收到结果的。

想添加tags属性应该只能放在发送函数中的第一个参数中。如代码中的 ‘(topic + ":1018",’

setHeader(MessageConst.PROPERTY_KEYS, "20191018"),是有效的。

比如 MessageConst.PROPERTY_BUYER_ID 这样的MessageConst下的其他属性(试过几个)似乎都被过滤了。并不像是描述中说的那样添加 “USER_”前缀。

标签:自定义,topic,rocketmq,MessageConst,PROPERTY,setHeader,消息

来源: https://www.cnblogs.com/htsky/p/rocketmq.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值