2017-08-25 6 views
1

Ich versuche, einen geographischen Load Balancer mit Elixir/Phoenix zu machen, so dass, wenn Clients anfänglich verbinden, es den nächsten (geringsten Ping/Latenz) Server auswählen und diesen für die Zukunft verwenden wird Verbindungen.Elixir/Phoenix geografischer Load Balancer

Nehmen wir an, der Kunde erreicht Balancer bei get "/balance", PageController, :index, und in meiner Datenbank habe ich 2 Server: server1.domain.com und server2.domain.com. Ist es möglich, die Verbindung (oder Ping) vom Client zu beiden Servern mit Elixir-Back-End irgendwie zu übergeben?

Ich kann wahrscheinlich Logik im Front-End, Ping mit Js und dann Rückgabe von Werten an das Back-End für den Speicher. Allerdings hätte ich lieber alles im Backend.

Alle Tipps oder Ratschläge in Bezug auf Load-Balancing geschätzt, wie ich bin nicht 100% sicher, ob das der richtige Weg ist, es zu tun. Vielen Dank!

+1

Wie wird die Anwendung gehostet? Cloud-Anbieter haben Tools, um dies auf der DNS-Ebene zu lösen, zB: [Route53 Latency Policy] (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-latency) –

Antwort

2

Nun, wenn Sie nur 1 Load Balancer haben, macht es nicht viel Sinn. Ihr Load Balancer befindet sich beispielsweise in den USA und Sie haben einen Anwendungsserver in den USA und in Europa. Wenn ein Besucher aus Europa Ihre Website besucht, wird er zuerst den Load Balancer in den USA treffen, der dann eine Verbindung zum Anwendungsserver in Europa (oder sogar in den USA) herstellt. Sie gewinnen jetzt Geschwindigkeit daraus.

Sie müssen das geografische Routing auf der DNS-Ebene tun, denke ich, so dass der Besucher direkt den nächsten Server zu ihm (der ein Load Balancer oder Anwendungsserver sein kann).

Ich habe noch nicht in das Thema gegraben, aber ein guter Ausgangspunkt wäre, googlen für geographical dns load balancing und sehen, wo es Sie bekommt.

Vielleicht jemand mit mehr Erfahrung mit diesem Thema kann eine detailliertere Antwort auf der technischen Seite geben, aber vielleicht finden Sie auch, was Sie von der vorgeschlagenen Google-Suche brauchen.

+0

Hey @ Philipp, Vielen Dank für Ihre Antwort. Ja, ich habe über den DNS-Lastenausgleich gelesen und wollte ihn auf die Zielseite selbst anwenden, aber dann, wenn der Benutzer versucht, sich in sein Konto einzuloggen, um das interne Balancing zu verwenden (für eine bessere Kontrolle des Datenverkehrs). – Ilya

+0

Welche Art von Datenverkehr können Sie nicht über DNS steuern? – Leviathlon

+1

@webdeb als jemand, der in Istanbul lebt, bin ich eigentlich daran gewöhnt. Goldene Regel, nicht mit Stoßzeiten kollidieren :) – Leviathlon