本文介绍了 Netflix 基于 FieldMask 设计更高效健壮的 API 的实践,全文分两个部分,这是第一部分。原文:Practical API Design at Netflix, Part 1: Using Protobuf FieldMask[1] 背景 在Netflix,我们大量使用 gRPC[2]进行后端通信。处理请求的时候,如果能够知道调用者对哪些字段感兴趣、哪些字段可以忽略,会非常...
随着业务规模不断扩大,微服务越来越多,维护 API 聚合层变得越来越困难,另外一个问题是,不同后端服务的数据聚合逻辑不能够复用。 于是,Netflix 引入了灵活的联合架构GraphQLFederation,它有三个主要组件。 • DGS:全称是 Domain Graph Service,一个独立的 GraphQL 服务,开发人员在 DGS 中定义 Schema,每个 DGS 服...
绝大部分 APIs(包括 Netflix 从2008年以来就一直使用的 REST API)都以相同的方式处理这些设备,这种方法有它本身的好处——单体 OSFA API 架构能让团队更容易地使各种 API 被消费得更高效、稳定,因为是由 API 开发团队自己负责制定的规则,其他人(API 消费者)只能乖乖遵循、默默敲代码。 但其实不同的设备需要不...
六角形架构思想是将输入和输出置于我们设计的边缘。业务逻辑不应该依赖于我们公开REST还是GraphQL API,也不应该依赖于我们从何处获取数据,不依赖于数据库,通过gRPC或REST公开的微服务API,或者仅仅是一个简单的CSV文件。该模式使我们能够将应用程序的核心逻辑与外界的关注隔离开。将我们的核心逻辑隔离开意味着我们可以...
Netflix 实用 API 设计 (下) 简介:Netflix 实用 API 设计 (下) gRPC 如今被很多公司应用在大规模生产环境中,很多时候我们并不需要通过 RPC 请求所有数据,而只关心响应数据中的部分字段,Protobuf FieldMask 就可以帮助我们实现这一目的。本文介绍了 Netflix 基于 FieldMask 设计更高效健壮的 API 的实践,全文分...
Netflix 在 2009 年自豪地推出了他们的 API 计划,理由是第三方开发人员可以创建新的应用程序。最终,他们停止向开发人员发布新的API密钥,到2014年,除了选定的合作伙伴集成之外,所有用户都关闭了该密钥。根据 Netflix 工程总监丹尼尔·雅各布森的说法,他们的理由是“更好地集中我们的努力,并使其与我们全球会员群的需求...
《纸钞屋》(La casa de papel) / Netflix Protobuf FieldMask Protocol Buffers[6],简称protobuf,是一种数据序列化机制。默认情况下,gRPC使用protobuf作为它的IDL(接口定义语言)和数据序列化协议。 FieldMask是一个protobuf消息,有许多实用工具和约定用来处理RPC请求中包含的FieldMask。FieldMask消息包含一个名为path...
Netflix关闭公开API,停止支持第三方应用 【流媒体网】摘要:美国在线视频网站Netflix在上周五宣布关闭公开的API(应用程序接口),不再支持第三方应用通过API 接口来获得Netflix 上的视频内容。早在今年6月,Netflix Edge工程副总裁Daniel Jacobson 就曾宣布,Netflix将彻底“退休”这一API。
Netflix Zuul 对于API Gateway,常见的选型有基于 Openresty 的 Kong、基于 Go 的 Tyk 和基于Java的 Zuul。 这三个选型本身没有什么明显的区别,主要还是看技术栈是否能满足快速应用和二次开发,例如我司原有的技术栈就是使用 Go/Openresty 的平台组和使用 Java 的后端组,讨论后觉得 API Gateway 未来还是处理业务功...
Netflix API 是 Netflix 微服务生态体系的“大门”。收到来自不同设备的请求后,API 提供了构建响应过程中调用不同服务所需的逻辑。API 会通过后端系统收集所需任何信息,以需要的顺序和格式收集并筛选数据,随后返回所需响应。 因此Netflix API 的核心其实是一种编排(Orchestration)服务,可通过对微服务提供的细粒度功...