Jak Netflix skutečně používá Javu napsal Paul Packer

Jak Netflix skutečně používá Javu napsal Paul Packer

Paul PackerJava Platform Presenter ve společnosti Netflix, Java Champion a spoluautor „Java 9 Modularity.“ Jak Netflix skutečně používá Javu V roce 2023 QCon San Francisco konference.

Packer ruší mýtus, že „Netflix jsou všechny mikroslužby RxJava s Hystrix, Spring Cloud a Chaos Monkeys, které provozují show.“

Packer popsal původní architekturu známé filmové aplikace Netflix, přístupné prostřednictvím televize a dalších zařízení, která se připojuje k serveru API, který pohání Groovy pomocí připojení REST a gRPC pro jejich různé služby.

První upgrady zahrnovaly několik vzdálených volání, paralelní výpočty a odolnost proti chybám implementované pomocí RxJava a Hystrix. Existovala však omezení, jako například: skript požadovaný pro každý koncový bod, vývojáři uživatelského rozhraní, kteří nemají rádi Groovy a Javu obecně; A skutečnost, že reaktivní programování je obtížné.

Packer poté představil GraphQL Federation, architektonický model, který umožňuje zkombinovat více služeb GraphQL, známých jako podgrafy nebo federované služby, do jediného schématu nebo API, koncept GraphQL jako alternativa k problémům s přetížením a nedostatečným načtením, které jsou vlastní REST.

Jednotná brána GraphQL, která se připojuje k Domain Graph Services (DGS), v podstatě nahradila původní API server pro komunikaci s různými službami prostřednictvím gRPC. Zahrnuté výhody: Žádná duplikace API; Žádný vývoj na straně serveru pro vývojáře uživatelského rozhraní; sdílené schéma GraphQL; Neexistují žádné klientské knihovny Java.

Java je nadále aktivně vyvíjena v Netflixu. Podporují Azul Zulu 17, konečnou distribuci Azul OpenJDK, s aktivním testováním na JDK 21 a běží přibližně 2 800 aplikací vytvořených pomocí přibližně 1 500 knihoven. Gradle spolu s mlhovinasada zásuvných modulů Gradle vytvořená společností Netflix a IntelliJ IDEA jsou jejich preferované nástroje pro vytváření.

Bakker poskytl retrospektivu upgradu JDK 17, který přinesl výhody výkonu, zejména proto, že používali JDK 8 teprve letos. Netflix zaznamenal 20% zlepšení využití procesoru na JDK 17 ve srovnání s JDK 8. To je většinou způsobeno vylepšením G1 garbage collector.

READ  Jordan Peele's Nope je nyní k dispozici ke shlédnutí doma!

Netflix aktivně testuje JDK 21 a Packer se domnívá, že následný upgrade na JDK 21 bude mnohem jednodušší a rychlejší. Použití Generational ZGC bude lépe vyhovovat pro různé pracovní zátěže Netflixu a nakonec nahradí své fondy vláken virtuálními vlákny. Ale „virtuální vlákna nejsou oběd zdarma,“ zdůraznil Bakker a varoval, že pouhé přidání virtuálních vláken do aplikace může ve skutečnosti snížit výkon, pokud jsou knihovny náročné na CPU.

Netflix také podporuje Spring Cloud Jarní cloud Netflixdílčí projekt, který poskytuje integraci softwaru Netflix s otevřeným zdrojovým kódem pro aplikace Spring Boot.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *