经过我的测试发现确认后的消息不删除

测试的是消费者对消息执行了ACK操作,但在另外一个控制层中执行:

Message<byte[]> messageById = pulsarAdmin.topics().getMessageById("persistent://public/default/myTopic1", 30, 0);
System.out.println(new String(messageById.getData()));

还能取到消息,说明消息经过ACK处理后并未删除

是的 ACK消息和删除消息是两个逻辑,未删除也是属于正常行为。

可以了解下 pulsar 消息的生命周期。

以下文章来自 Streamnative 公众号