2017-06-27 66 views
5

Mam połączenie internetowe od klienta do usługi API, a następnie z usługi API do innych usług. Teraz domyślnie limit czasu połączenia (czyli gdy żaden komunikat/komunikacja odbywa się przy połączeniu websocket) wynosi 1 min i znalazłem ustawienia, aby zwiększyć go, czyli za pomocą akka.http.client.idle-timeout = 300S i akka.http .server.idle-timeout = 300s.TimeOut dla połączenia z siecią Web Scala

Ale w moim przypadku te ustawienia działają na poziomie lokalnym, zwiększono limit czasu (tj. Podczas uruchamiania usług lokalnie na moim komputerze), Ale nie kiedy wdrażam usługi w EC2, tworząc obrazy dokowane.

Więc proszę może ktoś mi powiedzieć, dlaczego jej zachowuje się w ten sposób?

+0

Nie sądzę, że twoja usługa na EC2 jest bezpośrednio wystawiona na działanie klienta, może być routowana przez moduł równoważenia obciążenia/ngnix/lub jakikolwiek inny router ... Możliwe, że te pośrednie routery mogą powodować zamknięcie połączenia. Sprawdziłeś je? –

+0

hi Chenna Reddy, tak, balancer, którego używamy, jest konsulem, a usługi są przekierowywane. Myślę więc, że muszę sprawdzić ustawienia dla konsula. Każdy pomysł na ten temat. –

+0

Możesz spróbować 'akka.http.server.request-timeout' z http://doc.akka.io/docs/akka/2.4.9-RC1/scala/http/common/timeouts.html#Request_timeout –

Odpowiedz

0

To wygląda o wiele bardziej jak Docker konfiguracji kwestii aniżeli problemem Akka. Należy debugować konfigurację pojemnika na dwa sposoby:

  1. Logowanie instancji EC2 i sprawdzić parametr środowiska używając docker inspect <containerid>
  2. Zmuszanie Akka wydrukować konfiguracji

Można też ustawić następujących parametrów w application.conf

akka { 
     log-config-on-start = "on" 
    } 

lub jawnie wywołać kodem

myConfig.root().render()