克拉克拉(KilaKila):大规模实时计算平台架构实战

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
日志服务 SLS,月写入数据量 50GB 1个月
表格存储 Tablestore,50G 2个月
简介: ** 克拉克拉(KilaKila):大规模实时计算平台架构实战**一、产品背景:克拉克拉(KilaKila)是国内专注二次元、主打年轻用户的娱乐互动内容社区软件。KilaKila推出互动语音直播、短视频配音、对话小说等功能,满足当下年轻用户个性化、碎片化的文娱需求。

克拉克拉(KilaKila):大规模实时计算平台架构实战


作者:阿里云MVP田亮

一、产品背景:
克拉克拉(KilaKila)是国内专注二次元、主打年轻用户的娱乐互动内容社区软件。KilaKila推出互动语音直播、短视频配音、对话小说等功能,满足当下年轻用户个性化、碎片化的文娱需求。App用户等级体系作为克拉克拉社区化打造的核心业务,在增强社区活跃度、提高产品留存方面起到至关重要的作用。随着业务规模增长,海量用户行为日志实时采集与计算的瓶颈也日益突出,由于单台服务器的处理能力有限,海量数据分析需要分布式计算模型来替代。通过技术调研与架构选型,最终解决方案采用基于阿里云日志服务(Log Service)与 开源技术Storm为组合的基础架构。

二、实时日志采集:
LogHub 支持客户端、网页、协议、SDK/API等多种日志无损采集方式,所有采集方式均基于Restful API实现,除此之外也可以通过API/SDK实现新的采集方式。对于克拉克拉来说,业务日志会实时输出到本地服务器,通过在日志服务器部署Logtail,即可完成日志的无丢失采集。因业务场景不同,对日志可以根据不同的Topic进行分类,从而满足不同业务的个性化计算需求。此外,LogHup可通过配置自带的投递服务,将海量日志同步到数据仓库中永久存储。

_1

图一:日志采集流程图

通过Logtail来采集Nginx上用户行为的日志到Logstore只需要简单配置相应日志所在的机器组和日志的绝对路径,其从日志落盘服务器到采集工作的完成控制在1秒内。同时Logstore支持多功能的日志检索服务,可以为后续明确用户行为提供快捷的查询服务。其中我们将不同topic的日志存储在不同的Logstore中,供后续不同业务有针对性的实时消费。

_2

图二:克拉克拉topic日志结构图

_3

图三:日志检索

三、实时业务场景:
为满足克拉克拉用户社区目标,该业务主要针对APP用户在直播、小说、视频三大业务线100多种行为场景下完成用户经验值的实时计算,也就是数据值的增删改查。在实时计算层,克拉克拉选择了Storm开源的分布式实时大数据处理框架,而阿里云日志服务对于Storm有着非常好的兼容与支持。
_4

图四:克拉克拉实时计算框架

_5

图五:LogHup 与 Storm关系


上图中红色虚线框中就是LogHub Storm Spout,每个Storm Topology会有一组Spout,同组内的Spout共同负责读取Logstore中全部数据。不同Topology中的Spout相互不干扰。每个Topology需要选择唯一的LogHub Consume Group名字来相互标识,同一 Topology内的Spout通过 Consumer Library来完成负载均衡和自动failover。Spout从LogHub中实时读取数据之后,发送至Topology中的Bolt节点,定期保存消费完成位置作为checkpoint到LogHub服务端。

四、实时数据存储
克拉克拉实时计算框架中存在诸多数据缓存、永久存储等场景需求。面对该问题,克拉克拉采用了阿里云OTS组件方案。OTS也称为表格存储(Table Store)是阿里云自研的NoSQL多模型数据库,提供海量结构化数据存储以及快速的查询和分析服务。表格存储的分布式存储和强大的索引引擎能够提供PB级存储、千万TPS以及毫秒级延迟的服务能力。通过使用OTS所提供的Java SDK开发包实现了Storm计算过程中所涉及到的数据存储需求。

_6

图六:克拉克拉OTS存储示例


五、项目总结
该项目以实时性和数据的精确度作为评判指标,所面临的挑战主要是用户行为的高并发,平均每秒百万级别的用户计算量;而针对不同的Logstore的日志处理量将会达到用户计算量的十倍左右。通过基于阿里云日志服务、OTS表格存储组件所搭建的克拉克拉实时计算平台综合能力表现良好,符合产品业务预期。
六、未来展望
以Storm为计算中心的框架虽可满足克拉克拉业务诉求,但相关项目研发效率还可进一步提升。对此,后续将重点调研阿里云另一个高效实时计算组件Blink。Blink 是阿里云实时计算方案,基于开源的Apache Flink。 该技术方案的最大亮点是通过SQL脚本语言来代替现有Java语言所开发的计算逻辑。从研发效率上来讲,SQL脚本更容易上手且运维成本更低,相信到时公司整体实时计算框架的性能将会得到显著的提升。
相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
打赏
0
1
1
0
74
分享
相关文章
Python 高级编程与实战:深入理解设计模式与软件架构
本文深入探讨了Python中的设计模式与软件架构,涵盖单例、工厂、观察者模式及MVC、微服务架构,并通过实战项目如插件系统和Web应用帮助读者掌握这些技术。文章提供了代码示例,便于理解和实践。最后推荐了进一步学习的资源,助力提升Python编程技能。
Python 高级编程与实战:构建微服务架构
本文深入探讨了 Python 中的微服务架构,介绍了 Flask、FastAPI 和 Nameko 三个常用框架,并通过实战项目帮助读者掌握这些技术。每个框架都提供了构建微服务的示例代码,包括简单的 API 接口实现。通过学习本文,读者将能够使用 Python 构建高效、独立的微服务。
​Flink+Paimon+Hologres,面向未来的一体化实时湖仓平台架构设计
​Flink+Paimon+Hologres,面向未来的一体化实时湖仓平台架构设计
Android实战经验之Kotlin中快速实现MVI架构
MVI架构通过单向数据流和不可变状态,提供了一种清晰、可预测的状态管理方式。在Kotlin中实现MVI架构,不仅提高了代码的可维护性和可测试性,还能更好地应对复杂的UI交互和状态管理。通过本文的介绍,希望开发者能够掌握MVI架构的核心思想,并在实际项目中灵活应用。
43 8
布谷直播系统源码开发实战:从架构设计到性能优化
作为山东布谷科技的一名技术研发人员,我参与了多个直播系统平台从0到1的开发和搭建,也见证了直播行业从萌芽到爆发的全过程。今天,我想从研发角度,分享一些直播系统软件开发的经验和心得,希望能对大家有所帮助。
Jeesite5:Star24k,Spring Boot 3.3+Vue3实战开源项目,架构深度拆解!让企业级项目开发效率提升300%的秘密武器
Jeesite5 是一个基于 Spring Boot 3.3 和 Vue3 的企业级快速开发平台,集成了众多优秀开源项目,如 MyBatis Plus、Bootstrap、JQuery 等。它提供了模块化设计、权限管理、多数据库支持、代码生成器和国际化等功能,极大地提高了企业级项目的开发效率。Jeesite5 广泛应用于企业管理系统、电商平台、客户关系管理和知识管理等领域。通过其强大的功能和灵活性,Jeesite5 成为了企业级开发的首选框架之一。访问 [Gitee 页面](https://gitee.com/thinkgem/jeesite5) 获取更多信息。
Jeesite5:Star24k,Spring Boot 3.3+Vue3实战开源项目,架构深度拆解!让企业级项目开发效率提升300%的秘密武器
|
1月前
|
转转平台IM系统架构设计与实践(二):详细设计与实现
以转转IM架构为起点,介绍IM相关组件以及组件间的关系;以IM登陆和发消息的数据流转为跑道,介绍IM静态数据结构、登陆和发消息时的动态数据变化;以IM常见问题为风景,介绍保证IM实时性、可靠性、一致性的一般方案;以高可用、高并发为终点,介绍保证IM系统稳定及性能的小技巧。
34 6
阿里云实时计算Flink版测评报告
该测评报告详细介绍了阿里云实时计算Flink版在用户行为分析与标签画像中的应用实践,展示了其毫秒级的数据处理能力和高效的开发流程。报告还全面评测了该服务在稳定性、性能、开发运维及安全性方面的卓越表现,并对比自建Flink集群的优势。最后,报告评估了其成本效益,强调了其灵活扩展性和高投资回报率,适合各类实时数据处理需求。
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
本文介绍了阿里云开源大数据团队在实时计算领域的最新成果——向量化流计算引擎Flash。文章主要内容包括:Apache Flink 成为业界流计算标准、Flash 核心技术解读、性能测试数据以及在阿里巴巴集团的落地效果。Flash 是一款完全兼容 Apache Flink 的新一代流计算引擎,通过向量化技术和 C++ 实现,大幅提升了性能和成本效益。
1938 73
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
Flink CDC 在阿里云实时计算Flink版的云上实践
本文整理自阿里云高级开发工程师阮航在Flink Forward Asia 2024的分享,重点介绍了Flink CDC与实时计算Flink的集成、CDC YAML的核心功能及应用场景。主要内容包括:Flink CDC的发展及其在流批数据处理中的作用;CDC YAML支持的同步链路、Transform和Route功能、丰富的监控指标;典型应用场景如整库同步、Binlog原始数据同步、分库分表同步等;并通过两个Demo展示了MySQL整库同步到Paimon和Binlog同步到Kafka的过程。最后,介绍了未来规划,如脏数据处理、数据限流及扩展数据源支持。
232 0
Flink CDC 在阿里云实时计算Flink版的云上实践