使用 set-message-ttl 命令并指定命名空间名称(默认为 public/default for persistent topic)和时间。
bin/pulsar-admin namespaces set-message-ttl public/default --messageTTL 120
生产者和消费者实现ttl的示例代码(python客户端)
import pulsar
client = pulsar.Client('pulsar://localhost:6650')
producer = client.create_producer('my-topic-reader1')
producer.send(('Hello-Pulsar1').encode('utf-8'))
producer.send(('Hello-Pulsar2').encode('utf-8'))
producer.send(('Hello-Pulsar3').encode('utf-8'))
producer.close()
client.close()
您可以使用发送方法发送多条消息。两个类中的主题名称应相同。
import pulsar
client = pulsar.Client('pulsar://localhost:6650')
consumer = client.subscribe("my-topic-reader1", "my-subscription")
//receive all the messages.whatever we publish
msg = consumer.receive()
print("Received message '{}' id='{}'".format(msg.data(), msg.message_id()))
//Here we are not acknowledge all the messages.
//close the consumer and client
consumer.close()
client.close()
在 120 秒内,我们再次打开客户端和消费者并尝试读取相同的消息,这不是发布。我们再次关闭客户端和消费者。
稍后(120 秒后),我们将再次打开客户端和消费者,然后尝试接收消息。但它不应该来。在这种情况下,你正在实现生存时间。