PHPRdfKafka вместо создания новой топи c как произвести в существующую тему - PullRequest
1 голос
/ 21 июня 2020

Быстрый вопрос, я захожу в Kafka, используя php -rdkafka (https://github.com/arnaud-lb/php-rdkafka).

Я просмотрел документацию и не могу найти синтаксис для создания в существующий topi c, если только синтаксис newTopi c не будет вставлен в существующий topi c, в чем я сомневаюсь. Я продолжаю получать ошибку Java, и я не очень хорошо отлаживаю ошибку Java. Я прошу помощи у тех, кто использовал фреймворк, правильный ли синтаксис? Пожалуйста, посоветуйте

<?php

$conf = new RdKafka\Conf();
$conf->set('metadata.broker.list', 'localhost:9092');

//If you need to produce exactly once and want to keep the original produce order, uncomment the line below
//$conf->set('enable.idempotence', 'true');

$producer = new RdKafka\Producer($conf);

$topic = $producer->newTopic("test"); // Is this a correct syntax to consume existing topic?

for ($i = 0; $i < 10; $i++) {
    $topic->produce(RD_KAFKA_PARTITION_UA, 0, "Message $i");
    $producer->poll(0);
}

for ($flushRetries = 0; $flushRetries < 10; $flushRetries++) {
    $result = $producer->flush(10000);
    if (RD_KAFKA_RESP_ERR_NO_ERROR === $result) {
        break;
    }
}

if (RD_KAFKA_RESP_ERR_NO_ERROR !== $result) {
    throw new \RuntimeException('Was unable to flush, messages might be lost!');
}

1 Ответ

0 голосов
/ 06 июля 2020

Согласно обсуждению с разработчиком,

Следующий синтаксис можно использовать для создания новых топов c и добавления данных в следующие / существующие топи c

$topic = $producer->newTopic("test"); /
...