写点什么

Netflix 实时流处理平台 Keystone 介绍

  • 2018-10-09
  • 本文字数:1204 字

    阅读完需:约 4 分钟

Netflix 近日在他们的技术博客上发表了一篇博文,探讨其实时流处理平台 Keystone 的设计考虑和见解。

Keystone 自 2015 年 12 月开始运营,随着 Netflix 订阅用户从 2015 年第 2 季度的 6500 万增长到本文写作时的 1.3 亿多,其规模大幅增长。Keystone最初是作为一个Apache Chukwa 管道,随着时间推移演变成了一个 Kafka 前端管道。据这篇博文介绍,早在2016 年,Netflix 就用36 个Kafka 集群每天处理超过7000 亿条消息。

Netflix 的架构由两个不同的实时流处理平台组成。Keystone 专注于数据分析, Mantis 专注于运营。Keystone 提供了数据管道功能和“流处理即服务”。数据管道几乎实时地生成、处理和分析来自 Netflix 运营的所有不同微服务的数据。流处理即服务允许内部用户在开发和运营自定义流处理应用程序时专注于业务应用程序逻辑。

Netflix 在构建和扩展平台时面临的主要挑战,与工程师在构建大规模分布式系统时面临的挑战类似。路由服务支持可调的至少一次交付的语义,并在延迟和消息交付之间进行折中。

Keystone 使用了 Apache Flink ,可以支持无状态和有状态的作业、突发或恒定流量、几秒到几小时的窗口大小、按需严格排序以及可配置的消息传递保证。资源争用也可能成为系统设计的一个问题,因为不同的作业可能在 CPU、内存、I/O 或网络带宽上存在竞争。系统用户有软件工程师也有业务分析师。所有这些挑战,再加上他们希望实现一个基于多租户云的系统,而该系统必须足够简单,以便其用户可以声明并执行作业,而且大多数作业无需依赖运营同事就可以完成,这些构成了一组有趣的设计需求。

Keystone 平台的理念可以总结为使用户完成任务。可调折中、关注点分离和子系统故障(可能发生并将要发生,被描述为“作为一流公民的失败”)是至关重要的基础。

Netflix 工程团队使用声明式协调协议来实现 Keystone 的设计。每个用户声明的目标状态都存储在 AWS RDS 中,并作为事实的唯一来源。例如,如果 Kafka 集群消失了,那么它仅基于 AWS RDS 数据就可以进行重建。

部署编排是通过持续交付工具 Spinnaker 实现的,每个作业都有一个独立的 Flink 集群。每个组件的惟一共享组件是用于协商一致的 ZooKeeper 和用于存储检查点状态的 S3。自助服务工具帮助用户通过路由作业的用户界面和流处理即服务的 CLI 接口来声明作业。

一组内部开发的、针对 Kafka、ElasticSearch 和 Hive 等的托管连接器可以帮助打算使用 Keystone 的开发人员更快地开发,而无需考虑平台的内部结构和消息解析。自定义领域专属语言(DSL)库抽象了过滤、投影和其他常用的数据转换任务。该平台通过 AWS RDS 协调机制提供自修复功能,在出现故障时,可以通过用户界面用需要的数据回填或回放作业。最后,该平台内置了监控和警报功能。

Keystone 平台的未来开发包括服务层、流媒体 SQL 支持和机器学习等功能,所有这些都将在未来的 Netflix 工程博客文章中详细介绍。

查看英文原文: Netflix Keystone Real-Time Stream Processing Platform

2018-10-09 10:492251
用户头像

发布了 1008 篇内容, 共 412.5 次阅读, 收获喜欢 346 次。

关注

评论 1 条评论

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

jodconverter实现在线预览

小鲍侃java

11月日更

(文末福利)云上论剑,谈谈如何构建新的数据系统技术体系

Zilliz

数据库

华为初面+综合面试(Java技术面)附上面试题,share给大家~

Java 编程 程序员 面试

全能文件恢复软件推荐

淋雨

数据恢复

编解码再进化:Ali266 与下一代视频技术

阿里云CloudImagine

阿里云 音视频 视频编码 视频编解码 视频云

自定义View:如何实现双击点放大图片控件

Changing Lin

11月日更

CODING Compass —— 打造行云流水般的软件工厂

CODING DevOps

DevOps 研发管理工具 流程化

直接破防了,阿里大咖DDD(领域驱动设计)不破不立,GitHub直接霸榜,今天share给大家~

编程 程序员 领域驱动

数据基础设施支撑电力人工智能:新能源集控智能管理

EMQ映云科技

人工智能 物联网 电力

浅谈网络性能之端到端业务质量分析

鲸品堂

运营商

成为弹唱高手的秘诀!看这一篇就足够!

懒得勤快

恒源云(GPUSHARE)_云GPU服务器如何使用 JupyterLab?

恒源云

深度学习

在线问诊系统功能以及快速发展的意义

风行无疆

Forrester发布「2021年低代码平台中国市场现状分析报告」,钉钉宜搭入选

一只大光圈

低代码 数字化转型 低代码开发 低代码平台 钉钉宜搭

何止一个惨字形容,水滴Java面试一轮游,壮烈了,问啥啥不会,数据库血崩,我该怎么办?

Java 编程 程序员 面试

1 分钟学会 30 种编程语言

AlwaysBeta

一个基于PoS共识算法的区块链案例

Regan Yue

区块链 共识算法 11月日更 细讲区块链

墨天轮国产数据库沙龙 | 胡彦军:华为GaussDB迁移工具解密

墨天轮

数据库 华为云 GaussDB 国产数据库

浏览器的几种防护策略

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

linux下清理系统缓存并释放内存

入门小站

Linux

同城本地生活信息服务软件开发你知道多少?

风行无疆

SphereEx 中文开源社区正式开站!精美礼品等你来拿

SphereEx

开源社区 ShardingSphere SphereEx Apache ShardingSphere 中文开源

Flink Sort-Shuffle 实现简介

Apache Flink

大数据 flink 实时计算

勒索软件即服务与IAB产业浅析

腾讯安全云鼎实验室

安全攻防 勒索病毒

gitlab registry占用存储过大问题解决

ilinux

识别AI换脸!百度这项技术夺冠了!

百度开发者中心

AI

【云图说】DRS数据对比——带您随时观测数据一致性

华为云数据库小助手

GaussDB 华为云数据库 华为云DRS

恒源云(GPUSHARE)_云GPU服务器如何使用 TensorBoard?

恒源云

深度学习

Python Qt GUI设计:信号与槽的使用方法(基础篇—7)

不脱发的程序猿

Python qt PyQt GUI

NodeJs 深入浅出之旅:V8 内存分配🧙‍♂️

空城机

大前端 Node 11月日更

2022第十五届北京国际智慧城市、物联网、大数据博览会

InfoQ_caf7dbb9aa8a

Netflix实时流处理平台Keystone介绍_开源_Alex Giamas_InfoQ精选文章