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.
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
Die Adressverifizierung war ein interner Anruf. Ich habe nur diese Klassen genommen und sie in eine neue Rails-App verschoben. –