Ich versuche, eine Load-Balancing-Lösung, die in der Lage ist, UDP-Datenverkehr Last auszugleichen. In meinem Fall habe ich mehrere verschiedene Server, die ein UDP-Paket an einen Load-Balancer senden. In jedem UDP-Paketkörper befindet sich ein MSG-ID-Feld. Im Idealfall möchte ich den UDP-Datenverkehr auf eine Reihe von Servern verteilen, die auf dieser MSG-ID basieren. Mit anderen Worten, zwei UDP-Pakete mit derselben MSG-ID sollten an denselben Server gesendet werden (weil ich zwei UDP-Pakete mit derselben MSG-ID zu einem vollständigen Paket für die weitere Verarbeitung zusammenstellen möchte). Aber wenn es nicht möglich ist, dann könnte eine Lösung auf der Basis von Quell-/Sender-IP ausreichen.UDP Load Balancing mit benutzerdefinierten Balancing-Methode mit Sitzungs-ID innerhalb UDP Körper
Haproxy unterstützt UDP nicht, also überprüfe ich nginx. Aber scheint nur nginx-plus (nicht freie Lösung) Sie Last-Balance basierend auf ip_hash-Methode zu tun?
Ich mag wissen:
- Was beste Open-Source-Lösung ist mir Lastenausgleich basierend auf kundenspezifischen MSG-ID innerhalb UDP Körper zu helfen, zu behandeln.
- Unterstützt die nginx (freie/Open-Source) Version mindestens UDP Load-Balance basierend auf der ip_hash Methode.
- Gibt es trotzdem kann ich die UDP-Quelle/Absender IP spoof. Grundsätzlich, wenn ich Server (wie Server A) habe, die UDP-Paket von mehreren Server (Server D) empfangen und es an eine Gruppe von Servern (Server B, C) weiterleiten; Ich möchte den Server B, C Paket mit IP als Server D, nicht A.
- Was ist der Nachteil des Schreibens einer benutzerdefinierten Schicht, die UDP lesen dann ein TCP-Paket bilden und dann eine TCP-Verbindung mit Load Balancer, um das weiterleiten neu gebildetes TCP-Paket. In diesem Fall können sowohl Nginx als auch Haproxy verwendet werden.
Danke.
Load Balancing kann eine Situation verursachen, in der Sie eine Out-of-Order-Paketzustellung erhalten. TCP kann damit umgehen, aber es kann zu Leistungseinbußen kommen. Das kann UDP wirklich durcheinander bringen. UDP ist ein Fire-and-Forget-Protokoll ohne garantierte Zustellung. Viele Echtzeitprotokolle, z.B. VoIP, benutze UDP. VoIP hat ein Problem mit der Out-of-Order-Paketzustellung. –