我可以使用來(lái)自 Kafka 的消息,前提是我使用嚴(yán)格的名稱(chēng)指定主題,例如“some_topic”,但我想使用與特定正則表達(dá)式匹配的主題:<?php$conf = new RdKafka\Conf();//$conf->set('log_level', 1);//$conf->set('debug', 'all');$rk = new RdKafka\Consumer($conf);$rk->addBrokers("localhost:9092");$topic = $rk->newTopic("^postgres.public.table_[0-9]+_");$topic->consumeStart(0, RD_KAFKA_OFFSET_BEGINNING);while (true) { $msg = $topic->consume(0, 1000); if (null === $msg || $msg->err === RD_KAFKA_RESP_ERR__PARTITION_EOF) { continue; } elseif ($msg->err) { echo $msg->errstr(), "\n"; break; } else { echo $msg->payload; echo "\n\n"; }}如您所見(jiàn),主題名稱(chēng)是^postgres.public.table_[0-9]+_. 但是,它不起作用。我在控制臺(tái)中收到這些錯(cuò)誤消息:%3|1579347443.452|ERROR|rdkafka#consumer-1| [thrd:app]: rdkafka#consumer-1: ^postgres.public.object_[0-9]+_ [0]: topic does not exist (Broker: Invalid topic)那有什么問(wèn)題,我該如何解決?
1 回答

MMMHUHU
TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
newTopic()
用于創(chuàng)建RdKafka\Topic
對(duì)象的新實(shí)例。它不用于加入主題。
使用該subscribe()
方法加入基于模式的主題,在本例中為正則表達(dá)式。所以你使用類(lèi)似的東西:
$rk->subscribe('^postgres.public.table_[0-9]+_');
- 1 回答
- 0 關(guān)注
- 156 瀏覽
添加回答
舉報(bào)
0/150
提交
取消