首页 > 解决方案 > php-fpm 中的 Apache Kafka Producer - 生产者连接过多

问题描述

用例: 8台服务器,每台300个php-fpm并发子进程,向Apache Kafka产生记录。每个产生 1 条 Kafka 记录,每秒 1000 条记录。

为什么我们需要这么多连接? 我们有一个 Web API,每分钟有 6 万次调用。这些请求正在做很多事情,并通过数以千计的 web php-fpm 工作人员进行处理(不幸的是)。作为请求处理的一部分,我们向 Kafka 生成事件。

问题: 我找不到一种方法来保持 php-fpm Web 请求之间的连接,创建了一些在我看来效率低下的东西,可能会影响 Kafka 边界(会吗?)。

结果是每秒建立 1000 个生产者连接,每次发送一条记录,然后立即关闭。

我在这里读到https://www.reddit.com/r/PHP/comments/648zrk/kafka_php_71_library/ php-rdkafka 是高效的,但我不知道它是否可以解决这个问题。

我认为 Opcache 可能很方便重用连接,但我找不到方法来做到这一点。

问题 是每秒快速且廉价地建立和关闭 1000 个连接,还是具有廉价连接的代理将重用 Kafka 连接对于这种用例是必须的?

标签: phpkafka-producer-api

解决方案


推荐阅读