时效消息(TTL)
1、介绍
“时效消息”,是在 “普通消息” 的基础上,如果指定时间内未成功消费,则放弃不要了。
- 生产者发布消息,会要求服务端给确认(confirm),否则异常提醒
- 服务端收到消息,并转到队列后,会答复一个接收确认
- 服务端派发消息,会要求消费者给回执(ack)
- 如果派发失败,会不断延时重试。如果指定时间内未成功消费,则放弃不要了。
- 消费者消费后,会答复一个消费回执
2、代码演示
发布“时效消息”:
//例:1小时内有效
let expiration = new Date(System.currentTimeMillis() + 60_000 * 60;
//同步
client.publish("demo.topic", new MqMessage("hello").expiration(expiration));
//异步
client.publishAsync("demo.topic", new MqMessage("hello").expiration(expiration));