Ich habe einen Service aufgebaut, der bisher auf einem einzelnen Server lief, einfach über einen Aufruf an IP und Port, etwa so: 123.45.67.89:9999
Nun reicht wegen Serverbelastung aber ein einzelner Server nicht mehr aus, also hab ich einen weiteren Server besorgt und abgefertigt, damit er den selben Dienst anbietet. Nun ist aber das Problem, dass ich die Server etwa gleich belasten möchte, damit nicht einer abraucht und der andere sich langweilt.
Dazu habe ich nun zwei Ideen, die ich spontan als sinnvoll bezeichnen könnte:
1. Ist es möglich das direkt über DNS-Einträge zu machen? Sodass ich zB eine Subdomain "service.domain.tld" anlege und diese abwechselnd auf IP 123.45.67.89 oder 123.45.67.98 verweist? Wie müssen die Einträge aussehen?
2. Meine zweite Idee wäre es, wobei mir die DNS Theorie besser gefällt, nginx als Proxy dazwischen zu setzen und alternieren zu lassen.
Falls es noch bessere Methoden gibt, nehme ich die Ideen natürlich auch gerne entgegen
DNS-Einträge alternieren? Verschiedene Server auswählen
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: DNS-Einträge alternieren? Verschiedene Server auswählen
Die erste Methode ist ein Load-Balancing per DNS-Rekord. Du musst fuer eine Domain einfach zwei A-Rekords im DNS anlegen, welche auf die beiden (oder mehr) IPs verweifen. Der Client wuerfelt dann nach dem DNS-Request aus, welche der beiden IPs er kontaktieren moechte. Es liegt also nicht in deiner Hand, wie stark, welcher Server belastet wird.
Der zweite Weg geht natuerlich auch. Du baust dir damit aber einen unnoetigen Flaschenhals und wenn dein nginx einmal ausfaellt, dann ist keines der beiden Systeme mehr erreichbar.
Der zweite Weg geht natuerlich auch. Du baust dir damit aber einen unnoetigen Flaschenhals und wenn dein nginx einmal ausfaellt, dann ist keines der beiden Systeme mehr erreichbar.
Re: DNS-Einträge alternieren? Verschiedene Server auswählen
CLients würfeln eigentlich nicht die nehmen immer den obersten. Nur die DNS-Server rotieren durch.syssi hat geschrieben:Der Client wuerfelt dann nach dem DNS-Request aus, welche der beiden IPs er kontaktieren moechte.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: DNS-Einträge alternieren? Verschiedene Server auswählen
Vielleicht wäre Varnish auch eine Möglichkeit.
http://packages.debian.org/wheezy/varnish
Im optimalfall kann man den Server (Backend) auch mal für eine Stunde ganz weg nehmen um irgend etwas umzustellen oder zu warten.
http://packages.debian.org/wheezy/varnish
Im optimalfall kann man den Server (Backend) auch mal für eine Stunde ganz weg nehmen um irgend etwas umzustellen oder zu warten.
Das Leben ist wie ein überdimensionales Schachbrett.
Re: DNS-Einträge alternieren? Verschiedene Server auswählen
ich habe jetzt für eine Subdomain "service.domain.tld" zwei DNS-Einträge vom Typ "A" gemacht, im Content jeweils eine der beiden Server IPs und anschließend ein paar Stunden gewartet um sicherzugehen, dass die DNS-Einträge übernommen wurden. Wenn ich jetzt auf service.domain.tld:9999 einige Requests (10+) abfeuer (egal ob nacheinander oder gleichzeitig), so landen diese alle beim selben Server, das scheint scheinbar nicht zu klappen. Oder hab ich was falsch gemacht/gedacht?
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: DNS-Einträge alternieren? Verschiedene Server auswählen
Falsch gedacht, wenn du alles vom gleichen Client aus gesendet hast. Der Client merkt sich die IP, welcher er gewaehlt hat und nutzt sie bis eine TTL abgelaufen ist.pimeys hat geschrieben:ich habe jetzt für eine Subdomain "service.domain.tld" zwei DNS-Einträge vom Typ "A" gemacht, im Content jeweils eine der beiden Server IPs und anschließend ein paar Stunden gewartet um sicherzugehen, dass die DNS-Einträge übernommen wurden. Wenn ich jetzt auf service.domain.tld:9999 einige Requests (10+) abfeuer (egal ob nacheinander oder gleichzeitig), so landen diese alle beim selben Server, das scheint scheinbar nicht zu klappen. Oder hab ich was falsch gemacht/gedacht?
Hier findest du das genaue Verhalten und auch die Nachteile: http://en.wikipedia.org/wiki/Round-robin_DNS
Re: DNS-Einträge alternieren? Verschiedene Server auswählen
Genau das ist das worauf ich hinweisen wollte. Der Client nutzt immer den ersten Eintrag. Nur der DNS-Server rotiert für jeden Client der abfragt die Einträge durch.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: DNS-Einträge alternieren? Verschiedene Server auswählen
Danke, das scheint es zu sein. Damit kann ich vorerst leben