「如何实现流动式软件发布」线上课堂开课啦,快来报名参与课堂抽奖吧~ 了解详情
写点什么

Flink 基础教程(三):生产环境中的 Flink

2020 年 3 月 28 日

Flink基础教程(三):生产环境中的Flink

编者按:本文节选自图灵程序设计丛书 《Flink 基础教程》一书中的部分章节。


生产环境中的 Flink

本章旨在探讨为何选择 Flink。一个好的方法是听听在生产环境中使用 Flink 的开发人员解释他们选择 Flink 的原因,以及如何使用它。


布衣格电信

布衣格电信(Bouygues Telecom)是法国第三大移动通信运营商,隶属世界 500 强企业布衣格集团。布衣格电信使用 Flink 来进行实时事件处理,每天不间断地分析数十亿条消息。2015 年 6 月,在为 data Artisans 的博客撰写的文章中,Mohamed Amine Abdessemed1 描述了布衣格电信的目标以及 Flink 为什么能实现这些目标。


1 他在布衣格电信负责技术系统。——编者注


……布衣格电信最终选择了 Flink,因为它支持真正的流处理——通过上层的 API 和下层的执行引擎都能实时进行流处理,这满足了我们对可编程性和低延迟的需求。此外,使用 Flink,我们的系统得以快速上线,这是其他任何一种方案都做不到的。如此一来,我们就有了更多的人手开发新的业务逻辑。


Mohamed Amine Abdessemed 在于 2015 年 10 月举行的 Flink Forward 研讨会上也做了报告。布衣格电信试图给其工程师实时提供关于用户体验的反馈,让他们了解公司遍布全球的网络正在发生什么,并从网络的演进和运行的角度掌握发展动向。


为了实现这个目标,他们的团队搭建了一个用来分析网络设备日志的系统,它定义了衡量用户体验质量的各项指标。该系统每天处理 20 亿次事件,要求端到端延迟不超过 200 毫秒(包括由传输层负责的消息发布和由 Flink 操作的数据处理)。这些都在一个仅有 10 个节点(每个节点 1GB 内存)的小集群上完成。布衣格电信还希望这些经过部分处理的数据能被复用,从而在互不干扰的前提下满足各种商业智能分析需求。


该公司打算利用 Flink 的流处理能力来转换和挖掘数据。加工后的数据被推送回消息传输系统,以保证数据可以被不同的用户使用。


相比于其他处理方案,比如在数据进入消息队列之前进行处理,或者将数据分派给消费同一个消息队列的多个应用程序来分头处理,Flink 的处理方案更合适。


布衣格电信利用 Flink 的流处理能力完成了数据处理和数据迁移,它既满足了低延迟的要求,又具有很高的可靠性、可用性,以及易用性。Flink 为调试工作提供了极大的便利,甚至支持切换到本地进行调试。它也支持程序可视化,有利于理解程序的运行原理。此外,Flink 的 API 吸引了很多开发人员和数据科学家。Mohamed Amine Abdessemed 在其文章中还提及布衣格电信的其他团队使用 Flink 解决了不同的问题。


其他案例

King 公司


King 公司的游戏非常流行,全世界几乎每时每刻都有人在玩它的在线游戏。作为在线娱乐行业的佼佼者,该公司称自己已经开发了 200 多款游戏,市场覆盖 200 多个国家和地区。


King 公司的工程师曾在一篇博客文章中写道:“我们每月有超过 3 亿的独立用户,每天从不同的游戏和系统中收到 300 亿次事件,基于这么大的数据量做任何流分析都是真正的技术挑战。因此,为我们的数据分析师开发工具来处理如此大规模的流数据,同时保证数据在应用中具有最大的灵活性,这些对于公司而言至关重要。”


King 公司用 Flink 构建的系统让其数据分析师得以实时地获取大量的流数据。Flink 的成熟度给他们留下了深刻的印象。即使面对像 King 公司这样复杂的应用环境,Flink 也能很好地提供支持。


Zalando 公司


作为欧洲领先的在线时尚平台,Zalando 公司在全球拥有超过 1600 万的客户。该公司的网站将其组织结构描述为“多个敏捷、自主的小型团队”(换句话说,该公司采用了微服务架构)。


流处理架构为微服务提供了良好的支持。因此,Flink 提供的流处理能力满足了这种工作模式的需求,特别是支持业务流程监控和持续的 ETL2 过程。


2 ETL 是 Extract、Transform 和 Load 的缩写,即抽取、转换和加载。——编者注


Otto 集团


Otto 集团是全球第二大 B2C(business to consumer,企业对顾客电子商务)在线零售商,也是欧洲时尚和生活领域最大的 B2C 在线零售商。


它的商业智能部门在最初开始评估开源流处理平台时,没有找到一种能够符合其要求的平台,所以后来决定开发自己的流处理引擎。但是当试过 Flink 之后,该部门发现 Flink 满足了他们对流处理的所有需求,包括对众包用户代理的鉴定,以及对检索事件的辨识。


ResearchGate


从活跃用户的数量上看,ResearchGate 是最大的学术社交网络。它从 2014 年开始使用 Flink 作为其数据基础设施的一个主要工具,负责批处理和流处理。


阿里巴巴集团


阿里巴巴这个庞大的电子商务集团为买方和卖方提供平台。其在线推荐功能是通过基于 Flink 的系统 Blink 实现的。用户当天所购买的商品可以被用作在线推荐的依据,这是使用像 Flink 这样真正意义上的流处理引擎能够带来的好处之一。并且,这在那些用户活跃度异常高的特殊日期(节假日)尤其重要,也是高效的流处理相较于批处理的优势之一。


图书简介https://www.ituring.com.cn/book/2036



编者按:本文节选自图灵程序设计丛书 《Flink 基础教程》一书中的部分章节。


生产环境中的 Flink

本章旨在探讨为何选择 Flink。一个好的方法是听听在生产环境中使用 Flink 的开发人员解释他们选择 Flink 的原因,以及如何使用它。


布衣格电信

布衣格电信(Bouygues Telecom)是法国第三大移动通信运营商,隶属世界 500 强企业布衣格集团。布衣格电信使用 Flink 来进行实时事件处理,每天不间断地分析数十亿条消息。2015 年 6 月,在为 data Artisans 的博客撰写的文章中,Mohamed Amine Abdessemed1 描述了布衣格电信的目标以及 Flink 为什么能实现这些目标。


1 他在布衣格电信负责技术系统。——编者注


……布衣格电信最终选择了 Flink,因为它支持真正的流处理——通过上层的 API 和下层的执行引擎都能实时进行流处理,这满足了我们对可编程性和低延迟的需求。此外,使用 Flink,我们的系统得以快速上线,这是其他任何一种方案都做不到的。如此一来,我们就有了更多的人手开发新的业务逻辑。


Mohamed Amine Abdessemed 在于 2015 年 10 月举行的 Flink Forward 研讨会上也做了报告。布衣格电信试图给其工程师实时提供关于用户体验的反馈,让他们了解公司遍布全球的网络正在发生什么,并从网络的演进和运行的角度掌握发展动向。


为了实现这个目标,他们的团队搭建了一个用来分析网络设备日志的系统,它定义了衡量用户体验质量的各项指标。该系统每天处理 20 亿次事件,要求端到端延迟不超过 200 毫秒(包括由传输层负责的消息发布和由 Flink 操作的数据处理)。这些都在一个仅有 10 个节点(每个节点 1GB 内存)的小集群上完成。布衣格电信还希望这些经过部分处理的数据能被复用,从而在互不干扰的前提下满足各种商业智能分析需求。


该公司打算利用 Flink 的流处理能力来转换和挖掘数据。加工后的数据被推送回消息传输系统,以保证数据可以被不同的用户使用。


相比于其他处理方案,比如在数据进入消息队列之前进行处理,或者将数据分派给消费同一个消息队列的多个应用程序来分头处理,Flink 的处理方案更合适。


布衣格电信利用 Flink 的流处理能力完成了数据处理和数据迁移,它既满足了低延迟的要求,又具有很高的可靠性、可用性,以及易用性。Flink 为调试工作提供了极大的便利,甚至支持切换到本地进行调试。它也支持程序可视化,有利于理解程序的运行原理。此外,Flink 的 API 吸引了很多开发人员和数据科学家。Mohamed Amine Abdessemed 在其文章中还提及布衣格电信的其他团队使用 Flink 解决了不同的问题。


其他案例

King 公司


King 公司的游戏非常流行,全世界几乎每时每刻都有人在玩它的在线游戏。作为在线娱乐行业的佼佼者,该公司称自己已经开发了 200 多款游戏,市场覆盖 200 多个国家和地区。


King 公司的工程师曾在一篇博客文章中写道:“我们每月有超过 3 亿的独立用户,每天从不同的游戏和系统中收到 300 亿次事件,基于这么大的数据量做任何流分析都是真正的技术挑战。因此,为我们的数据分析师开发工具来处理如此大规模的流数据,同时保证数据在应用中具有最大的灵活性,这些对于公司而言至关重要。”


King 公司用 Flink 构建的系统让其数据分析师得以实时地获取大量的流数据。Flink 的成熟度给他们留下了深刻的印象。即使面对像 King 公司这样复杂的应用环境,Flink 也能很好地提供支持。


Zalando 公司


作为欧洲领先的在线时尚平台,Zalando 公司在全球拥有超过 1600 万的客户。该公司的网站将其组织结构描述为“多个敏捷、自主的小型团队”(换句话说,该公司采用了微服务架构)。


流处理架构为微服务提供了良好的支持。因此,Flink 提供的流处理能力满足了这种工作模式的需求,特别是支持业务流程监控和持续的 ETL2 过程。


2 ETL 是 Extract、Transform 和 Load 的缩写,即抽取、转换和加载。——编者注


Otto 集团


Otto 集团是全球第二大 B2C(business to consumer,企业对顾客电子商务)在线零售商,也是欧洲时尚和生活领域最大的 B2C 在线零售商。


它的商业智能部门在最初开始评估开源流处理平台时,没有找到一种能够符合其要求的平台,所以后来决定开发自己的流处理引擎。但是当试过 Flink 之后,该部门发现 Flink 满足了他们对流处理的所有需求,包括对众包用户代理的鉴定,以及对检索事件的辨识。


ResearchGate


从活跃用户的数量上看,ResearchGate 是最大的学术社交网络。它从 2014 年开始使用 Flink 作为其数据基础设施的一个主要工具,负责批处理和流处理。


阿里巴巴集团


阿里巴巴这个庞大的电子商务集团为买方和卖方提供平台。其在线推荐功能是通过基于 Flink 的系统 Blink 实现的。用户当天所购买的商品可以被用作在线推荐的依据,这是使用像 Flink 这样真正意义上的流处理引擎能够带来的好处之一。并且,这在那些用户活跃度异常高的特殊日期(节假日)尤其重要,也是高效的流处理相较于批处理的优势之一。


图书简介https://www.ituring.com.cn/book/2036



相关阅读


Flink基础教程(一):流处理技术的演变


Flink基础教程(二):初探Flink


2020 年 3 月 28 日 10:001600

评论

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

netty案例,netty4.1基础入门篇十一《netty udp通信方式案例Demo》

小傅哥

Java Netty

netty案例,netty4.1高级应用篇二,手写RPC框架第二章《netty通信》

小傅哥

Netty 小傅哥

数字化背景下的经济社会发展的新特征 新趋势

CECBC区块链专委会

区块链 人工智能 大数据

netty案例,netty4.1基础入门篇十二《简单实现一个基于Netty搭建的Http服务》

小傅哥

Java Netty

netty案例,netty4.1中级拓展篇四《Netty传输文件、分片发送、断点续传》

小傅哥

Netty 小傅哥

netty案例,netty4.1中级拓展篇七《Netty请求响应同步通信》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1中级拓展篇八《Netty心跳服务与断线重连》

小傅哥

Netty 小傅哥

netty案例,netty4.1源码分析篇一《NioEventLoopGroup源码分析》

小傅哥

Netty 小傅哥

netty案例,netty4.1源码分析篇四《ByteBuf的数据结构在使用方式中的剖析》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1中级拓展篇六《SpringBoot+Netty+Elasticsearch收集日志信息数据存储》

小傅哥

Java Netty

netty案例,netty4.1中级拓展篇十一《Netty基于ChunkedStream数据流切块传输》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1中级拓展篇十二《Netty流量整形数据流速率控制分析与实战》

小傅哥

Netty 小傅哥

netty案例,netty4.1基础入门篇八《NettyClient半包粘包处理、编码解码处理、收发数据方式》

小傅哥

Netty 小傅哥

netty案例,netty4.1基础入门篇九《自定义编码解码器,处理半包、粘包数据》

小傅哥

Java Netty

netty案例,netty4.1高级应用篇一,手写RPC框架第一章《自定义配置xml》

小傅哥

Java Netty

netty案例,netty4.1中级拓展篇五《基于Netty搭建WebSocket,模仿微信聊天页面》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1中级拓展篇十三《Netty基于SSL实现信息传输过程中双向加密验证》

小傅哥

Netty 小傅哥

netty案例,netty4.1高级应用篇三,手写RPC框架第三章《RPC中间件》

小傅哥

Netty 小傅哥

netty案例,netty4.1源码分析篇三《Netty服务端初始化过程以及反射工厂的作用》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1基础入门篇七《嗨!NettyClient》

小傅哥

Netty 小傅哥

netty案例,netty4.1基础入门篇十《关于ChannelOutboundHandlerAdapter简单使用》

小傅哥

Netty 小傅哥

netty案例,netty4.1中级拓展篇一《Netty与SpringBoot整合》

小傅哥

Java Netty

netty案例,netty4.1中级拓展篇二《Netty使用Protobuf传输数据》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1中级拓展篇三《Netty传输Java对象》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1中级拓展篇九《Netty集群部署实现跨服务端通信的落地方案》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1中级拓展篇十《Netty接收发送多种协议消息类型的通信处理方案》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1源码分析篇六《Netty异步架构监听类Promise源码分析》

小傅哥

Netty 小傅哥

程序开发中的持续集成、持续交付、持续部署

石云升

持续集成 持续交付 持续部署 自动化部署

大龄程序员的自我介绍 v 0.1

escray

学习 面试 自我介绍 面试现场

netty案例,netty4.1源码分析篇二《ServerBootstrap配置与绑定启动》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1源码分析篇五《一行简单的writeAndFlush都做了哪些事》

小傅哥

Java Netty 小傅哥

Flink基础教程(三):生产环境中的Flink-InfoQ