2016-12-08 4 views
0

miteinander reden Ich habe eine Rails App, die ich nach Docker verschoben. Der Prozess zwang mich, die App in zwei Microservices aufzuteilen: die Haupt-App und einen Adressverifizierungs-Microservice. Ich habe den Adressverifizierungs-Microservice in eine andere Rails-App gekapselt, die meine Haupt-App aufruft. Es verwendet Rest-Client und es blockiert, bis es eine Antwort erhält.Wie sollten Microservices in Docker

Anforderungen wurden in 300 ms verarbeitet. Jetzt nehmen sie 1.3s. Nach dem Betrachten der newrelic-Daten scheint es, dass der Großteil der Zeit in der Haupt-Rails-App verbracht wird, die die Adressüberprüfungs-Rails-App aufruft. Gibt es eine Möglichkeit Microservices zwischen Containern zu kommunizieren? Ich denke, meine Frage ist Ruby/Rails spezifisch. Soll ich in RabbitMQ schauen? Das Problem ist, dass ich eine verifizierte Adresse sehr früh in den Fluss brauche, also bin ich mir nicht sicher, wie viel Zeit mir eine asynchrone Anfrage an die Micro Ranger App der Adressenverifikation kostet.

newrelic data

+0

Wie haben Sie Ihren Adressverifizierungsservice vor dem Wechsel zu microservice/docker aufgerufen? Hat sich der Service stark verändert? Es ist seltsam, dass das Aufrufen eines lokalen Webdienstes so viel Zeit erfordert, es sei denn, es handelt sich um ein Problem mit dem gemeinsamen Zugriff. Sie könnten versuchen, nicht blockieren Anfragen mit typheous oder em-http-Anfrage – Matt

+0

Die Adressverifizierung war ein interner Anruf. Ich habe nur diese Klassen genommen und sie in eine neue Rails-App verschoben. –

Antwort

0

Es stellt sich heraus, dass die Adressprüfung Micro ein Problem hatte. Ich hatte die Adressverifizierung aktiviert und die Aktionen zum Suchen/Aktualisieren des Benutzers benötigten viel Zeit. Ich bin mir immer noch nicht sicher, warum sie so lange gebraucht haben, aber bald, als ich sie deaktiviert habe, bin ich wieder zu vernünftigen Nummern zurückgekehrt. Ich muss herausfinden, was zum Teufel mit der Erfindung vorgeht. Es ist immer noch nicht das, was ich mit internen Anrufen hatte, aber Docker & Microservices ist nicht so schlimm.

Verwandte Themen