2017-05-10 1 views
1

Ich habe einen Endpoint und versuche, die Latenz bei wenigen ersten Aufrufen der neu erstellten Endpoint-Instanz zu reduzieren. Die Anwendung wird in Java geschrieben und die Endpunkte werden automatisch skaliert. Um dieses Problem zu beheben, habe ich eine inaktive Instanz konfiguriert, obwohl selbst wenn die Instanz bereits erstellt wurde, die ersten Anrufe, die an sie weitergeleitet werden, einige zusätzliche Zeit beanspruchen. Nach documentation Ich habe die benutzerdefinierten Servlet-Behandlung Aufwärmanforderungen implementiert und markiert das EndpointsServlet als Laden beim Start.So wärmen Sie den App-Engine-Endpunkt auf

Im Aufwärm-Servlet habe ich Code geschrieben, der einige häufig verwendete Dienste initiiert, einige Daten lädt usw. Der Effekt war fast unmöglich zu bemerken.

Nachdem ich Anrufe an Methoden, die von dem Endpunkt so ausgesetzt implementiert:

call("/_ah/api/teamly/v1/test/dummy") 

Es ist für manche Fälle funktioniert (auch die meisten von ihnen) und nach wenigen Schlüsselmethoden Instanz aufrufen wirklich bereit sind, zu dienen. Das Problem, das ich jetzt mit Blick auf bin, ist, dass, wenn ich für einige Modul automatische Skalierung bin mit I can't route the request to specific instance.

Die Frage ist also:

Wie soll ich aufwärmen richtig den Endpunkt Instanz Ladeanforderungen von eingeleitet zu vermeiden Vorderes Ende.

+0

eine gemeinsame Lösung Instanzen aufzuwärmen ist ein cron-Job geben regelmäßig den Endpunkt eines bestimmten App Engine-Dienstes getroffen, so dass Instanzen immer bereit sind. – Nicholas

+0

@Nicholas - das ist einer meiner Versuche - Ich werde sehen, wie es für ein paar Tage funktioniert, aber immer noch - diese Methode hat einige Nachteile: Es ist nicht garantiert, dass Benutzer keine Ladeanforderung generiert, und es erzeugt zusätzliche Kosten. – piotrpo

Antwort

2

Sie müssen einen Listener auf/_ah/warmup setzen und dann alle Ressourcen aufrufen, die Sie aufwärmen möchten. Sie können detaillierte Informationen finden:

Configuring Warmup Requests to Improve Performance

+0

Sie haben Recht, und das ist, was ich versuche zu tun. Unter der Annahme einer automatischen oder einfachen Skalierung können Sie jedoch nicht sicher sein, dass dieser Ressourcenaufruf an die richtige Instanz weitergeleitet wird. – piotrpo

Verwandte Themen