Предварительные требования:
клиентская библиотека: https://github.com/php-amqplib/php-amqplib/tree/v2.11.1
PHP dockerfile: FROM php: 7.1-alpine3 .9
PHP работает в режиме демона (что не является естественным способом). Роль этого сервиса - получение сообщений от брокера Rabbitmq. RabbitMQ и служба php работают в режиме docker.
Сеть: оверлей
Сведения о соединении:
$this->connection = new AMQPStreamConnection(
getenv('DOCKER_HOST_RABBITMQ'),
getenv('RABBITMQ_PORT'),
getenv('RABBITMQ_DEFAULT_USER'),
getenv('RABBITMQ_DEFAULT_PASS'),
$vhost = '/',
$insist = false,
$login_method = 'AMQPLAIN',
$login_response = null,
$locale = 'en_US',
$connection_timeout = 5,
$read_write_timeout = 3600,
$context = null,
$keepalive = false,
$heartbeat = 1800,
$channel_rpc_timeout = 0.0,
$ssl_protocol = null
);
Проблема:
Через некоторое время я получил такие ошибки, как:
- Сломанная труба
- Пропущенное сердцебиение
- Сброс соединения по пиру
Может ли это быть связано с docker сетью и нужно ли мне использовать endpoint_mode: dnsrr
?
Заранее спасибо!