问题标签 [php-amqp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
202 浏览

php - 如何为多个 PHP 版本配置 PHP 扩展?

在 Ubuntu Focal 上使用 ondrej 存储库,我已经将 PHP 从安装5.67.4.

当我安装扩展时,例如php-amqp在我的情况下apt install php-amqp,扩展仅配置为默认 PHP 版本7.4

在我的系统中查找时amqp.so,它仅在 PHP7.4扩展文件夹中可用/usr/lib/php/20190902

我怎样才能使它在我的所有 PHP 版本中可用(php-geoip例如其他扩展也一样)?

0 投票
0 回答
67 浏览

php - 如何在 php lampp ubuntu 中注册 Socket 传输

我正在使用 AMQPS 开发 Rabbitmq,但这里出现错误

例外:stream_socket_client():无法连接到 amqps://myendpoint url.amazonaws.com:5671(无法找到套接字传输“amqps” - 您在配置 PHP 时是否忘记启用它?)/opt/lampp/ htdocs/mmd/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php 111

在我的 localhost/phpinfo 注册流套接字传输如下。

注册流套接字传输 tcp、udp、unix、udg、ssl、tls、tlsv1.0、tlsv1.1、tlsv1.2、tlsv1.3

那么如何注册我的“amqps”套接字传输?

0 投票
0 回答
45 浏览

php - RabbitMQ 阻塞状态导致挂起的发布者连接

在将消息发布到处于阻塞状态的 rabbitmq 服务器时,我们遇到了灾难性的行为。

例如内存警报或磁盘警报会导致rabbitmq 阻止所有发布,直到警报消除。所有尝试写入的连接都必须等待。这一切都很好,但问题是我们找不到任何方法来超时这个等待。

所以产生的行为是,请求永远不会结束(或者由于 nginx 超时而超时)导致崩溃。我们可以用这段代码重现问题:

并在rabbitmq中模拟阻塞状态rabbitmqctl set_vm_memory_high_watermark 0

如您所见,在这种情况下,没有任何超时发生。Heartbeat 也不起作用,因为 php 是单线程的,并且无法关闭阻塞连接。

谁能找到解决方案?