rocketmq 消息 自定义_rocketmq中的自定义消息头
时间: 2023-11-15 11:12:12 浏览: 316
在RocketMQ中,可以通过设置自定义消息头来在消息中添加一些额外的信息。自定义消息头由键值对组成,其中键和值都是字符串类型。
以下是设置自定义消息头的示例代码:
```java
// 创建消息实例
Message message = new Message("TopicTest", "TagA", "Hello RocketMQ".getBytes());
// 设置自定义消息头
message.putUserProperty("key1", "value1");
message.putUserProperty("key2", "value2");
// 发送消息
SendResult result = producer.send(message);
```
在上面的示例中,我们使用`putUserProperty`方法来设置自定义消息头。这个方法接受两个字符串参数,第一个参数是键,第二个参数是值。
在接收到消息时,可以通过`MessageExt`对象的`getUserProperties`方法来获取自定义消息头的值。以下是示例代码:
```java
// 接收消息
List<MessageExt> msgs = consumer.consumeMessageDirectly("TopicTest", "TagA", 32, 1000);
// 遍历消息列表
for (MessageExt msg : msgs) {
// 获取自定义消息头的值
String value1 = msg.getUserProperty("key1");
String value2 = msg.getUserProperty("key2");
// 处理消息
System.out.println(new String(msg.getBody()));
}
```
在上面的示例中,我们使用`getUserProperty`方法来获取自定义消息头的值。这个方法接受一个字符串参数,即要获取的自定义消息头的键。如果消息中没有设置该键的自定义消息头,这个方法将返回null。
阅读全文