写点什么

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:4960433

评论

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

『Plotly实战指南』--在金融数据可视化中的应用(上)

量贩潮汐·WholesaleTide

Python

5月13日观测云发布会:这一次,我们不只是发布产品

观测云

产品发布会

天润融通助力工业巨头,从人工派单到智能调度的售后提效之路

天润融通

AI与情感计算:如何让机器更好地理解人类情感与情绪?

天津汇柏科技有限公司

人工智能 AI

发件箱模式实战

俞凡

最佳实践 设计模式

从彼得·蒂尔四象限看 Crypto「情绪变迁」:从密码朋克转向「标准化追求者」

TechubNews

天润融通开启AI Agent新时代,引领客户服务智能化升级

天润融通

YashanDB V23.3 正式发布:迈向企业核心系统的 1:1 替代新阶段

数据库砖家

数据库

Flutter小程序与跨端组装技术:高效App开发的新范式

xuyinyin

YashanDB:樊文飞院士观点速递|中国软件的未来:自强、自立、自信

数据库砖家

数据库

在京东做AI的95后:我们这样搞定技术难题

京东零售技术

解决金仓数据库启动报错“内存不足”的问题

金仓技术

KingbaseES 金仓数据库

云上玩转Qwen3系列之二:PAI-LangStudio搭建联网搜索和RAG增强问答应用

阿里云大数据AI技术

人工智能 rag PAI Qwen3 LangStudio

类似亲家相亲,亲人朋友帮忙找对象的交友/app/小程序平台开发搭建

网站,小程序,APP开发定制

【签约快讯|天润融通签约极核电动】

天润融通

工业计算机:工业领域的智慧大脑

极客天地

高性能发件箱模式(每天处理20亿条消息)

俞凡

最佳实践 设计模式

MCP 规范新版本特性全景解析与落地实践

阿里巴巴云原生

阿里云 云原生 通义灵码

远程访问代理+内网穿透:火山引擎边缘网关助力自部署模型公网调用与全链路管控

火山引擎边缘云

网关 火山引擎 大模型 私有化部署 LLM

从架构设计到核心组件深度解析SpringCloudAlibaba一站式解决方案

程序员高级码农

架构师 SpringCloud Alibaba spring-cloud

YashanDB演讲纪要|崖山科技陈志标:坚持自主原创,走长期主义之路

数据库砖家

数据库

e签宝智能合同Agent于数字中国重磅发布!

科技汇

天润融通AI Agent实战营成功举办,助力企业革新客户服务模式

天润融通

0 代码,一键部署 Qwen3

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

当 CEO 患上了 AI 焦虑症(之四):NoETL,万数皆可问!

Aloudata

数据分析 数据开发 指标平台 ChatBI 智能问数

Nacos源码—Nacos集群高可用分析(二)

不在线第一只蜗牛

AI 编程实战:如何用 AI+DevBox 三周开发出 WAF 防火墙(保姆级教程)

硅基新手村

ide AI vscode cursor

【IoTDB 线上小课 15】树表双模型,到底该怎么选?

Apache IoTDB

网络问题导致金仓数据库备机无法加入集群的排查与解决​

金仓技术

KingBase 金仓数据库

Voila:开源端到端全双工语音模型,延迟 195 毫秒;Gemini 2.5 Pro 预览版发布,视频理解能力提升丨日报

RTE开发者社区

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