导读
从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是2021年团队开源幻想的一小步,是滴滴Logi日志服务套件整体开源打算的重要组成部分,欢送关注Obsuite公众号或者退出Logi滴滴用户钉钉群,给咱们的产品提出宝贵意见,也欢送小桔子们举荐给有须要的技术童鞋!