Service discovery vs load balancing
Ich versuche zu verstehen, in welchem Szenario sollte ich wählen Sie eine service-registry, die über einen load-balancer.
Aus meinem Verständnis beide Lösungen sind für die gleiche Funktionalität.
Zum Beispiel, wenn wir überlegen, Konsul.io als eine feature-Liste wir haben:
- Service Discovery
- Gesundheit Überprüfen
- Schlüssel/Wert-Speicher
- Multi Datacenter
Wo Sie einen load balancer wie Amazon ELB zum Beispiel hat:
- konfigurierbar zu akzeptieren, nur Datenverkehr von Ihrem Lastenausgleichsmodul
- Verkehr unter Verwendung der folgenden Protokolle: HTTP, HTTPS (secure HTTP), TCP-und SSL - (secure TCP)
- Verteilung der Anfragen auf die EC2-instances in mehreren Availability Zones
- Die Anzahl der verbindungen skaliert mit der Anzahl gleichzeitiger Anforderungen an, die ein Lastenausgleichsmodul
- konfigurieren Sie die Gesundheits-checks, die Elastic Load Balancing verwendet, um zu überwachen die Gesundheit der EC2-Instanzen registriert mit der load-balancer, so dass Sie senden können nur Anforderungen an die Instanzen
- Können Sie Ende-zu-Ende-Verkehr-Verschlüsselung auf diejenigen Netzwerke, die mit sicheren (HTTPS/SSL) - verbindungen
- [EC2-VPC -] Sie können erstellen eine Internetverbindung load balancer, nimmt Anfragen von clients über das Internet, und leitet Sie zu Ihren EC2-Instanzen oder eine interne gerichteten load balancer, nimmt Anfragen von clients in Ihrer VPC und leitet Sie an EC2-Instanzen im private-subnets. Load-Balancer, die in EC2-Classic sind immer eine Internetverbindung verfügen.
- [EC2-Classic] Load-Balancer für EC2-Classic-Unterstützung IPv4-und IPv6-Adressen. Load balancers für eine VPC unterstützen keine IPv6-Adressen.
- - Monitor können Sie Ihre load balancer die Verwendung von CloudWatch Metriken, access logs, und AWS CloudTrail.
- Ordnen Sie Ihre Internetverbindung load balancer mit Ihrem domain-Namen.
- etc.
So, in diesem Szenario bin ich scheitern zu verstehen, warum Picke ich so etwas wie consul.io
oder netflix eureka
über Amazon ELB
für service discovery.
Habe ich eine Ahnung, dass dies vielleicht aufgrund der Umsetzung client-seitiger Dienst ist, der Entdeckung vs server side service discovery, aber ich bin mir nicht ganz sicher.
- stackoverflow.com/questions/46807757/... dieser post auch scheint dieselbe Sorge
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie darüber nachdenken, es als client side load-balancing versus dedizierte load-balancing.
Client side load-Balancer gehören Baker Street (http://bakerstreet.io); SmartStack (http://nerds.airbnb.com/smartstack-service-discovery-cloud/); oder Konsul HA-Proxy (https://hashicorp.com/blog/haproxy-with-consul.html).
Client-Seite LBs über ein service-discovery-Komponente (Baker Street verwendet stateless-pub/sub-service-discovery-Mechanismus; SmartStack verwendet Tierpfleger; Konsul HA-Proxy verwendet Konsul) als Teil Ihrer Implementierung, sondern bieten Sie die Gesundheit überprüfung /end-to-end-Funktionalität, die Sie wahrscheinlich suchen.
AWS ELB und Eureka unterscheiden sich an vielen Punkten:
Edge Services vs Mid-tier Services
AWS ELB ist ein load-balancing-Lösung für die edge-Dienste, die im Kontakt zu den end-user web-traffic. Eureka füllt die Notwendigkeit für mid-tier-load-balancing.
Mid-tier-server bezieht sich auf einen application-server, der sich zwischen dem Computer des Benutzers und der Datenbank-server, wo die Verarbeitung stattfindet. Der middle tier-server-führt die business-Logik.
Zwar können Sie theoretisch setzen Sie Ihre mid-tier services hinter der AWS ELB, die in EC2
Classic ist, setzen Sie Sie in der Welt und verlieren dabei alle, die Nützlichkeit der AWS security groups.
Dedizierte vs Client side Load-Balancing
AWS ELB ist auch eine traditionelle proxy-basierte load-balancing-Lösung in der Erwägung, dass mit Eureka ist es anders, denn das load balancing passiert, an die Instanz/server - /host-Ebene in einer round-robin-Mode. Die client-Instanzen wissen, alle Informationen über die Server, die Sie benötigen, zu sprechen.
Wenn Sie auf der Suche für einen sticky-session (alle Anfragen von einem Benutzer während der Sitzung gesendet werden, um die gleiche Instanz) basierte load-balancing, die AWS bietet jetzt, Eureka bieten keine Lösung out of the box.
Load Balancer Ausfälle
Ein weiterer wichtiger Aspekt, der unterscheidet proxy-basierte load-balancing von load balancing mit Eureka ist, dass Ihre Anwendung können hartnäckig sein, um die Ausfälle des load balancers, da die Informationen über die verfügbaren Server in den Cache des Eureka-client.
Dies erfordert eine kleine Menge an Speicher, sondern kauft sich bessere Ausfallsicherheit. Das Eureka-client bekommt alle registry-Informationen auf einmal und in nachfolgenden Anforderungen an das Eureka-server, es erhält nur die delta ich.e die änderungen in der Registrierung Informationen, anstatt die gesamte registry-Informationen. Auch Eureka-Server Betrieb im cluster-Modus, in dem jeder peer ist nicht betroffen von der Leistung der anderen Kollegen.
Skala und Bequemlichkeit
Auch, stellen Sie sich vor, Sie 1000s von microservices laufen und jeweils mehrere Instanzen. Benötigen Sie 1000 ELBs, eine für jede der microservice, oder so etwas wie HAProxy, die sitzt hinter dem ELB zu machen, layer-7-Beschlüsse, auf der Grundlage der hostname, etc. und dann nach vorne der Verkehr auf eine Teilmenge der Instanzen. Während Eureka, spielen Sie nur mit dem Namen der Anwendung, die weit weniger kompliziert.
Service-Discovery-Komponente hat in der Regel eine Benachrichtigungs-Komponente. Es ist nicht ein load-balancer, obwohl einige haben die Fähigkeit, dies zu tun. Es informiert registrierte Kunden über änderungen, zum Beispiel ein load-Balancer hinunter.
Ein client kann eine Abfrage an ein service-discovery/Registrierung, um einen load balancer ausgeführt wird. In der Erwägung, dass ein load-balancer nicht noitfy einen Kunden, wenn es unten ist.
Lesen Sie auch über EUREKA
Amazon-ELB bietet die EC2-Instanzen, um Ihre service-Anfragen basierend auf Load-balancer und die IP-Adressen der EC2-Instanzen, die nicht konsistent sind, so können Sie auch verwenden, EUREKA-die nicht die gleiche job, sondern basiert auf der service-registry und client side load-balancing, in dem die client-Anwendung für jede region hat die Registrierung.
Sie können mehr darüber Lesen Sie hier :
https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance