- Publié le
Comment Netflix utilise-t-il réellement Java ?
- Auteurs

- Nom
- AbnAsia.org
- @steven_n_t
"Netflix est principalement une boutique Java.
Chaque application backend (y compris les applications internes, les applications de streaming et de production de films) chez Netflix est une application Java.
Cependant, la pile Java n'est pas statique et a connu plusieurs itérations au fil des ans.
Voici les détails de ces itérations :
1 - Passerelle API Netflix suit une architecture de microservices. Chaque élément de fonctionnalité et de données appartient à un microservice construit à l'aide de Java (initialement version 8)
Cela signifie que le rendu d'un écran (comme la liste des films ou LOLOMO) impliquait la récupération de données à partir de dizaines de microservices. Mais passer tous ces appels depuis le client a créé un problème de performances.
Netflix a initialement utilisé le modèle API Gateway en utilisant Zuul pour gérer l'orchestration.
2 - BFF avec Groovy & RxJava L'utilisation d'une seule passerelle pour plusieurs clients était un problème pour Netflix, car chaque client (tel que la télévision, les applications mobiles ou le navigateur Web) présentait des différences subtiles.
Pour gérer cela, Netflix a utilisé le modèle Backend-for-Frontend (BFF). Zuul a été transféré au rôle de mandataire
Dans ce modèle, chaque interface ou interface utilisateur dispose de son propre mini-backend qui effectue la diffusion et l'orchestration des requêtes pour plusieurs services.
Les BFF ont été construits à l'aide de scripts Groovy et le déploiement du service a été réalisé à l'aide de RxJava pour la gestion des threads.
3 - Fédération GraphQL L'approche Groovy et RxJava a nécessité plus de travail de la part des développeurs d'interface utilisateur pour créer les scripts Groovy. De plus, la programmation réactive est généralement difficile.
Récemment, Netflix a migré vers GraphQL Federation. Avec GraphQL, un client peut spécifier exactement l'ensemble de champs dont il a besoin, résolvant ainsi le problème de surextraction et de sous-extraction avec les API REST.
La Fédération GraphQL se charge d'appeler les microservices nécessaires pour récupérer les données.
Ces microservices sont appelés Domain Graph Service (DGS) et sont construits à l'aide des packages Java 17, Spring Boot 3 et Spring Boot Netflix OSS. Le passage de Java 8 à Java 17 a entraîné des gains de CPU de 20 %.
Plus récemment, Netflix a commencé à migrer vers Java 21 pour profiter de fonctionnalités telles que les threads virtuels."
Veuillez noter que la version française est assistée par Ai, des erreurs mineures peuvent donc exister.
Auteur
Ai Base Network (ABN), ABN ASIA a été fondée par des personnes ayant des racines profondes dans le milieu académique, avec une expérience professionnelle aux États-Unis, aux Pays-Bas, en Hongrie, au Japon, en Corée du Sud, à Singapour et au Vietnam. ABN ASIA est l'endroit où l'académie et la technologie rencontrent l'opportunité. Avec nos solutions de pointe et nos services de développement logiciel compétents, nous aidons les entreprises à se développer et à s'imposer sur la scène mondiale. Notre engagement : Plus vite. Mieux. Plus fiable. Dans la plupart des cas : moins cher également.
N'hésitez pas à nous contacter chaque fois que vous avez besoin de services informatiques, de conseils en matière de numérique, de solutions logicielles prêtes à l'emploi, ou si vous souhaitez nous envoyer des demandes de propositions (RFP). Vous pouvez nous contacter à l'adresse [email protected]. Nous sommes prêts à vous aider avec tous vos besoins technologiques.

© ABN ASIA