Kafka在微软的使用

Kafka Summit 2016中有一个微软MS/Bing团队的分享。看了数据给大家分析下。微软有一套服务化的数据管道EventHub,作为云产品售卖。但在Bing、Ads、Office等场景上仍在使用Kafka,在整个公司规模上大概是一半 vs 一半。主要使用Kafka考虑是Kafka与开源流处理系统结合得更好(spark、storm等)。

一些数据

先来看一些基础的数据:

  • 一天500TB,如果协议中带了压缩,一天原始数据量为2.5 PB左右(5倍压缩率),并不是非常大
  • 大约1300台机器,每台机器处理384GB 数据。平均每台机器4MB/S写入流量,峰值约为6-7MB/S。说明效率并不是很高。3份拷贝计算,写入流量平均每台机器峰值20MB左右。
  • Incoming vs outcoming大约是1:3左右,说明数据有3-4个消费者
  • 1.3 Million/S 输入,一天500TB,一个包大小为4.4KB

从一年的变化量上来看,增长还是挺快的,说明微软从15年1月份开始投入开源的拥抱。

架构

微软在Kafka上包了Collector收集器,和消费API,类似LogHub Client Lib (Consumer Group)。

在消费端做除了拖以外、还提供了推的模式。类似AWS Kinesis Firehose,LogHub 的Shipper。目标是Kafka 另外Topic,COSMOS(数仓)以及Hadooop。

数据

做了一层Restful API

为了能够使得数据有语义,没有采用Confluent的Schema Center,而是采用了在数据上加了一个Header,通过自描述语义构建了包的类型和版本等。

为了能够支持微软的编程习惯,做了一套Kafka C# SDK,还是蛮拼的

监控

在监控E2E消费时,用了一个挺重的方法来测量延时。既把数据到达时间,消费时间通过Spark Streaming做了Join,显示在ELK上。这个其实大可不必这样,只要能够知道ConsumerGroup 消费的CheckPoint是否是最新的,就能够知道了,何必大费周折。

结尾

微软用Kafka主要目的还是为了更容易使用流计算、ELK等开源软件,从安全性、使用上而言,Kafka在收集端、消费端、监控等仍有非常多的点需要提高。

很多用法、思路微软和我们其实挺像的,有兴趣可以了解下日志服务(LogHub)与Kafka对比,链接。

时间: 2024-08-03 07:58:06

Kafka在微软的使用的相关文章

kafka数据可靠性深度解读

1 概述 Kakfa起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cloudera.Apache Storm.Spark等都支持与Kafka集成. Kafka凭借着自身的优势,越来越受到互联网企业的青睐,唯品会也采用Kafka作为其内部核心消息引擎之一.Kafka作为一个商业级消息中间件,消息可靠性的重要性可想而知.如何确保消息的精确传输?如何确保消息的准确存储?如何

Kafka深度解析

[本文转自于Kafka深度解析] 背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统.主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能 高吞吐率.即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输 同时支持离线数据处理和实时数据处理 为什么要用消息系统 解耦 在项目启动之初来预测将来项目

LinkedIn详细介绍了由他们开源的Kafka Monitor

Kafka Monitor项目的动机有三个: 需要监控和测试Kafka部署并跟踪主干稳定性,以便他们能够尽早捕获正在开发的变更集中的问题: 需要不间断地在生产集群上监控SLA,并不断地在测试集群上运行回归测试: 现有的监控框架无法满足其用例的扩展性.模块化需求,他们需要一个自定义的客户端库. 网站可靠性工程部门过去已经监控了输入速率.离线分区数和正在复制的分区数等指标,以确定Kafka集群的可用性和系统整体的健康状况.然而,问题在于,这类原始的值本身无法表明集群在终端用户体验方面是否真的可用.

Apache Kafka:大数据的实时处理时代

在过去几年,对于 Apache Kafka 的使用范畴已经远不仅是分布式的消息系统:我们可以将每一次用户点击,每一个数据库更改,每一条日志的生成,都转化成实时的结构化数据流,更早的存储和分析它们,并从中获得价值.同时,越来越多的企业应用也开始从批处理数据平台向实时的流数据数据平台转移.本演讲将介绍最近 Apache Kafka 添加的一些系统架构,包括 Kafka Connect 和 Kafka Streams,并且描述一些如何使用它们的实际应用体验. 注:本文由王国璋在 QCon 北京 201

《Kafka官方文档》设计(二)

6. Message Delivery Semantics 现在我们对Producer和Consumer已经有了一定的了解,接着我们来讨论Kafka在Producer和Consumer上提供的语义.显然的,在分发消息时是可以有多种语义的: At most once:消息可能丢失,但不会重复投递 At least once:消息不会丢失,但可能会重复投递 Exactly once:消息不丢失.不重复,会且只会被分发一次(真正想要的) 值得注意的是这分为两个问题:发布消息的可用性和消费消息的可用性.

微软启用第三个物联网与人工智能内部实验室

微软昨天宣布将开放第三个物联网与人工智能内部实验室(IoT & AI Insider Labs).新的实验室坐落于德国慕尼黑,从4月开始启用,将在现有位于美洲(华盛顿雷蒙德)和亚洲(中国深圳)基础上进一步覆盖EMEA地区. 使命 这个实验室的使命是为物联网和人工智能领域的初创公司提供设施和专业知识,提供的设施包括激光切割机.回流炉和3D打印机,此外还有拥有物联网硬件.嵌入式系统软件.云工程设计.物联网.机器学习和人工智能方面专业技能的人员.初创公司可以申请使用该实验室,如果申请被接受,他们计划参

微软政务云支持HDInsight和PowerBI Pro

微软宣布在微软政务云中支持HDInsight和Power BI Pro.这些新服务将帮助政府管理,分析和可视化大量数据.除了这些服务,微软还宣布了Azure政府认知服务的预览,可用于音频和文本翻译成其他语言,以及面部(性别和年龄)和情绪识别,与计算机视觉和情感. 微软政务云支持HDInsight和PowerBI Pro HDInsight拓宽了政府部门构建数据分析解决方案的格局: 在几分钟内部署大数据分析集群.无需前期成本投入. 使用Kafka,Storm和Spark为HDInsight实时启用

LinkedIn 详细介绍了他们开源的 Kafka Monitor

在2016年4月份举行的Kafka峰会上,LinkedIn在Apache 2.0许可协议下开源了Kafka Monitor,并于近日详细介绍了该监控工具的架构以及他们最初的构建动机.在年初的时候,LinkedIn曾在一篇有关Kafka整体应用的文章中简单地提及过Kafka Monitor,但并没有详细介绍该项目的语义组成或者背后的动机. Kafka Monitor项目的动机有三个: 需要监控和测试Kafka部署并跟踪主干稳定性,以便他们能够尽早捕获正在开发的变更集中的问题: 需要不间断地在生产集

Kafka原理

Kafka 这段时间研究RabbitMQ.Kafka.RocketMQ消息队列,发现对她们原理的介绍都过于简单,所以整理了众多资料,写成下面这边Kafka的原理.主要内容包括: 功能与使用场景:特性.适用场景. 基本概念:Broker.Topic.Partition.Partition.Producer.Consumer.Consumer Group kafka模型:producer-broker-consumer模型,集群部署模型 Topic . Partition . 消息文件 Produc