在这里,我使用spring-cloud-starter-stream-rocketmq和spring-message发送消息dn,例如
Message m = MessageBuilder.withPayload(obj).setHeader(RocketMQHeaders.TAGS, tag).build();
MessageChannel.output().send(m);
但我想在队列中设置消息过期时间,如果它不被使用的话。
我知道rocketmq可以设置ttl,但我不知道它是否可以设置为不同的消息,以及如何在之前的代码中使用?
发布于 2021-02-08 11:07:43
恐怕你错了。
RocketMQ不支持ttl,这意味着消息将不会被删除,尽管消息确实会在一段时间(例如7天)后被删除。
因此,如果你需要实现像消费这样的ttl,你应该在你的消费者中这样做:
if (System.currentTimeMills()-msg.getStoreTimestamp > SOME_TIME) {
//DO NOT CONSUME
}
https://stackoverflow.com/questions/65611172
复制相似问题