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

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: ** 克拉克拉(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学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
相关文章
|
2月前
|
SQL NoSQL 前端开发
基于BS架构的饰品购物平台设计与实现(程序+文档+数据库)
基于BS架构的饰品购物平台设计与实现(程序+文档+数据库)
|
9天前
|
存储 运维 监控
|
9天前
|
安全 Java 数据安全/隐私保护
Spring Boot优雅实现多租户架构:概念与实战
【4月更文挑战第29天】在多租户系统中,一个应用实例服务于多个租户,每个租户享有独立的数据视图,而应用的基础设施被共享。这样的架构不仅优化了资源使用,还能降低维护和运营成本。本文将详细介绍如何在Spring Boot中实现多租户架构,并提供具体的实战案例。
37 2
|
10天前
|
前端开发 NoSQL 数据库
切图仔做全栈:React&Nest.js社区平台(一)——基础架构与邮箱注册、JWT登录实现
切图仔做全栈:React&Nest.js社区平台(一)——基础架构与邮箱注册、JWT登录实现
|
10天前
|
机器学习/深度学习 人工智能 流计算
人工智能平台PAI 操作报错合集之在集群上提交了包含alink相关功能的flink任务,但是却报错如何解决
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
|
22天前
|
缓存 小程序
Java+saas模式 智慧校园系统源码MySQL5.7+ elmentui前后端分离架构 让校园管理更高效的数字化平台系统源码
智慧校园是在数字通增强版基础上,研发的一套面向教育行业的数字化校园软件,其显著特点是集学校网站、协同办公、即时通讯、网络空间、移动办公于一体。在满足教职工日常办公需要的同时,拥有诸多教育行业功能,并提供便捷易用的“家校通”平台以满足老师、学生、家长的日常交流。数字通智慧校园教育版中的协同办公、即时通讯、移动办公等功能模块随通用版一同改进,将网络办公最新技术应用到教育行业。
25 1
|
2月前
|
Cloud Native Dubbo 应用服务中间件
【Dubbo3高级特性】「微服务云原生架构」带你从零基础认识搭建公司内部服务用户中心体系(实战指南-序章)
【Dubbo3高级特性】「微服务云原生架构」带你从零基础认识搭建公司内部服务用户中心体系(实战指南-序章)
63 0
|
2月前
|
Dubbo Cloud Native 应用服务中间件
【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)
【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)
26 1
|
2月前
|
缓存 前端开发 安全
秒杀系统架构分析与实战
秒杀系统架构分析与实战
72 0
|
2月前
|
运维 Linux Apache
LAMP架构调优(九)——Apache Rewrite功能实战
LAMP架构调优(九)——Apache Rewrite功能实战
15 1