php - 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 连接对于这种用例是必须的?
解决方案
推荐阅读
- python - 计算未过滤的 value_counts 以及 pandas 中的过滤值
- c++ - 这个变量在 C++ 中的作用域是什么?
- unix - 将变量传递给 sed
- node.js - 通过 MongoStore 连接到现有的 Mongoose 连接 - 错误:TypeError:无法读取未定义的属性“存储”
- php - 从 Stripe PHP 中的 PaymentIntent 对象获取卡的最后 4 位数字
- c# - Asp.net core mvc 查看 Razor 问题,在级联下拉列表 Ajax 上返回结果
- rest - OAuth2.0 身份验证服务器和 IAM
- php - MySQL 在查询中没有正确使用 PHP 变量,用字符串/整数替换变量可以正常工作
- python - MNIST 上的迁移学习:错误标签错误
- php - php 用 is.gd api 缩短字符串中的所有 url 并将它们链接起来