导读

从2019年4月份计划开源到2021月1月14号完成开源,历时22个月终于修成正果,一路走来实属不易,没有前端、设计、产品,我们找实习生、合作方、外部资源支持,滴滴Kafka服务团队人员也几经调整,内部迭代了3个大版本,我们最终还是克服重重困难做到了!一经开源获得了社区用户广泛的认可,截止当前Star达到1150,钉钉用户突破540人,滴滴开源Logi-KafkaManager一站式Kafka监控与管控平台阅读1W+UV。

01 滴滴Logi-KafkaManager简介

Kafka作为滴滴大数据消息队列,每天承载万亿级消息的生产与消费,面对100GB/S+峰值采集流量,服务了公司内近千Kafka用户,托管了数十Kafka集群,数万Kafka Topic,单集群>300+Broker。历经四年打磨沉淀,围绕滴滴Logi-KafkaManager打造了滴滴Kafka平台服务体系,内部满意度达到90分。

滴滴LogI-KafkaManager是面向Kafka用户、Kafka运维人员打造的共享多租户Kafka云平台,专注于Kafka资源申请、运维管控、监控告警、资源治理等核心场景。一经开源广受社区用户喜爱,免费体验地址:http://117.51.150.133:8080/kafka,账户admin/admin,欢迎Star。

02 为什么要开发滴滴Logi-KafkaManager

滴滴内部有几十个kafka集群,450+的节点,每周500+UV用户,需要完成topic创建、申请、指标查看等操作;每天运维人员还有大量topic管控、治理、集群运维操作。因此我们需要构建一个Kafka的管控平台来承载这些需求。我们调研了社区同类产品,在监控指标的完善程度、运维管控的能力、服务运营的理念都无法很好的满足我们的需求。

03 滴滴Logi-KafkaManager功能亮点

>产品化设计之关注点分离

业界开源的KafkaManager定位是一个面向运维人员的监控工具,在滴滴我们定位是全托管Kafka服务工具型平台产品,针对的人群区分为Kafka用户、Kafka运维。

  • Kafka用户:关注的是Topic相关的操作,Topic资源申请与扩容、Topic指标监控、Topic消费告警、Topic消息采样、Topic消费重置等。

  • Kafka运维:关注的是Kafka集群相关的操作,集群监控、集群安装、集群升级、集群Topic迁移、集群容量规划等。

>Kafka业务运行过程数据化

作为消息中间件,Kafka最核心的能力就是消息的生产、消费,用户高频的问题都与此相关,作为服务提供方,我们需要详细的感知Topic的生产消费在服务端各个环节耗时,快速界定到底是服务端还是客户端问题,如果是服务端问题,出在哪个环节,如下图所示:

  • 请求队列排队时间(RequestQueueTimeMs)

  • Broker本地处理时间(LocalTime)

  • 请求等待远程完成时间(RemoteTimeMs)

  • 请求限流时间(ThrottleTimeMs)

  • 响应队列排队时间(ResponseQueueTimeMs)

  • 响应返回客户端时间(ResponseSendTimeMs)

  • 接收到请求到完成总时间(TotalTimeMs)

通过将这些服务端运行指标,以Topic粒度呈现,显著的提升了服务用户的效率,如下图所示:

>Kafka服务保障强管控

Kafka各语言客户端版本众多,官方也只有精力维护Java版的SDK,滴滴受限于服务人力,没有进行客户端版语言与版本管控,服务端拓展实现强管控客户端元信息的能力。

  • 拓展服务端能力,强感知客户端的链接地址,协议类型,方便后续引擎对用户行为的感知与强管控。

  • 拓展实现Kafka服务端的安全认证能力,通过账号机制记录应用元信息,包括人员信息、业务信息、权限信息;通过Topic创建管控,记录压缩类型、Partiton、Quota等元信息,在服务端实现了对客户生产、消费能的强管控。

>最佳实践之专家服务沉淀

多年Kafka服务运营经验,我们沉淀了大量的服务保障最佳实践,结合应用场景,截止目前构建了以下几项专家服务,后续我们会持续打磨与完善。

  • Topic集群分布不均迁移:不同broker上leader数目不均;同一个broker上不同磁盘leader分布不均;同一个topic在broker上不同磁盘分布不均。我们需要发现热点,给用户推荐迁移计划。

  • Partitont不足扩容提示:根据单Partition承载流量,按照业务场景与底层硬件资源进行主动扩容提示,扩容标准:滴滴的实践是TPS场景:单Partition 3MB/S;IOPS场景:单Partition 10条/S。

  • Topic无效资源下线:针对线上持续一个月Topic无流量,无生产消费链接的资源,通知用户进行主动资源释放。

04 滴滴Logi-KafkaManager架构

平台设计之初,我们就基于开源的理念进行平台建设,遵循了依赖精简、分层架构、能力API化、100%兼容历史开源版本的原则,整体架构如下:

  • 资源层:滴滴Kafka引擎和KafkaManager除了 zookpeer之外只依赖msyql,依赖精简,部署方便;

  • 引擎层:当前滴滴kafka引擎版本是2.5,我们在此基础上开发了一些自己的特性,如磁盘过载保护、IO线程池分离、Topic创建资源分配优化等功能,并且完全兼容开源社区的 0.10.X kafka版本;

  • 网关层:引擎层之上滴滴设计了网关层,提供了安全管控、topic 限流、服务发现、降级能力;

  • 服务层:基于kafkaGateway我们在滴滴Logi-KafkaManager上提供了丰富的功能,主要有:topic管理、集群监控、集群管控能力;

  • 平台层:分别针对普通用户和运维用户,提供不同的功能集合,尽可能的将一些日常使用中的高频操作在平台上进行承接,降低用户的使用成本,同时核心能力API化,方便用户生态对接。

写在最后

项目开源只是万里长征的第一步,产品还需要持续的打磨与建设,但行好事莫问前程,感谢那些曾经为这个项目付出努力的童鞋们,特别是当前团队的兄弟们,过去一年非常不容易,开源的技术梦想让我们紧密的团结在一起,以此文向开源的领路人章文嵩致敬!

滴滴Logi-KafkaManager开源之路:一站式Kafka集群指标监控与运维管控平台相关推荐

  1. Kafka的灵魂伴侣Logi-KafkaManger(5)之运维管控–平台管理(用户管理和平台配置)

    推荐一款非常好用的kafka管理平台,kafka的灵魂伴侣 滴滴开源Logi-KafkaManager 一站式Kafka监控与管控平台 技术交流 有想进滴滴LogI开源用户群的加我个人微信: jjdl ...

  2. 备份k8s_树莓派k8s集群安装kafka集群及监控

    安装准备 树莓派k8s集群 root@pi4-master01:~# kubectl get nodes -o wideNAME STATUS ROLES AGE VERSION INTERNAL-I ...

  3. Zookeeper集群 + Kafka集群 + KafkaOffsetMonitor 监控

    一.Zookeeper ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一 ...

  4. Kafka的灵魂伴侣Logi-KafkaManger(3)之运维管控--集群列表

    推荐一款非常好用的kafka管理平台,kafka的灵魂伴侣 滴滴开源Logi-KafkaManager 一站式Kafka监控与管控平台 技术交流 有想进滴滴LogI开源用户群的加我个人微信: jjdl ...

  5. Kafka的灵魂伴侣Logi-KafkaManger(4)之运维管控–集群运维(数据迁移和集群在线升级)

    推荐一款非常好用的kafka管理平台,kafka的灵魂伴侣 滴滴开源Logi-KafkaManager 一站式Kafka监控与管控平台 技术交流 有想进滴滴LogI开源用户群的加我个人微信: jjdl ...

  6. kafka的简单介绍以及docker-compose部署单主机Kafka集群

    Kafka简单介绍 Kafka是由Apache软件基金会开发的一个分布式.分区的.多副本的.多订阅者的开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可 ...

  7. kafka集群管理工具kafka-manager

    一.kafka-manager简介 kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作.具体支持以下内容: 管理多个集群 ...

  8. Mac 使用 docker 搭建 kafka 集群 + Zookeeper + kafka-manager

    Kafka 搭建: 建立Zookeeper容器: 这里我们用最简单的方式创建一个独立的Zookeeper节点,如果要考虑zookeeper的高可用,可以将其做成一个集群,最好是能有多台机器. $ do ...

  9. kafka-manager监控kafka集群启动失败

    使用kafka-manager监控kafka出错: 启动hadoop集群,启动zookeeper集群,启动kafka集群后,在启动kafka-manager监控kafka集群时,发现kafka-man ...

最新文章

  1. 拾谈“用最有效率的方法算出2乘以8等於几?”
  2. 四步法分析定位生产环境下MySQL上千条SQL中的问题所在
  3. C++ STL学习笔记
  4. matlab uigetfile的用法,matlab中uigetfile的用法
  5. SQL一些时间格式的转换
  6. 为制造业构建Teams Power App 2:创建客户UI
  7. Maven学习总结(22)——Maven常用插件介绍
  8. Unity学习笔记-uniwebview4-网页与unity通信
  9. 算法图解--python
  10. html斜杠单元格,用斜杠拆分左侧单元格的html表
  11. Unity Webgl 问题总结
  12. 正则表达式——常用量词
  13. pandas报错:columns overlap but no suffix specified
  14. 【航线运输驾驶员理论考试】飞行原理
  15. MIUI9开发版提前完成全系机型适配,近50款小米手机可升级
  16. 什么时候能被好运眷顾一次:快手前端三面,败在智力题称砝码重量...
  17. Python——计算器
  18. 漫游容器世界 - k8s安装篇
  19. 手写webpack得打包流程
  20. 基于echarts 24种数据可视化展示,填充数据就可用,动手能力强的还可以DIY(演示地址+下载地址)

热门文章

  1. asp.net中使用JMail发邮件
  2. 微信小程序识别二维码参数
  3. 终于有一篇文章把饭金展开说明白了。
  4. 视频去水印工具推荐-视频去水印步骤
  5. matlab 二阶系统 伯德图 阶跃响应
  6. Android跟我一起来开发--微影之架构补充篇
  7. 如何培养一个搞垮公司的全栈工程师?
  8. FP7195转模拟恒流调光芯片在机器视觉光源的应用优势
  9. Jupyter 是什么
  10. 【论文阅读】Underwater Image Enhancement: Using Wavelength Compensation and Image Dehazing(WCID)