限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

Netflix 如何真正使用 Java

  • 2023-11-13
    北京
  • 本文字数:1606 字

    阅读完需:约 5 分钟

大小:756.15K时长:04:18
Netflix 如何真正使用 Java

Paul Bakker,Netflix 的 Java 平台专家、Java 荣誉成员,以及《Java 9 模块化》的合著者,在 2023 年的 QCon 旧金山大会上,发表了题为 《Netflix 对 Java 的真正运用方式》How Netflix Really Uses Java)的演讲。

 

Bakker 在演讲中揭开了 Netflix 全部采用 RxJava 微服务、Hystrix 和 Spring Cloud,以及混沌猴主导的神话背后的真相。

 

Bakker 描述了 Netflix 广为人知的电影应用背后的原始架构,通过电视和其他设备访问,该应用通过 REST 和 gRPC 连接与他们的各种服务连接到他们的 Groovy 启用的 API 服务器。

 


首次的升级涵盖了众多领域,如远程调用、并行计算以及利用 RxJava 和 Hystrix 实现的容错机制。然而,这些升级并非尽善尽美,仍存在一些明显的限制。

 

例如:每个端点都需要一个脚本,这无疑增加了开发的复杂性和难度;开发者通常对 Groovy 和 Java 的 UI 开发并不感兴趣,这使得他们在使用这些技术时感到困扰;尽管响应式编程在理论上具有巨大的潜力,但在实际应用中,其复杂性可能会成为一个难以逾越的障碍。

 


随后,Bakker 详细介绍了 GraphQL 联合,这是一种创新的架构模型,它允许多个 GraphQL 服务(被戏称为子图或联合服务)汇聚成一个完整的架构或 API。他还阐述了 GraphQL 作为一种替代方案,解决了 REST 中普遍存在的过度获取和不足获取问题。

 

他们的 GraphQL 联合网关与域图服务(DGS)紧密相连,基本上取代了传统的 API 服务器,通过 gRPC 与各种服务进行高效通信。这种架构带来了诸多好处:首先,消除了 API 的重复;其次,UI 开发人员无需涉足服务器端开发;再者,实现了共享的 GraphQL 模式;最后,摆脱了对 Java 客户端库的依赖。

 


Netflix 目前仍在积极开发 Java。他们支持 Azul Zulu 17,这是 Azul 的 OpenJDK 下游发行版,正在积极测试 JDK 21,用于运行大约 2800 个应用程序,这些应用程序构建于大约 1500 个库之上。Gradle 以及 Netflix 自己构建的 Gradle 插件集 Nebula 以及 IntelliJ IDEA 是他们首选的构建工具。

 

Bakker 回顾了他们的 JDK 17 升级,该升级带来了性能优势,尤其是考虑到他们最近还在运行 JDK 8。Netflix 观察到在 JDK 17 上,与 JDK 8 相比,CPU 使用率增加了 20%。这主要归因于 G1 垃圾收集器的改进。

 

Netflix 正在积极测试 JDK 21,Bakker 认为随后升级到 JDK 21 将更加简单和快速。在 Netflix 中,使用 Generational ZGC 将更好地适应各种工作负载,最终他们将用虚拟线程替代线程池。然而,Bakker 强调了"虚拟线程并非免费午餐",他警告说,如果库具有高 CPU 使用率,仅仅向应用程序添加虚拟线程实际上可能会降低性能。

 

Netflix 还支持 Spring Cloud,使用 Spring Cloud Netflix,这是为 Spring Boot 应用程序提供 Netflix 开源软件集成的子项目。

 

作者简介:

 

Michael Redlich 在过去的 25 年里一直是 Java 社区的活跃成员。他于 2001 年创立了 Garden State Java User Group(原名 ACGNJ Java Users Group),至今仍在不断运营。自 2016 年以来,Mike 担任 InfoQ 的 Java 社区新闻编辑,他的贡献包括每月的新闻报道、技术写作和技术评论。他曾在一些场合发表演讲,如 Oracle Code One、Emerging Technologies for the Enterprise、Trenton Computer Festival (TCF)、TCF IT Professional Conference,以及众多的 Java 用户组。Mike 是 Jakarta NoSQL 和 Jakarta Data 规范的贡献者,并参与了 Jakarta EE Ambassadors 的领导委员会。他于 2023 年 4 月被授予 Java Champion 荣誉。拥有 33 年半的工作经验,Mike 最近从新泽西州克林顿的 ExxonMobil Technology & Engineering 部门退休,曾在那里开发自定义科学实验室和 Web 应用程序。他还曾在 Ai-Logix, Inc.(现在是 AudioCodes)担任技术支持工程师,为客户提供技术支持并开发电话应用程序。

 

原文链接:

 

https://www.infoq.com/news/2023/10/java-at-netflix-bakker/

 

声明:本文为 InfoQ 翻译整理,未经许可禁止转载。

2023-11-13 18:4952690

评论

发布
暂无评论
发现更多内容

从产品经理到产品架构师

博文视点Broadview

区块链+版权-助力电子微版权保护

13530558032

京东云新一代自研云服务器 4 月上线;COLING 2020丨面向机器阅读理解的双向认知思维网络

京东科技开发者

人工智能 开发者 云服务器

当跨国企业女职业经理人遇上创业女 CEO,两者会擦出什么样的火花?

科技新消息

AI不仅可以把李焕英带回2021,还能告诉你贾玲更像爸爸还是妈妈

京东科技开发者

人工智能 语音识别 语音合成

如何通过 Serverless 提高 Java 微服务治理效率?

阿里巴巴云原生

Java Serverless 容器 微服务 云原生

区块链电子合同签署平台,区块链电子存证

13530558032

盘点 HashMap 的实现原理及面试题

老王说编程

Java hashmap HashMap底层原理

中国人工智能,赏花更要寻根

脑极体

为什么我们开发 San 项目时要用 CLI?

百度Geek说

service SLI san command

2021最新发布拼多多/字节/360/网易/面经总结

比伯

Java 编程 程序员 架构 面试

寻找被遗忘的勇气(九)

Changing Lin

3月日更

《谷歌是如何运营的》-读书笔记

曦语

读书笔记

USB2.0 扩展器(一拖四)原理图、PCB,可打样使用

不脱发的程序猿

28天写作 电路设计 USB电路 USB转TTL 3月日更

能源管理可视化破冰而出,数字孪生打破传统运维僵局

一只数据鲸鱼

物联网 数据可视化 3D可视化 能源管理 智慧电厂

Java面试热门技术框架:Spring Security Oauth2.0认证授权

Java架构追梦

Java spring 面试 金三银四跳槽

深度分析前端构建工具:Vite2 v.s Snowpack3 v.s. Webpack5

智联大前端

vite webpack 构建工具

如何凝聚党员力量?智慧组工系统构架组织部管理平台解决方案

源中瑞-龙先生

解决方案 党员 智慧组工

书单|互联网企业面试案头书之程序员技术篇

博文视点Broadview

【LeetCode】删除字符串中的所有相邻重复项Java题解

Albert

算法 LeetCode 28天写作 3月日更

JVM笔记 -- JVM的生命周期介绍

秦怀杂货店

JVM 生命周期

BFAI量化交易系统开发|BFAI炒币机器人APP软件开发

系统开发

AI辅助宫颈癌筛查技术全球居首,守护者的力量来源是?

华为云开发者联盟

AI 华为云 目标检测 宫颈癌

LinqToExcel.Extend 源码分析 第二波

happlyfox

28天写作 3月日更

面试看这个就够了!最新BAT大厂面试者整理的Android面试题目模板,先收藏了

欢喜学安卓

android 程序员 面试 移动开发

这操作真香!一线互联网企业高级Android工程师面试题大全,面试真题解析

欢喜学安卓

android 程序员 面试 移动开发

干货分享丨从MPG 线程模型,探讨Go语言的并发程序

华为云开发者联盟

并发 channel goroutines MPG 线程 Go 语言

如果延迟退休势在必行,区块链如何助力“养老助老”?

旺链科技

产业区块链

低代码开发平台解决方案之“金融服务行业”篇

优秀

低代码

PT100热电阻温度阻值对应表

不脱发的程序猿

数据分析 28天写作 PT100 3月日更 温度传感器

小鼎量化交易系统开发|小鼎炒币机器人软件APP开发

系统开发

Netflix 如何真正使用 Java_微服务_Michael Redlich_InfoQ精选文章