Я хочу создать тему с библиотекой программирования kafka-php.
https://github.com/weiboad/kafka-php
Как я могу сделать?
Если тема не существует на сервере kafka, выполнение этого кода не работает. Он не вставляет 10 сообщений "test1....message". потому что тема не создана.
date_default_timezone_set('PRC');
// Create the logger
$logger = new Logger('my_logger');
// Now add some handlers
$logger->pushHandler(new StreamHandler(DIR . '/app.log', Logger::DEBUG));
$config = \Kafka\ProducerConfig::getInstance();
$config->setMetadataRefreshIntervalMs(10000);
$config->setMetadataBrokerList('127.0.0.1:9092');
$config->setBrokerVersion('1.0.0');
$config->setRequiredAck(1);
$config->setIsAsyn(false);
$config->setProduceInterval(500);
$producer = new \Kafka\Producer();
$producer->setLogger($logger);
for($i = 0; $i < 10; $i++) {
$result = $producer->send([
[
'topic' => 'test1',
'value' => 'test1....message.',
'key' => ''
]
]);
}
Я не думаю, что это поддерживается в доступных библиотеках PHP.
Функциональность реализована в Admin API в клиентской библиотеке Java для Kafka, что позволит вам использовать создать тему. Я обнаружил эта проблема с гитхабом против другого клиента PHP Kafka в отношении реализации Admin API, но это не было сделано.
@NicolaPaganotti Было бы лучше задавать вопросы об этой конкретной библиотеке в выпусках Github.
Я мог бы создать тему в kafka из php, вызвав сценарий оболочки, если библиотека не поддерживает создание темы.
Мне не удалось установить github.com/arnaud-lb/php-rdkafka. Я установил librdkafka e, а затем вручную установил расширение. Расширение перейдите в /usr/lib/php/20170718, но мне нужно расширение в папке /usr/lib/php/20190902. Как скомпилировать расширение для /usr/lib/php/20190902?