前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据开发最火的核心技术-Kafka

大数据开发最火的核心技术-Kafka

作者头像
加米谷大数据
发布2018-07-25 17:46:04
1.1K0
发布2018-07-25 17:46:04
举报
文章被收录于专栏:加米谷大数据

大数据时代来临,如果你还不知道Kafka那你就真的out了!据统计,有三分之一的世界财富500强企业正在使用Kafka,包括所有TOP10旅游公司,7家TOP10银行,8家TOP10保险公司,9家TOP10电信公司等等。

LinkedIn,Microsoft和Netflix每天都用Kafka处理万亿级的信息。Kafka主要应用于实时信息流的大数据收集或者实时分析(或者两者兼有)。Kafka既可以为内存微服务提供持久性服务,也可以用于向复杂事件流系统和IoT/IFTTT式自动化系统反馈事件。

为什么是Kafka

Kafka常用于实时流数据结构的实时分析。由于Kafka是一种快速、可扩展、可持久和高容错的发布-订阅消息系统(publish-subscribe messaging system),所以Kafka对于一些Use Case(有大数据量和高响应需求)的支持远好于JMS、RabbitMQ和AMQP。相比于那些工具,Kafka支持更高的吞吐量,更高的稳定性和副本(replication)特性。这使得它比传统的MOM更加适合跟踪服务调用(可以跟踪每次调用)或跟踪IoT传感器数据。

Kafka可以与Flume/Flafka、Spark Streaming、Storm、HBase、Flink以及Spark配合使用,用于实时获取、分析和处理流数据。Kafka可以为Hadoop大数据湖(Hadoop BigData lake)提供数据流。Kafka Broker支持在Hadoop或Spark中低延时地处理和分析海量信息流。此外,Kafka子项目KafkaStreaming可用于实时分析。

什么是Kafka Use Case

简而言之,Kafka用于流处理、网站活动跟踪、度量收集和监视、日志聚合、实时分析、CEP、将数据注入Spark和Hadoop、CQRS、重放消息、错误恢复以及分布式提交内存计算(微服务)的日志。

谁在使用Kafka

许多需要快速处理大量数据的大公司都在使用Kafka。Kafka最初是由LinkedIn开发,用它来跟踪活动数据和运营指标。Twitter把它作为Storm的一部分来作为流处理的基础。Square把Kafka当作总线,将所有系统事件(日志,自定义事件,指标等)传输到各个Square数据中心,或者输出到Splunk,或者应用于Graphite(仪表板),或者实现Esper-like/ CEP警报系统。Spotify,Uber,Tumbler,Goldman Sachs,PayPal,Box,Cisco,CloudFlare和Netflix等公司也都在使用它。

为什么Kafka这么流行

首先最主要的原因是Kafka具有极佳的性能表现。它非常稳定,能提供稳定的持久化,具有灵活的订阅-发布消息队列,可与N个消费者群组进行良好扩展,具有强大的复制功能,为生产者提供可调整的一致性保证,并在碎片级别提供保留排序(即Kafka主题分区)。其次,Kafka可以很好地兼容需要数据流处理的系统,并将这些系统融合、转换并加载到其他存储。另外,Kafka操作(配置和使用)都非常简单,而且Kafka的工作原理也很好理解。当然了,如果Kafka处理数据很慢,有再多其他优点都是没有意义的,所以,“多快好省”就是Kafka的最大优势。

为什么Kafka这么快

Kafka基于zero copy原则,深度依靠操作系统内核实现快速移动数据。Kafka能将数据记录分批处理。这些批次数据可以通过端到端的方式从生产者到文件系统(Kafka主题日志)再到消费者。批处理能实现更高效的数据压缩并减少I / O延迟。Kafka将不可变的提交日志写入连续磁盘,从而避免了随机磁盘访问和磁盘寻道速度慢的问题。Kafka支持增加分区进行横向扩展。它将主题日志分成几百个(可能有数千个)分区分布到数千个服务器。这种方式可以让Kafka承载海量负载。

Kafka Streaming

Kafka最常用于将数据实时传输到其他系统。Kafka作为一个中间层来解耦不同的实时数据管道。Kafka核心并不适合入数据聚合(data aggregation)或CEP等的直接计算。Kafka Streaming作为Kafka生态系统的一部分,提供了进行实时分析的能力。Kafka可以为Storm,Flink,Spark Streaming以及你的服务和CEP系统提供快速通道系统(实时操作数据系统)。Kafka也用于流数据批量数据分析。它将数据传输到大数据平台或RDBMS,Cassandra,Spark甚至S3中用于未来的数据分析。这些数据存储通常支持数据分析,报告,数据科学分析,合规性审计和备份。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加米谷大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Kafka最常用于将数据实时传输到其他系统。Kafka作为一个中间层来解耦不同的实时数据管道。Kafka核心并不适合入数据聚合(data aggregation)或CEP等的直接计算。Kafka Streaming作为Kafka生态系统的一部分,提供了进行实时分析的能力。Kafka可以为Storm,Flink,Spark Streaming以及你的服务和CEP系统提供快速通道系统(实时操作数据系统)。Kafka也用于流数据批量数据分析。它将数据传输到大数据平台或RDBMS,Cassandra,Spark甚至S3中用于未来的数据分析。这些数据存储通常支持数据分析,报告,数据科学分析,合规性审计和备份。
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档