【问题标题】:consumption of kafka message on lumen对流明的kafka消息的消耗
【发布时间】:2022-02-15 01:10:06
【问题描述】:

我很困惑。因此,任何帮助都会非常受欢迎。 我正在尝试部署一个流明应用程序,它可以使用来自 kafka 的消息。

我猜想队列可能是解决问题的正确方法,但我找不到解决问题的方法。

我找到了这个库:https://github.com/php-enqueue/enqueue-dev/blob/master/docs/laravel/quick_tour.md

也就是说消息可以通过调用来消费:

php artisan enqueue:consume -vvv --setup-broker

这让我很困惑,因为我现在不清楚如何在我的函数中使用它,或者对特定的外部 kafka 服务有一个异步侦听器。

【问题讨论】:

    标签: php apache-kafka message-queue lumen


    【解决方案1】:

    该命令似乎来自 CLI,而不是已部署的 PHP 应用程序。

    Enqueue Kafka 连接器文档在这里 - https://php-enqueue.github.io/transport/kafka/#consume-message

    片段

    $fooQueue = $context->createQueue('foo');
    
    $consumer = $context->createConsumer($fooQueue);
    
    // Enable async commit to gain better performance (true by default since version 0.9.9).
    //$consumer->setCommitAsync(true);
    
    $message = $consumer->receive();
    
    // process a message
    
    $consumer->acknowledge($message);
    

    【讨论】:

    • 谢谢,所以这段代码需要插入到事件中?还是作为经典路由/控制器?我需要锁之类的东西吗 while(true){}
    • 您可能需要围绕接收和确认呼叫进行循环,是的。我不会将消费者放在任何 http 路由的执行路径中,因为 http 客户端有超时并且不能保证 kafka 消费者会读取任何数据(您需要在任何消费者循环上设置自己的超时)
    猜你喜欢
    • 2020-09-06
    • 2016-05-01
    • 1970-01-01
    • 2019-09-17
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    相关资源
    最近更新 更多