在 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 生產者。