`

Apache顶级项目介绍2-Kafka

阅读更多



 

 

 

Apache顶级项目介绍系列-1,我们从Kafka说起。why?流行 + 名字cool。

Kafka官网是见过比较简单,直叙的网站,“kafka是一个高吞吐的分布式的消息系统”。 Kafka最初起家于LinkedIn,当时原本作为linkedin用来管理活动流(PV,用户行为分析,搜索情况)和运营数据处理的pipline的基础。

因为其分布式以及高吞吐被广泛使用,如与Cloudera, Hadoop, Storm, Spark etc.

kafka首先作为一个消息系统,提供了基本功能,如解耦,顺序性,异步性等。同时优质的设计理念支撑高吞吐,提供O(1)时间负责度持久化能力,数据级别达到TB/PB以上,支持离线与实时处理,即与hadoop,storm对接,支持水平scale out。

架构图:



 可以看到,kafka是一个分布式架构设计(当然DT时代,不支持水平scale out无法生存), 前段producer并发(支持批量)push消息到kafka特定topic集群服务器broker,每个topic又包含多个partition便于水平扩展,消费者consumer通过consumer group向broker服务器pull获取消息。kafka通过zk管理集群配置,选举leader,以及rebalance。消息模式为push/pull。

我们来建一个kafka集群服务:



通过zk发送,消费消息:


用java来生产/消费消息:

比较直白,这里注意可以批量发送消息,不是所有消息中间件可以批量发送的,批量发送是高吞吐原因之一。

这里使用stream流来消费payload,消息流迭代器用不停止,类似监听消息一样。

kafka之所以高效或者其创新点:

  1. 消息删除管理 通常消息中间件会消费一个消息,删除一个消息,这使得消息的使用代价非常高额。而kafka使用无状态管理,引入消息偏移量,消息基于时间的SLA应用保留策略,当消息超过一定时间后才被删除,这样按照官网的说法,消费Kafka消息就是非常轻量级:come and go. 听起来像外卖一样,take and go. 甚至,由于引入偏移量,消费者可以随意获取任意位置消息,包括重新获取已经消费过的消息。

  

2. Kafka利用linux sendfile从linux kernel复制文件


3.kafka引入zk,管理分布式协调,HA,容错。zk用来管理kafaka代理broker,当kafka新增或者某代理失效,zk服务将通知生产者与消费者。
 

4. 生产者性能,消息结构优化大小以及批量发送

 



 5. 消费这性能:消息结构优化以及无状态引入便宜量,无需为何b+树索引。

总体来说kafka表现异常突出,不失为通常消息中间件的代替品,如果管理hadoop,stream更是首推。另外如果处理网站日志,用户使用行为分析,或者离线处理log等都是不二之选。

 

好了,先到这里了,起个大早来写东西,果然不靠谱,时间紧任务重啊。望大家包涵,有些图借用自网络。

 

公众号:技术极客TechBooster

 

 

 

 

  • 大小: 74.5 KB
  • 大小: 184.7 KB
  • 大小: 234.5 KB
  • 大小: 169.2 KB
  • 大小: 56.7 KB
  • 大小: 59.4 KB
  • 大小: 19.1 KB
  • 大小: 105.2 KB
  • 大小: 28.8 KB
  • 大小: 25.6 KB
  • 大小: 22.7 KB
分享到:
评论

相关推荐

    开源项目-confluentinc-confluent-kafka-go.zip

    总的来说,开源项目-confluentinc-confluent-kafka-go.zip为Go开发者提供了一个强大、稳定的工具,以利用Apache Kafka进行实时数据处理和流应用的开发。通过这个库,开发者可以专注于业务逻辑,而无需过于关心底层...

    confluent-kafka-donet

    【压缩包子文件的文件名称列表】"confluent-kafka-dotnet-master":这个文件名表明了这是Confluent.Kafka.DotNet项目的源码仓库的主分支,通常包含项目的源代码、编译脚本、测试用例、文档和其他相关资源。...

    PyPI 官网下载 | mypy-boto3-kafka-1.11.7.1.tar.gz

    它最初由LinkedIn设计,后来成为Apache顶级项目。Kafka作为一个分布式消息系统,其主要功能是处理实时数据流,它具有高吞吐量、持久化、分区和复制等特点,广泛应用于大数据处理、日志收集、实时分析等领域。 "Mypy...

    flume-kafka-storm源程序

    **Kafka**: Kafka是LinkedIn开源的一款高吞吐量、分布式的发布/订阅消息系统,现在也是Apache软件基金会的顶级项目。Kafka能够处理大量的实时数据,作为消息中间件,它提供了消息持久化、分区和复制功能,使得数据...

    springboot-kafka

    接下来是Apache Kafka,这是一个分布式流处理平台,最初由LinkedIn开发,现在是Apache软件基金会的顶级项目。Kafka是一个高吞吐量的实时发布订阅消息系统,设计目标是处理海量数据,同时提供低延迟和高可靠性。Kafka...

    camel-kafka:scala 2.11 为camel-kafka 构建

    2. **Kafka**:Kafka是一个高吞吐量、分布式的消息系统,最初由LinkedIn开发,现在是Apache软件基金会的顶级项目。它被设计为一个实时的数据管道,可以处理大量的实时数据流。 3. **Scala 2.11**:Scala是一种多...

    linux-kafka-2.8.0.zip

    Kafka最初由LinkedIn开发,后来成为Apache软件基金会的顶级项目,现在被广泛应用于大数据领域。这个压缩包包含了运行和管理Kafka 2.8.0版本所需的所有组件和配置文件。 1. **Kafka架构**: Kafka的核心概念包括...

    千锋-kafka21

    Apache Kafka是一款高吞吐量的分布式消息中间件,最初由LinkedIn开发,后成为Apache软件基金会的顶级项目。Kafka主要用于构建实时数据管道和流处理应用,它在大数据领域扮演着重要的角色。 1. **Kafka组件与架构** ...

    kafka-manager 最新版本 已经编译好,可直接使用

    Kafka-Manager是一款开源的Apache Kafka管理工具,由Xiaomi公司开发并维护。它提供了一个用户友好的界面,使得Kafka集群的管理和监控变得更加直观和便捷。在本压缩包中,你获得的是kafka-manager的最新版本——1.3....

    kafka资源下载kafka_2.11-2.0.0.tgz

    Apache Kafka是一种开源的消息队列服务,它最初由LinkedIn开发,并于2011年成为Apache软件基金会的一个顶级项目。Kafka因其高性能、可扩展性和可靠性而受到广泛欢迎,被许多大型组织用于构建实时数据管道和流处理...

    Apache-Kafka-Documentation:Apache Kafka中文文档

    Apache Kafka 是一个开源的分布式流处理平台,由LinkedIn开发并在2011年开源,随后被Apache软件基金会接纳为顶级项目。Kafka设计目标是成为一个高吞吐量、低延迟的消息发布与订阅系统,同时支持实时数据流处理。它在...

    apache-zookeeper-3.5.9、cmak-3.0.0.5、kafka-2.12-2.8.2

    - **简介**: Kafka是由LinkedIn开发,现在是Apache软件基金会的顶级项目,是一个高吞吐量的分布式发布订阅消息系统。它可以处理大量的实时数据。 - **版本 2.12-2.8.2**: 这表明Kafka的Java库是针对Scala 2.12构建...

    Kafka全套学习视频

    - Apache Kafka是一种分布式流处理平台,它最初由LinkedIn开发,后来成为Apache软件基金会的一个顶级项目。 - Kafka被设计为一个高吞吐量、低延迟的消息系统,适用于实时数据流处理场景。 2. **特点**: - **...

    Apache Kafka × Apache Flink Meetup-北京站20190512.zip

    Apache Flink,则是一个用于处理无界和有界数据流的开源流处理框架,也是Apache顶级项目之一。Flink以其强大的流处理能力,支持事件时间处理和状态管理,使得它在实时分析和复杂事件处理上独具优势。Flink与Kafka的...

    大数据采集技术-Kafka简介.pptx

    它最初由LinkedIn开发,后来成为Apache基金会的顶级项目,被全球众多企业广泛采用,以处理大规模的数据流和进行实时分析。 **Kafka的核心概念** 1. **生产者(Producer)**: 生产者是向Kafka集群发布消息的客户端。...

    kafka_2.11-0.11.0.0 kafka_2.12-2.8.1 kafka_2.12-3.0.0

    Kafka最初由LinkedIn开发,后来成为了Apache软件基金会的顶级项目。它主要用于实时数据流处理和大数据的存储,被广泛应用于日志收集、网站活动跟踪、流式数据处理、消息系统等多个场景。 Kafka的核心特性包括高吞吐...

    Introduction to Apache Kafka.pdf

    - 2013年从Apache孵化器毕业,成为顶级项目。 - 2014年被Cloudera实验室采纳。 - 2015年开始支持CDH中的生产使用。 - **核心特点**: - **可扩展性**:Kafka是一个分布式系统,支持多个节点。 - **容错性**:...

    Apache Kafka实战epu.rar

    Kafka是一个高吞吐量、低延迟的消息发布订阅系统,最初由LinkedIn开发,后来成为Apache软件基金会的顶级项目。 首先,Kafka的核心概念包括生产者、消费者和主题(Topic)。生产者是数据的源头,负责发布消息到Kafka...

    kafka_2.11-2.0.0.tgz

    Apache Kafka是一款分布式流处理平台,由LinkedIn开发并开源,后来成为了Apache软件基金会的顶级项目。它被广泛用于构建实时数据管道和流应用,能够高效地处理大量实时数据。在本文中,我们将深入探讨Kafka的核心...

    kafka-2.12-0.10.2.0文件安装包

    Kafka是Apache软件基金会开发的一个开源流处理平台,它最初由LinkedIn设计并开源,后来成为Apache顶级项目。Kafka主要用于构建实时数据管道和流应用,它具有高吞吐量、可扩展性和容错性,使其在大数据领域备受青睐。...

Global site tag (gtag.js) - Google Analytics