本文是关于马蜂巢大数据平台中卡夫卡集群的优化。边肖觉得很实用,所以分享给大家学习。希望你看完这篇文章能有所收获。让我们和边肖一起看看。
Kafka是目前流行的消息队列中间件,能够实时处理海量数据,具有高吞吐量、低时延和可靠的异步消息传输机制等特点,能够很好地解决不同系统之间的数据交换和传输问题。
Kafka在马蜂窝也广泛应用,为很多核心业务提供支持。下面将重点介绍卡夫卡在马蜂窝大数据平台的应用实践,并介绍相关业务场景,我们在卡夫卡应用的不同阶段遇到了哪些问题,如何解决,接下来会有哪些计划。
应用场景
从Kafka在大数据平台的应用场景来看,主要分为以下三类:
第一类是以Kafka为数据库,为大数据平台提供实时数据存储服务。从来源和使用两个维度,实时数据可以分为业务端DB数据、监控类型日志、基于埋点的客户端日志(H5、WEB、APP、applet)和服务器日志。
第二类是为数据分析提供数据源。每个埋点的日志将作为数据源,支持和连接公司的线下数据、实时数据仓库和分析系统,包括多维查询、实时DruidOLAP、日志明细等。
第三类是为业务方提供数据订阅。除了在大数据平台的应用,我们还利用Kafka为推荐搜索、交通、酒店、内容中心等核心业务提供数据订阅服务,如用户实时特征计算、用户实时画像训练与实时推荐、反作弊、业务监控与报警等。
四个阶段
早期大数据平台引入Kafka作为业务日志的收集和处理系统,主要考虑其高吞吐量、低延迟、多订阅、数据回溯等特点,能够更好地满足大数据场景的需求。但随着业务量的快速增加,以及业务使用和系统维护中遇到的注册机制和监控机制不完善等问题,导致问题无法快速定位,部分在线实时任务无法快速恢复,造成消息积压等。这对Kafka集群的稳定性和可用性提出了挑战,并经历了几次严重的失败。
解决上述问题对我们来说是紧迫而困难的。针对大数据平台使用Kafka的一些痛点,我们做了从集群使用到应用层扩展的一系列实践,整体包括四个阶段:
针对第一阶段:版本升级。,平台数据生产和消费中的一些瓶颈和问题,我们对目前的卡夫卡版本进行了技术选择,最终决定使用1.1.1版本。
为了支持第二阶段:资源隔离。,业务的快速发展,我们完善了集群中主题的多集群建设和资源隔离。
第三阶段:权限控制和监控告警。
首先,在安全性方面,早期的卡夫卡集群是赤裸裸的。因为多条产品线共享卡夫卡,容易误读其他业务的Topic,导致数据安全问题。因此,我们增加了基于SASL/scracl的认证功能。
在监控告警方面,Kafka已经成为实时计算中的标准输入数据源,因此Lag backlog和吞吐量成为实时任务健康程度的重要指标。因此,大数据平台搭建了统一的卡夫卡监控报警平台,并命名为“雷达”,对卡夫卡集群和用户进行多维度监控。
在第四阶段:应用扩展。卡夫卡向公司所有业务线开放初期,由于缺乏统一的使用规范,一些业务方使用不当。为了解决这个痛点,我们搭建了实时订阅平台,通过应用服务赋能业务端,实现了数据生产消费应用、平台用户授权、用户监控报警等多个环节的流程自动化。形成从需求侧到资源综合管控的整体闭环。
以上就是Kafka集群在马蜂巢大数据平台是如何优化的。边肖认为,一些知识点可能会在我们的日常工作中看到或使用。我希望你能通过这篇文章学到更多的知识。更多详情请关注行业信息渠道。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/147378.html