Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd producera w Rabbitmq
Forum PHP.pl > Forum > PHP
Dyzma
Hej,

Korzystam z https://github.com/php-amqplib/RabbitMqBundle

Moja konfiguracja wygląda tak:
  1. old_sound_rabbit_mq:
  2. connections:
  3. default:
  4. host: rabbit
  5. port: 5672
  6. user: 'admin'
  7. password: 'jakies_haslo'
  8. vhost: '/'
  9. lazy: true
  10. keepalive: false
  11. heartbeat: 30
  12. connection_timeout: 3
  13. read_write_timeout: 60
  14. use_socket: false


Wszystko działa w dockerowym swarmie, połączenia są.

Błąd pojawia się przez wywołanie producera:

  1. $this->producer->publish(
  2. \json_encode(
  3. [
  4. 'payload' => [
  5. 'code' => 'kod',
  6. ],
  7. ]
  8. ),
  9. 'cos
  10. );


$this->producer to wstrzyknięte przez DI OldSound\RabbitMqBundle\RabbitMq\Producer;


Po jakimś czasie pojawia się exception:
  1. fwrite(): send of 154 bytes failed with errno=32 Broken pipe`

Z tego pliku https://github.com/php-amqplib/php-amqplib/...reamIO.php#L297

W logach RabbitMQ pokazują się takie wpisy:

  1. 2018-10-24 19:40:54.307 [error] <0.6085.0> closing AMQP connection <0.6085.0> (10.0.9.2:47438 -> 10.0.9.247:5672): missed heartbeats from client, timeout: 30s
  2.  
  3. 2018-10-24 19:41:08.393 [warning] <0.6139.0> closing AMQP connection <0.6139.0> (10.0.9.2:60646 -> 10.0.9.247:5672, vhost: '/', user: 'admin'): client unexpectedly closed TCP connection


Czy ktoś miał podobny problem lub może wie jak go rozwiązać?
Pyton_000
Spróbuj ustawić `heartbeat: 120`
Dyzma
Problem nadal występuje:

2018-10-24 20:46:30.107 [error] <0.833.0> closing AMQP connection <0.833.0> (10.0.9.2:60082 -> 10.0.9.76:5672): missed heartbeats from client, timeout: 120s
2018-10-24 20:49:30.851 [error] <0.983.0> closing AMQP connection <0.983.0> (10.0.9.2:36804 -> 10.0.9.76:5672): missed heartbeats from client, timeout: 120s
2018-10-24 20:51:40.648 [error] <0.1007.0> closing AMQP connection <0.1007.0> (10.0.9.2:41814 -> 10.0.9.76:5672): missed heartbeats from client, timeout: 120s

Zapomniałem wspomnieć, że producer jest odpalony kilka razy w dockerze.
Zastanawiam się czy to nie jest przyczyna, aczkolwiek powielony jest tylko 6 razy i przesyła do consumera tylko i wyłącznie hashe, więc nie są to jakieś ogrome wiadomości.

--- EDIT

O ile w logach rabbita tych wiadomości jest co raz mniej to w logach producera, nadal występuje pełno błędów pokroju:

[2018-10-24 23:18:47] app.INFO: [Nr. 1590] Wystąpił "3f21d0cf5cca08b7276edbcd0f4cbe64", "fwrite(): send of 154 bytes failed with errno=32 Broken pipe
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.