- Veröffentlicht am
Wie Netflix Java wirklich nutzt?
- Autoren

- Name
- AbnAsia.org
- @steven_n_t
"Netflix ist überwiegend ein Java-Shop.
Jede Backend-Anwendung (einschließlich interner Apps, Streaming- und Filmproduktions-Apps) bei Netflix ist eine Java-Anwendung.
Allerdings ist der Java-Stack nicht statisch und hat im Laufe der Jahre mehrere Iterationen durchlaufen.
Hier sind die Details dieser Iterationen:
1 - API-Gateway Netflix folgt einer Microservices-Architektur. Alle Funktionen und Daten gehören einem Microservice, der mit Java (ursprünglich Version 8) erstellt wurde.
Das bedeutet, dass beim Rendern eines Bildschirms (z. B. der List of List of Movies oder LOLOMO) Daten von Dutzenden von Microservices abgerufen werden mussten. Aber all diese Anrufe vom Client aus verursachten ein Leistungsproblem.
Netflix nutzte zunächst das API-Gateway-Muster und verwendete Zuul für die Orchestrierung.
2 - BFFs mit Groovy & RxJava Die Verwendung eines einzigen Gateways für mehrere Clients stellte für Netflix ein Problem dar, da jeder Client (z. B. Fernseher, mobile Apps oder Webbrowser) geringfügige Unterschiede aufwies.
Um dies zu bewältigen, verwendete Netflix das Backend-for-Frontend-Muster (BFF). Zuul wurde in die Rolle eines Stellvertreters versetzt
Bei diesem Muster erhält jedes Frontend oder jede Benutzeroberfläche ein eigenes Mini-Backend, das die Anforderungsverteilung und Orchestrierung für mehrere Dienste durchführt.
Die BFFs wurden mit Groovy-Skripten erstellt und der Service-Fanout erfolgte mit RxJava für die Thread-Verwaltung.
3 - GraphQL-Föderation Der Groovy- und RxJava-Ansatz erforderte mehr Arbeit von den UI-Entwicklern bei der Erstellung der Groovy-Skripte. Außerdem ist reaktives Programmieren im Allgemeinen schwierig.
Vor kurzem ist Netflix zur GraphQL Federation gewechselt. Mit GraphQL kann ein Client genau angeben, welchen Satz von Feldern er benötigt, und so das Problem des Über- und Unterabrufs bei REST-APIs lösen.
Die GraphQL Federation kümmert sich um den Aufruf der notwendigen Microservices zum Abrufen der Daten.
Diese Microservices heißen Domain Graph Service (DGS) und werden mit Java 17-, Spring Boot 3- und Spring Boot Netflix OSS-Paketen erstellt. Der Wechsel von Java 8 zu Java 17 führte zu 20 % CPU-Gewinn.
Vor kurzem hat Netflix mit der Migration auf Java 21 begonnen, um Funktionen wie virtuelle Threads zu nutzen."
Bitte beachten Sie, dass die französische Version von Ai unterstützt wird und daher geringfügige Fehler auftreten können.
AUTOR
Über ABN Asia: Ai Base Network (ABN), ABN Asia wurde im Jahr 2012 gegründet und ist ein Unternehmen mit akademischem Hintergrund, das von Lehrkräften und ehemaligen Studierenden aus Ungarn, den Niederlanden, Russland, Deutschland und Japan gegründet wurde. Wir teilen eine gemeinsame Leidenschaft und eine klare Vision für Technologie, die Innovation und erstklassige Qualität für unsere Kunden bringt. Unser Motto lautet: Besser. Schneller. Sicherer. In vielen Fällen: Günstiger.
Zögern Sie nicht, uns zu kontaktieren, wenn Sie IT-Dienstleistungen, digitale Beratung, Standardsoftwarelösungen benötigen oder uns Angebotsanfragen (RFPs) senden möchten. Sie können uns unter [email protected] kontaktieren. Wir sind bereit, Ihnen bei all Ihren Technologiebedürfnissen zu helfen.

© ABN ASIA