Kafka集群在马蜂窝大数据平台的优化与应用扩展马蜂窝技术

从Kafka在大数据平台的应用场景来看,主要分为以下三类:

第二类是为数据分析提供数据源,各埋点日志会作为数据源,支持并对接公司离线数据、实时数据仓库及分析系统,包括多维查询、实时DruidOLAP、日志明细等。

第三类是为业务方提供数据订阅。除了在大数据平台内部的应用之外,我们还使用Kafka为推荐搜索、大交通、酒店、内容中心等核心业务提供数据订阅服务,如用户实时特征计算、用户实时画像训练及实时推荐、反作弊、业务监控报警等。

主要应用如下图所示:

早期大数据平台之所以引入Kafka作为业务日志的收集处理系统,主要是考虑到它高吞吐低延迟、多重订阅、数据回溯等特点,可以更好地满足大数据场景的需求。但随着业务量的迅速增加,以及在业务使用和系统维护中遇到的问题,例如注册机制、监控机制等的不完善,导致出现问题无法快速定位,以及一些线上实时任务发生故障后没有快速恢复导致消息积压等,使Kafka集群的稳定性和可用性得受到挑战,经历了几次严重的故障。

解决以上问题对我们来说迫切而棘手。针对大数据平台在使用Kafka上存在的一些痛点,我们从集群使用到应用层扩展做了一系列的实践,整体来说包括四个阶段:

第一阶段:版本升级。围绕平台数据生产和消费方面存在的一些瓶颈和问题,我们针对目前的Kafka版本进行技术选型,最终确定使用1.1.1版本。

第二阶段:资源隔离。为了支持业务的快速发展,我们完善了多集群建设以及集群内Topic间的资源隔离。

第三阶段:权限控制和监控告警。

首先在安全方面,早期的Kafka集群处于裸跑状态。由于多产品线共用Kafka,很容易由于误读其他业务的Topic导致数据安全问题。因此我们基于SASL/SCRAM+ACL增加了鉴权的功能。

在监控告警方面,Kafka目前已然成为实时计算中输入数据源的标配,那么其中Lag积压情况、吞吐情况就成为实时任务是否健康的重要指标。因此,大数据平台构建了统一的Kafka监控告警平台并命名「雷达」,多维度监控Kafka集群及使用方情况。

下面围绕几个关键点为大家展开介绍。

之前大数据平台一直使用的是0.8.3这一Kafka早期版本,而截止到当前,Kafka官方最新的Release版本已经到了2.3,于是长期使用0.8版本过程中渐渐遇到的很多瓶颈和问题,我们是能够通过版本升级来解决的。

举例来说,以下是一些之前使用旧版时常见的问题:

同时对一些目标版本的特性进行了选型调研,如:

最终选择1.1版本,则是因为出于Camus与Kafka版本的兼容性及1.1版本已经满足了使用场景中重要新特性的支持的综合考量。这里再简单说一下Camus组件,同样是由Linkedin开源,在我们的大数据平台中主要作为Kafka数据Dump到HDFS的重要方式。

针对以上的问题,在集群改造上做了两方面实践:

(1)集群拆分

按照功能维度拆分多个Kafka物理集群,进行业务隔离,降低运维复杂度。

以目前最重要的埋点数据使用来说,目前拆分为三类集群,各类集群的功能定义如下:

全量订阅集群:该集群Topic中的绝大部分数据是从Log集群实时同步过来的。上面我们提到了Log集群的数据是不对外的,因此全量集群就承担了消费订阅的职责。目前主要是用于平台内部的实时任务中,来对多个业务线的数据分析并提供分析服务。

个性定制集群:之前提到过,我们可以根据业务方需求来拆分、合并数据日志源,同时我们还支持定制化Topic,该集群只需要提供分流后Topic的落地存储。

集群整体架构划分如下图:

(2)资源隔离

Topic的流量大小是集群内部进行资源隔离的重要依据。例如,我们在业务中埋点日志量较大的两个数据源分别是后端埋点数据源server-event和端上的埋点mobile-event数据源,我们要避免存储两个数据的主题分区分配到集群中同一个Broker上的节点。通过在不同Topic进行物理隔离,就可以避免Broker上的流量发生倾斜。

(1)权限控制

开始介绍时我们说过,早期Kafka集群没有设置安全验证处于裸跑状态,因此只要知道Broker的连接地址即可生产消费,存在严重的数据安全性问题。

一般来说,使用SASL的用户多会选择Kerberos,但就平台Kafka集群的使用场景来说,用户系统并不复杂,使用Kerberos就有些大材小用,同时Kerberos相对复杂,存在引发其他问题的风险。另外,在Encryption方面,由于都是运行在内网环境,所以并没有使用SSL加密。

最终平台Kafka集群使用SASL作为鉴权方式,基于SASL/SCRAM+ACL的轻量级组合方式,实现动态创建用户,保障数据安全。

(2)监控告警

之前在集群的使用中我们经常发现,消费应用的性能无缘无故变差了。分析问题的原因,通常是滞后Consumer读取的数据大概率没有命中Page-cache,导致Broker端机器的内核要首先从磁盘读取数据加载到Page-cache中后,才能将结果返还给Consumer,相当于本来可以服务于写操作的磁盘现在要读取数据了,影响了使用方读写同时降低的集群的性能。

这时就需要找出滞后Consumer的应用进行事前的干预从而减少问题发生,因此监控告警无论对平台还是用户都有着重大的意义。下面介绍一下我们的实践思路。

整体方案:

整体方案主要是基于开源组件KafkaJMXMetrics+OpenFalcon+Grafana:

关于监控:

关于告警:

雷达系统:自研监控系统,通过Falcon及Eagle获取Kafka指标,结合设定阈值进行告警。以消费方式举例,Lag是衡量消费情况是否正常的一个重要指标,如果Lag一直增加,必须要对它进行处理。

监控示例:

(1)实时数据订阅平台

核心思想是基于Kafka数据源的身份认证和权限控制,增加数据安全性的同时对Kafka下游应用进行管理。

(2)标准化的申请流程

(3)监控告警

对于平台来说,权限与资源是绑定的,资源可以是用于生产的Topic或消费使用的GroupTopic。一旦权限分配后,对于该部分资源的使用就会自动在我们的雷达监控系统进行注册,用于资源整个生命的周期的监控。

(4)数据重播

出于对数据完整性和准确性的考量,目前Lamda架构已经是大数据的一种常用架构方式。但从另一方面来说,Lamda架构也存在资源的过多使用和开发难度高等问题。

(5)主题管理

为什么提供主题管理?举一些很简单的例子,比如当我们想让一个用户在集群上创建他自己的KafkaTopic,这时显然是不希望让他直接到一个节点上操作的。因此刚才所讲的服务,不管是对用户来讲,还是管理员来讲,我们都需要有一个界面操作它,因为不可能所有人都通过SSH去连服务器。

因此需要一个提供管理功能的服务,创建统一的入口并引入主题管理的服务,包括主题的创建、资源隔离指定、主题元数据管理等。

(6)数据分流

在之前的架构中,使用方消费Kafka数据的粒度都是每个KafkaTopic保存LogSource的全量数据,但在使用中很多消费方只需要消费各LogSource的部分数据,可能也就是某一个应用下几个埋点事件的数据。如果需要下游应用自己写过滤规则,肯定存在资源的浪费及使用便捷性的问题;另外还有一部分场景是需要多个数据源Merge在一起来使用的。

基于上面的两种情况,我人实现了按业务方需求拆分、合并并定制化Topic支持跨数据源的数据合并及appcode和eventcode的任意组个条件的过滤规则。

解决数据重复问题。为了解决目前平台实时流处理中因故障恢复等因素导致数据重复的问题,我们正在尝试用Kafka的事务机制结合Flink的两段提交协议实现端到端的仅一次语义。目前已经在平台上小范围试用,如果通过测试,将会在生产环境下推广。

Consumer限流。在一写多读场景中,如果某一个Consumer操作大量读磁盘,会影响Produce级其他消费者操作的延迟。l因此,通过KafkaQuota机制对Consume限流及支持动态调整阈值也是我们后续的方向

场景扩展。基于Kafka扩展SDK、HTTP等多种消息订阅及生产方式,满足不同语言环境及场景的使用需求。

THE END
1.东方时尚:首次公开发行股票招股说明书股票频道委托他人管理所间接持有的本公司股份,也不由发行人回购该部分股份。所持股 票在锁定期后两年内减持的,减持价格不低于发行价;发行人股票上市后 6 个月 内如发行人股票连续 20 个交易日的收盘价低于发行价,或者上市后 6 个月期末 收盘价低于发行价,持有发行人股票的锁定期限自动延长 6 个月。在本公司任职 期间...https://stock.stockstar.com/notice/JC2016012600001240_30.shtml
2.施工组织设计样本(房建工程)建筑技术文档学术交流文章大酒店是一幢集娱乐、餐饮、住宿为一体的多功能综合楼,该楼 平面形状呈“┐”字形,是大酒店的主要工程,该建筑总建筑面积7072 m2,主体8层,总高为35.8m,防火等级为二级。 四、结构概况 1) 结构体系 本工程为框架-剪力墙结构,框架抗震等级为一级,剪力墙抗震等级 ...http://www.cqtmjz.cn/news/show-631.html
1.绩效考核管理方案项目实施的考核过程由三个阶段构成完整的考核管理流程,分别是计划沟通阶段、计划实施阶段和考核阶段。 1、考核明细标准 总分数为10分,达到8分+为优秀,6分+为良好,4分+为一般。 2、计划沟通阶段 (1)项目经理(或考核者)与被考核者明确本次考核项目的工作任务、完成目标和计划时间 ...https://www.wenshubang.com/fangan/3668165.html
2.酒店越来越难赚钱,管理团队如何找到新营收增长点?三、增长聚焦三个层面,手把手教会你做增长 1、产品层面的增长地图 2、流量层面的增长地图 3、组织层面的增长地图 四、要么做,要么不做,没有所谓的“试一试” 增长型企业要突破传统,自我雕琢的“情、趣、用、品”必由之路 课题二 疫后酒店收益管理实战 ...https://maimai.cn/article/detail?fid=1668770282&efid=Lsgdr_VKRvJUhjcqxLy6OQ
3.酒店开业前的准备工作方案(通用12篇)酒店开业前的准备工作方案 1 做好酒店开业前的准备工作,对酒店开业及开业后的工作具有非常重要的意义;对从事酒店管理工作的专业人士来说也是一个挑战。我采用倒计时的手法,将酒店开业筹备工作作为一个项目来运作,实践证明可操作性极强。 酒店开业筹备的任务与要求 ...https://m.ruiwen.com/gongwen/fangan/302011.html
4.农民工安徽农民工重点服务事项办理指引不具有我省户籍的随迁子女,在我省具有高中阶段3年完整学籍并有相应学习经历,可在学籍地参加高考。 四、随迁子女就学条件和办理流程是什么? 我省义务教育实施以县为主的管理体制,各县(区)每年都会对本地具体的随迁子女就学政策予以明确,具体的就学条件和办理流程请参见各地招生政策要求。 https://www.ahxx.gov.cn/public/51/159647191.html
5.如何做好人员管控方法了解员工,有一个从初级到高级阶段的程度区别,分为三个阶段: 第一阶段:了解员工的出身、学历、经验、家庭环境以及背景、兴趣、专长等。同时还要了解员工的思想,以及其干劲、热诚、诚意、正义感等。 第二阶段:当手下员工遇到困难,你能实现预料他的反应和行动。并能恰如其分的给员工雪里送炭,这就表明你对员工的认识...https://m.jy135.com/guanli/136365.html
6.工商管理学院2020届就业精准帮扶岗位推荐(六)四、华住集团 华住集团(NASDAQ:HTHT),全球最大的酒店管理公司,创立于2005年,始终以成就美好生活为使命,专注于为消费者提供高品质、丰富多彩的出行体验。华住集团在国内运营着6000多家酒店,遍布中国400多个城市,拥有超过10万名员工,旗下经营多个知名酒店品牌,覆盖从豪华到经济型市场。华住在国内运营的品牌包括禧玥、...https://www.chu.edu.cn/gsgl/2020/0416/c2329a99342/page.htm?ivk_sa=1024320u
7.纪念五四青年节活动方案开展“青春五月”观影活动,通过观影、座谈等方式,让团员青年度过一个有意义的节日,使团员青年们在放松心情的同时,增进交流沟通。 活动时间:5月 (四)青年志愿服务活动 依托青年志愿服务t站等阵地,青年文明号进驻城管青年志愿服务t站,向市民百姓宣传城管法律法规,解答他们对于城市管理工作的`疑问,接受市民的举报和投诉,...https://www.oh100.com/a/202301/5949676.html
8.公司个人实习总结15篇第一个阶段:熟悉公司运作,管理流程和合同条款 天和是于20xx年成立的保险经纪机构,公司董事长和产寿险部总经理都是保险营销精英出身,目前在上海有一家分公司。产险方面以与中石化合作为基础不断拓展新业务,寿险以企业补充医疗保险为主逐步推广企业年金,客户有北京市卷烟厂等一些大型企业。公司规模不大,人事结构简单,内...https://www.unjs.com/fanwenwang/shixizongjie/20220713203400_5292779.html
9.第四章项目管理一般知识(选择4分)(3)依据项目进展的阶段,组织制订详细程度适宜的项目计划,监控计划的执行,并根据实际情况、 客户要求或其他变更要求对计划的变更进行管理。 (4)真正理解把手工程" (5)注重客户和用户参与 4.1.9项目干系人 1、项目干系人是指那些积极参与项目,或是其利益会受到项目执行的影响,或是其利益会受到项目结果影响的个 人...https://blog.csdn.net/znzbs/article/details/134094094
10.设计工作总结(精选18篇)三维动画,从简单的几何体模型如一般产品展示、艺术品展示,到复杂的人物模型;三维动画从静态、单个的模型展示,到动态、复杂的场景如房产酒店三维动画、三维漫游、三维虚拟城市,角色动画。所有这一切,动画都能依靠强大的技术实力为您实现。 一、建筑领域 现在阶段在中国,3d技术在建筑领域得到了最广泛的应用:早期的建筑动...https://www.yuwenmi.com/fanwen/gongzuo/4046359.html
11.教师心理降教育培训实施方案(精选17篇)学校将妥善安排好本学点教师的培训时间,正确处理好三个关系:即教学工作与培训学习的关系,集中学习和自主学习的关系,理论学习和教育实践的关系;做到四个落实:即组织工作落实,培训计划落实,制度措施落实,考核总结落实;做到五个到位:即思想动员到位,教材到位,培训时间到位,督查措施到位,完成任务到位;建立并管理本校教师心...https://www.fwsir.com/jiaoan/html/jiaoan_20200618080048_430994.html
12.2023年成都银杏酒店管理学院统招专升本招生简章2023年成都银杏酒店管理学院统招专升本的招生简章已经公布了,该院校2023年统招专升本的具体招生政策以及报考信息,高顿四川统招专升本小编已经为您收集整理如下,希望对想要报考该院校的同学们有一定的帮助,接下来咱们一起看看吧! 一、工作开展原则 (一)根据上级主管部门相关要求,选拔工作实施“招考”分离。 https://www.gaodun.com/zsb/1514344.html
13.江苏省宿迁经贸高等职业技术学校教育质量年度报告(2017年)—宿迁...已建成以机电一体化为主干专业的机电制造专业群(省现代化专业群)、以会计电算化为主干专业的财经商贸专业群、以计算机为主干专业的信息传媒专业群、以旅游管理为主干专业的社会服务专业群。拥有计算机、广告设计、美术设计、酒店服务与管理、机电一体化、汽车运用与维修6个省级特色、品牌、示范专业和数控、电子、汽车...http://www.sqzjw.cn/html/zygx/10962.html
14.厦门工商旅游学校教育质量年度报告(2018年)7.2抓好三个阶段管理 提升实习工作质量 顶岗实习是中职学校有效推进工学结合人才培养的重要途径,是推进专业理论与实践技能相结合的重要教学模式,是提升学生职业能力的有效手段。为达到实习效果,提高实习质量,我校构建了顶岗实习的过程管理机制。过程管理流程共分三个阶段,即顶岗实习准备阶段、顶岗实习进行阶段和顶岗实习结束...https://www.xmgslx.com/news/detail/35465
15.PMPPMBOK第六版项目管理5大过程组10大知识领域知识点汇总行政收尾:产品核实依据项目管理计划;获客户或发起人验收;财务收尾:支付尾款;移交:下一个阶段或运营部门;收集项目或阶段记录;审核项目成本发布最终报告;经验教训;存档项目信息到PMIS中;庆功大会并启动客户满意度调查;最后释放资源,解散团队 合同收尾:产品核实依据合同;可交付成果验收;财务收尾:支付尾款;退还保证金或者担保...https://blog.51cto.com/u_15459030/5062174