Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 12540|Antwort: 0

PayPal skaliert auf Milliarden von Transaktionen pro Tag mit nur 8 virtuellen Maschinen

[Link kopieren]
Veröffentlicht am 25.09.2019 16:11:58 | | | |
Traditionell benötigt ein System, das täglich eine Milliarde Transaktionen verarbeitet, Hunderte von VMs, PayPal erledigt alles mit nur 8 VMs und liefert eine schnelle Antwort bei 90 % CPU-Auslastung – eine Transaktionsdichte, die PayPal bisher nie erreicht hat, und der Prozess benötigt 1/10 der Zeit, was dem Unternehmen hilft, mit dem Wachstum Schritt zu halten, ohne die Recheninfrastruktur skalieren zu müssen und Kosten zu senken. Wie soll das gemacht werden?



PayPal hat sein System in den Akka-basierten Actor-Modus umgestellt. Im Artikel Squbs: PayPal verfolgt einen neuen reaktiven Ansatz beim Aufbau von Apps (Der Hyperlink-Login ist sichtbar.PayPal erklärt die Feinheiten des Prozesses. Sie haben Squbs jetzt als Open Source veröffentlicht und auf GitHub veröffentlicht (Der Hyperlink-Login ist sichtbar.)。

Wenn ein Projekt einen praktischen Ansatz ergreifen muss, erhält das Stateful-Service-Modell dennoch nicht genug Aufmerksamkeit. Um mehr über staatliche Dienstleistungen zu erfahren, empfehlen wir, die Gründe zu lesen, warum Sie jetzt weiterhin skalierbare staatliche Dienstleistungen aufbauen sollten (Der Hyperlink-Login ist sichtbar.), basiert dieser Artikel auf einer Rede von Caitie McCaffrey. Falls Sie dieser Artikel nicht überzeugt, gibt es auch WhatsApp, das Akkas Konkurrent Erlang für extrem hohen Durchsatz nutzt: Facebooks 19-Milliarden-Dollar-WhatsApp-Architektur (Der Hyperlink-Login ist sichtbar.)。

Der Grund für die Empfehlung des obigen Artikels ist, dass PayPal keine detaillierte Einführung in die Architektur bietet, sondern stattdessen mehr Zeit auf die Gründe für Akka und die Vorteile der Migration zu Akka verwendet. Aber dieser Artikel bietet dennoch wertvolle Ermutigung und Demonstration für die Praxis, "abseits der ausgetretenen Pfade zu gehen".

Was ist falsch daran, eine große Anzahl virtueller Maschinen für einen Dienst zu verwenden?

  • Führe den Service mit sehr geringer Durchsatz, extrem kleinen virtuellen Maschinen aus. Der größte Vorteil akteurbasierter reaktiver Systeme besteht darin, dass sie die Rechenressourcen effizienter nutzen können, was die Größe des Systems erheblich reduzieren und die "einfache und grobe" automatische Skalierung traditioneller Praktiken vermeiden kann.
  • Das belastet dein Netzwerk und deine Routing-Infrastruktur erheblich. Da Dienste tendenziell stärker miteinander verbunden sind, müssen Anfragen möglicherweise über viele Netzwerk-Hops laufen, was die Latenz erhöht und das Nutzererlebnis verschlechtert.
  • Je größer es ist, desto teurer ist es. Dienste mit Hunderten virtueller Maschinen verursachen hohe inhärente Kosten in Bezug auf Management, Überwachung und ineffizientes Caching.
  • Je kleiner es ist, desto agiler ist es. Die Bereitstellung von Diensten auf Hunderte von virtuellen Maschinen ist ein zeitaufwändiger Prozess.
  • Holen Sie mehr aus mehr CPU auf jeder virtuellen Maschine heraus. Da CPUs nicht weiter beschleunigt werden können, muss die Infrastruktur in der Lage sein, mehr CPUs auf jeder virtuellen Maschine effizienter zu nutzen.
  • Microservices müssen mit locker gekoppelten NanoServices gebaut werden, die einfach zu warten und schnell zu bauen sind. Niemand möchte mit einem komplexen System mit vielen Schichten zu tun haben, und man braucht mehr Transparenz in die Rolle verschiedener Services, ohne tief in Code-Schichten eintauchen zu müssen.


Vor diesem Hintergrund wollte PayPal ein System aufbauen, das:

  • Skalierbar, nicht nur um horizontal auf Hunderte von Knoten zu skalieren, sondern auch um auf mehr Prozessoren zu skalieren, um das Ziel zu erreichen, Milliarden von Anfragen pro Tag zu verarbeiten.
  • Niedrige Latenz und kann mit extrem feiner Granularität kontrolliert werden.
  • Seien Sie widerstandsfähig angesichts von Misserfolgen.
  • Flexible Anpassung der Dienstgrenzen.
  • Förderung von Skalierbarkeit und Einfachheit durch Programmiermodelle und -kultur sowie einfachere Fehler- und Fehlerbehandlungsmechanismen.


Es besteht kein Zweifel, dass PayPal einen "dünneren" Stack verwenden möchte, und sie wollen nicht, dass ihr Stack viele Technologien und bewegliche Teile auf verschiedenen Ebenen enthält. Im Allgemeinen sind Akka und staatbasierte Systeme für diesen Bedarf gut geeignet, da der Stapel großer Komponenten in eine einzige Technologie "zerlegt" werden kann. PayPal hat Akka Erlang vorgezogen, weil sie mehr Erfahrung mit Java haben, das über Java läuft. Für viele Menschen ist es nicht realistisch, Erlang von Grund auf zu lernen.

Mit Akka können sie:

  • Schreibe Code, der leichter zu erklären ist
  • Schreibe Code, der leichter zu testen ist
  • Fehler- und Ausfallszenarien werden natürlicher gehandhabt als bei traditionellen Modi mit JVM
  • Schnellerer, robusterer und einfacherer Code schreiben, um Fehler flüssiger zu behandeln und die Anzahl der Fehler zu reduzieren


PayPal schrieb sofort sein eigenes Framework basierend auf Akka, das Squbs genannt wurde und mit "Cubes" reimte. Dadurch können Sie eine modulare Technologieschicht für den Aufbau eines NanoService namens "Cube" erstellen. Die Würfel sind symmetrisch, und die Abhängigkeiten zwischen verschiedenen Würfeln sind ebenfalls symmetrisch und locker, sodass nur die Nachrichtenschnittstellen sichtbar werden, die Akka bereits bereitstellt.

Es beschreibt auch die Schwierigkeiten, denen Programmierer bei der Einführung von AKKA-Code begegnen können, da man möglicherweise auch jemanden einstellen muss, der in Akka/Scala ausgebildet ist.

Da die meisten Dienste ähnliche Zwecke verfolgen: Anfragen empfangen, Datenbanken aufrufen, lesen und schreiben, andere Dienste aufrufen, Regel-Engines aufrufen, Daten aus Caches abrufen, in Caches schreiben ... Daher können Dienste durch Muster wie Orchestrator Pattern und Perpetual Stream abstrahiert werden.

Squbs ist zu einer Standardpraxis bei PayPal geworden, um reaktive Anwendungen auf Basis von Akka zu entwickeln. Wenn dein Team noch keine zustandsvollen Systeme in Betracht gezogen hat, lohnt es sich wahrscheinlich, es auszuprobieren, da es bei PayPal, Facebook, Uber und Microsoft gut funktioniert.







Vorhergehend:Drei Faktoren, die mich dazu bringen, Chrome abzulehnen
Nächster:vs einen Ordner erstellen, und beim Erstellen der Lösung befindet sich niemand unter der BIN-Datei
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com