在 PHP 的 RdKafka 扩展中,要设置消息保留(即消息的过期时间),您需要使用 rd_kafka_topic_set_prop
函数为特定的主题设置消息保留策略。以下是一个示例代码,展示了如何为一个名为 “my_topic” 的主题设置消息保留时间为 1800 秒(30 分钟):
<?php
// 初始化 Kafka 生产者
$conf = new \RdKafka\Conf();
$producer = new \RdKafka\Producer($conf);
$producer->addBrokers("localhost:9092");
// 设置消息保留策略
$topic = "my_topic";
$retention_ms = 1800 * 1000; // 1800 秒
$conf->set(RD_KAFKA_TOPIC_PROP_RETENTION_MS, $retention_ms);
$producer->setConf($conf);
// 发送消息
$producer->send([
'topic' => $topic,
'value' => "Hello, World!",
'key' => '',
]);
// 等待消息传输完成
$producer->poll(0);
// 销毁 Kafka 生产者
$producer->close();
?>
在这个示例中,我们首先创建了一个 Kafka 生产者并添加了 Kafka 代理。然后,我们使用 rd_kafka_topic_set_prop
函数为名为 “my_topic” 的主题设置了消息保留时间为 1800 秒。最后,我们发送了一条消息并等待其传输完成。在完成这些操作后,我们销毁了 Kafka 生产者。