【译】Kafka学习之路】的更多相关文章

一直在思考写一些什么东西作为2017年开篇博客.突然看到一篇<Kafka学习之路>的博文,觉得十分应景,于是决定搬来这“他山之石”.虽然对于Kafka博客我一向坚持原创,不过这篇来自Confluent团队Gwen Shapira女士的博文实在精彩,所以还是翻译给大家,原文参见这里. ~~~~~~~~~~~~ Kafka学习之路 看上去很多工程师都已经把“学习Kafka”加到了2017年的to-do列表中.这没什么惊讶的,毕竟Apache Kafka已经是一个很火的框架了.只需了解一些基本的Ka…
一直在思考写一些什么东西作为2017年开篇博客.突然看到一篇<Kafka学习之路>的博文,觉得十分应景,于是决定搬来这“他山之石”.虽然对于Kafka博客我一向坚持原创,不过这篇来自Confluent团队Gwen Shapira女士的博文实在精彩,所以还是翻译给大家,原文参见这里. ~~~~~~~~~~~~ Kafka学习之路 看上去很多工程师都已经把“学习Kafka”加到了2017年的to-do列表中.这没什么惊讶的,毕竟Apache Kafka已经是一个很火的框架了.只需了解一些基本的Ka…
一.Kafka集群 Kafka使用Zookeeper来维护集群成员(brokers)的信息.每个broker都有一个唯一标识broker.id,用于标识自己在集群中的身份,可以在配置文件server.properties中进行配置,或者由程序自动生成.下面是Kafka brokers集群自动创建的过程: 每一个broker启动的时候,它会在Zookeeper的/brokers/ids路径下创建一个临时节点,并将自己的broker.id写入,从而将自身注册到集群: 当有多个broker时,所有br…
一.消费者和消费者群组 在Kafka中,消费者通常是消费者群组的一部分,多个消费者群组共同读取同一个主题时,彼此之间互不影响.Kafka之所以要引入消费者群组这个概念是因为Kafka消费者经常会做一些高延迟的操作,比如把数据写到数据库或HDFS ,或者进行耗时的计算,在这些情况下,单个消费者无法跟上数据生成的速度.此时可以增加更多的消费者,让它们分担负载,分别处理部分分区的消息,这就是Kafka实现横向伸缩的主要手段. 需要注意的是:同一个分区只能被同一个消费者群组里面的一个消费者读取,不可能存…
一.生产者发送消息的过程 首先介绍一下Kafka生产者发送消息的过程: Kafka会将发送消息包装为ProducerRecord对象, ProducerRecord对象包含了目标主题和要发送的内容,同时还可以指定键和分区.在发送ProducerRecord对象前,生产者会先把键和值对象序列化成字节数组,这样它们才能够在网络上传输. 接下来,数据被传给分区器.如果之前已经在ProducerRecord对象里指定了分区,那么分区器就不会再做任何事情.如果没有指定分区 ,那么分区器会根据Produce…
一.简介 Apache Kafka是一个分布式的流处理平台.它具有以下特点: 支持消息的发布和订阅,类似于RabbtMQ.ActiveMQ等消息队列: 支持数据实时处理: 能保证消息的可靠性投递: 支持消息的持久化存储,并通过多副本分布式的存储方案来保证消息的容错: 高吞吐率,单Broker可以轻松处理数千个分区以及每秒百万级的消息量. 二.基本概念 2.1 Messages And Batches Kafka的基本数据单元被称为message(消息),为减少网络开销,提高效率,多个消息会被放入…
一.Kafka在zookeeper中存储结构图 二.分析 2.1 topic注册信息 /brokers/topics/[topic] : 存储某个topic的partitions所有分配信息 [zk: localhost:(CONNECTED) ] get /brokers/topics/topic2 Schema: { "version": "版本编号目前固定为数字1", "partitions": { "partitionId编号&…
一.下载 下载地址: http://kafka.apache.org/downloads.html http://mirrors.hust.edu.cn/apache/ 二.安装前提(zookeeper安装) 参考http://www.cnblogs.com/qingyunzong/p/8634335.html#_label4_0 三.安装 此处使用版本为kafka_2.11-0.8.2.0.tgz 2.1 上传解压缩 [hadoop@hadoop1 ~]$ tar -zxvf kafka_2.…
一.高可用的由来 1.1 为何需要Replication 在Kafka在0.8以前的版本中,是没有Replication的,一旦某一个Broker宕机,则其上所有的Partition数据都不可被消费,这与Kafka数据持久性及Delivery Guarantee的设计目标相悖.同时Producer都不能再将数据存于这些Partition中. 如果Producer使用同步模式则Producer会在尝试重新发送message.send.max.retries(默认值为3)次后抛出Exception,…
一.Kafka的架构 如上图所示,一个典型的Kafka集群中包含若干Producer(可以是web前端产生的Page View,或者是服务器日志,系统CPU.Memory等),若干broker(Kafka支持水平扩展,一般broker数量越多,集群吞吐率越高),若干Consumer Group,以及一个Zookeeper集群.Kafka通过Zookeeper管理集群配置,选举leader,以及在Consumer Group发生变化时进行rebalance.Producer使用push模式将消息发…