35 | Facebook游戏实时流处理Beam Pipeline实战(上)
蔡元楠
该思维导图由 AI 生成,仅供参考
你好,我是蔡元楠。
今天我要与你分享的主题是“Facebook 游戏实时流处理 Beam Pipeline 实战”。
Facebook 这个社交平台我相信你一定早有耳闻。它除了能够让用户发送消息给好友,分享自己的动态图片和视频之外,还通过自身的 App Center 管理着各式各样的小游戏。许多游戏开发商借助 Facebook 的好友邀请机制让自己的 App 火了一把。
曾经有一段时间,在 Facebook 上有一款名为糖果传奇(Candy Crush Saga)的游戏风靡了整个北美。各个年龄层的玩家都会在空闲的时间拿出手机,过五关斩六将,希望尽快突破更多的关卡,并且获得高分。
当然了,除了消除游戏本身带来的乐趣以外,可以在 Facebook 里和自己的好友进行积分排名比拼也是另外一个能吸引用户的地方。
想要一个类似 Facebook 这样的好友间积分排行榜,你可以有很多种实现方式以及各种优化方法。那么,如果我们要利用 Apache Beam 的话,该怎样实现一个类似的游戏积分排行榜呢?
今天我就来和你一起研究,要如何利用 Apache Beam 的数据流水线来实现一个我们自定义的简单游戏积分排行榜。
为了简化整个游戏积分排行榜案例的说明,我们先来做几个方面的假设:
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文详细介绍了如何利用Apache Beam的数据流水线实现一个类似Facebook游戏积分排行榜的实时流处理。作者首先阐述了游戏积分排行榜的需求和假设,然后深入讲解了实现的步骤和技术细节。文章提到了使用Composite Transform来模块化数据流水线,以及利用无边界数据集进行实时数据处理来缩短延迟。此外,文章还提供了具体的Java代码示例,帮助读者更好地理解实现过程。总的来说,本文通过实际案例向读者展示了如何利用Apache Beam进行实时流处理,对于对实时数据处理感兴趣的读者具有一定的参考价值。文章还提到了实时流处理中需要用到窗口、触发器和累加模式,为读者提供了思考和讨论的空间。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《大规模数据处理实战》,新⼈⾸单¥59
《大规模数据处理实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(5)
- 最新
- 精选
- suncar老师您好,请问一下可不可以将这种案例放一份到github上。我们可以拉到本地进行调试。在这个过程中避免不了出现各种异常,以方便更好的解决和深入了解。谢谢2019-07-1612
- 之渊源码https://gitee.com/oumin12345/daimademojihe/tree/master/cloudx/bigdata/src/main/java/test/beam/facebook 新手先自己试着写出来。再参考。这样才是实战啊,毕竟工作是没有抄的2020-08-241
- Fiery第一个问题是,为什么pipeline里面没有针对每个关卡的aggregation?难道默认只处理一个关卡吗?那candy crush有好几百的关卡,总不能每一个关卡单独copy一份这样的代码吧?! 第二个问题是,在第5步的Composite Transform中,用Top Transform算出每个用户的Top score,输出难道不应该是PCollection<KV<string, long>>吗(Key是user id,Value是score)?而且既然已经用Top得到了每个用户的最高分,直接针对这个PCollection<KV<string, long>>进行第二次Top Transform不就能得到前100名用户的ID的分数了?为什么还要多一个中间转换产生PCollection<KV<string, UserScoreInfo>>呢?2020-03-15
- wang思考题:窗口值也就是事件处理阶段=》startBoundary 和 endBoundary 的值 触发器也就是计算触发的时间=》30min 一个点 累加模式=》丢弃2020-01-08
- bingo老师你好,我有个疑问。这里的用户数据可不可以全部放在Hbase里。 由于好友之间的排名查询涉及的数据量少,所以直接查询Hbase。而全局的总排名要涉及到所有的玩家,数据量大,这个使用流水线处理2019-09-21
收起评论