转载自 huxihx,原文链接 Kafka 如何读取offset topic内容 (__consumer_offsets) 众所周知,由于Zookeeper并不适合大批量的频繁写入操作,新版Kafka已推荐将consumer的位移信息保存在Kafka内部的topic中,即__consumer_offsets topic,并且默认提供了kafka_consumer_groups.sh脚本供用户查看consumer信息. 不过依然有很多用户希望了解__consumer_offsets topic内部…
众所周知,由于Zookeeper并不适合大批量的频繁写入操作,新版Kafka已推荐将consumer的位移信息保存在Kafka内部的topic中,即__consumer_offsets topic,并且默认提供了kafka_consumer_groups.sh脚本供用户查看consumer信息. 不过依然有很多用户希望了解__consumer_offsets topic内部到底保存了什么信息,特别是想查询某些consumer group的位移是如何在该topic中保存的.针对这些问题,本文将结合…
原文  https://www.cnblogs.com/huxi2b/p/6061110.html 众所周知,由于Zookeeper并不适合大批量的频繁写入操作,新版Kafka已推荐将consumer的位移信息保存在Kafka内部的topic中,即__consumer_offsets topic,并且默认提供了kafka_consumer_groups.sh脚本供用户查看consumer信息. 不过依然有很多用户希望了解__consumer_offsets topic内部到底保存了什么信息,特别…
转载自 技术世界,原文链接 Kafka设计解析(二)- Kafka High Availability (上) Kafka从0.8版本开始提供High Availability机制,从而提高了系统可用性及数据持久性.本文从Data Replication和Leader Election两方面介绍了Kafka的HA机制. 目录 一.Kafka为何需要High Available 1. 为何需要Replication 2. 为何需要Leader Election 二.Kafka HA设计解析 1.…
转载自 huxihx,原文链接 Apache Flink Kafka consumer Flink提供了Kafka connector用于消费/生产Apache Kafka topic的数据.Flink的Kafka consumer集成了checkpoint机制以提供精确一次的处理语义.在具体的实现过程中,Flink不依赖于Kafka内置的消费组位移管理,而是在内部自行记录和维护consumer的位移. 用户在使用时需要根据Kafka版本来选择相应的connector,如下表所示: Maven依…
本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/04/24/KafkaColumn2 摘要 Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务.若该Broker永远不能再恢复,亦或磁盘故障,则其上数据将丢失.而Kafka的设计目标之一即是提供数据持久化,同时对于分布式系统来说,尤其当集群规模上升到一定程度后,一台或者多台机器宕机的…
Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务.若该Broker永远不能再恢复,亦或磁盘故障,则其上数据将丢失.而Kafka的设计目标之一即是提供数据持久化,同时对于分布式系统来说,尤其当集群规模上升到一定程度后,一台或者多台机器宕机的可能性大大提高,对Failover要求非常高.因此,Kafka从0.8开始提供High Availability机制.本文从Data Replic…
转自:http://www.infoq.com/cn/articles/kafka-analysis-part-2/ Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务.若该Broker永远不能再恢复,亦或磁盘故障,则其上数据将丢失.而Kafka的设计目标之一即是提供数据持久化,同时对于分布式系统来说,尤其当集群规模上升到一定程度后,一台或者多台机器宕机的可能性大大提高,对Failo…
转载自 huxihx,原文链接 [译]Flink + Kafka 0.11端到端精确一次处理语义的实现 本文是翻译作品,作者是Piotr Nowojski和Michael Winters.前者是该方案的实现者. 原文地址是An Overview of End-to-End Exactly-Once Processing in Apache Flink® (with Apache Kafka, too!). 目录 一.Flink应用的EOS二.Flink实现EOS应用三.Flink中实现两阶段提交…
转载自 huxihx,原文链接 Kafka水位(high watermark)与leader epoch的讨论 本文主要讨论0.11版本之前Kafka的副本备份机制的设计问题以及0.11是如何解决的.简单来说,0.11之前副本备份机制主要依赖水位(或水印)的概念,而0.11采用了leader epoch来标识备份进度.后面我们会详细讨论两种机制的差异.不过首先先做一些基本的名词含义解析. 水位或水印(watermark)一词,也可称为高水位(high watermark),通常被用在流式处理领域…
转载自 huxihx,原文链接 关于Kafka幂等producer的讨论 众所周知,Kafka 0.11.0.0版本正式支持精确一次处理语义(exactly once semantics,下称EOS).Kafka的EOS主要体现在3个方面: 幂等producer:保证发送单个分区的消息只会发送一次,不会出现重复消息 事务(transaction):保证原子性地写入到多个分区,即写入到多个分区的消息要么全部成功,要么全部回滚 流处理EOS:流处理本质上可看成是“读取-处理-写入”的管道.此EOS保…
转载自 huxihx,原文链接 关于Kafka监控方案的讨论 目前Kafka监控方案看似很多,然而并没有一个“大而全”的通用解决方案.各家框架也是各有千秋,以下是我了解到的一些内容: 一.Kafka manager Github地址: https://github.com/yahoo/kafka-manager. 这款监控框架的好处在于监控内容相对丰富,既能够实现broker级常见的JMX监控(比如出入站流量监控),也能对consumer消费进度进行监控(比如lag等).另外用户还能在页面上直接…
转载自 huxihx,原文链接 Kafka消费组(consumer group) 一直以来都想写一点关于kafka consumer的东西,特别是关于新版consumer的中文资料很少.最近Kafka社区邮件组已经在讨论是否应该正式使用新版本consumer替换老版本,笔者也觉得时机成熟了,于是写下这篇文章讨论并总结一下新版本consumer的些许设计理念,希望能把consumer这点事说清楚,从而对广大使用者有所帮助. 在开始之前,我想花一点时间先来明确一些概念和术语,这会极大地方便我们下面的…
原创文章,同步首发自作者个人博客.转载请务必在文章开头处以超链接形式注明出处http://www.jasongj.com/kafka/high_throughput/ 摘要 上一篇文章<Kafka设计解析(五)- Kafka性能测试方法及Benchmark报告>从测试角度说明了Kafka的性能.本文从宏观架构层面和具体实现层面分析了Kafka如何实现高性能. 宏观架构层面 利用Partition实现并行处理 Partition提供并行处理的能力 Kafka是一个Pub-Sub的消息系统,无论是…
原创文章,首发自作者个人博客,转载请务必将下面这段话置于文章开头处. 本文转发自技术世界,原文链接 http://www.jasongj.com/kafka/transaction/ 写在前面的话 本文所有Kafka原理性的描述除特殊说明外均基于Kafka 1.0.0版本. 为什么要提供事务机制 Kafka事务机制的实现主要是为了支持 Exactly Once即正好一次语义 操作的原子性 有状态操作的可恢复性 Exactly Once <Kafka背景及架构介绍>一文中有说明Kafka在0.1…
原创文章,转载请务必将下面这段话置于文章开头处. 本文转发自技术世界,原文链接 http://www.jasongj.com/kafka/kafka_stream/ Kafka Stream背景 Kafka Stream是什么 Kafka Stream是Apache Kafka从0.10版本引入的一个新Feature.它是提供了对存储于Kafka内的数据进行流式处理和分析的功能. Kafka Stream的特点如下: Kafka Stream提供了一个非常简单而轻量的Library,它可以非常方…
转载自 huxihx,原文链接 Kafka副本管理—— 为何去掉replica.lag.max.messages参数 在Kafka设计解析(二)Kafka High Availability (上)文中的ACK前需要保证有多少个备份小节说到,如果一个Follower宕机,或者落后太多,Leader将把它从ISR(即in-sync Replica)中移除.这里所描述的“落后太多”指Follower复制的消息落后于Leader后的条数超过预定值(该值可在$KAFKA_HOME/config/serv…
Kafka剖析(一):Kafka背景及架构介绍 Kafka设计解析(二):Kafka High Availability (上) Kafka设计解析(三):Kafka High Availability (下) Kafka设计解析(四):Kafka Consumer解析 Kafka设计解析(五):Kafka Benchmark Kafka设计解析(六)- Kafka高性能关键技术解析 Kafka设计解析(七)- 流式计算的新贵Kafka Stream Kafka设计解析(八)- Kafka事务机…
转载自 技术世界,原文链接 Kafka设计解析(八)- Exactly Once语义与事务机制原理 本文介绍了Kafka实现事务性的几个阶段——正好一次语义与原子操作.之后详细分析了Kafka事务机制的实现原理,并介绍了Kafka如何处理事务相关的异常情况,如Transaction Coordinator宕机.最后介绍了Kafka的事务机制与PostgreSQL的MVCC以及Zookeeper的原子广播实现事务的异同. 写在前面的话 本文所有Kafka原理性的描述除特殊说明外均基于Kafka 1…
转载自 技术世界,原文链接 Kafka设计解析(六)- Kafka高性能架构之道 本文从宏观架构层面和微观实现层面分析了Kafka如何实现高性能.包含Kafka如何利用Partition实现并行处理和提供水平扩展能力,如何通过ISR实现可用性和数据一致性的动态平衡,如何使用NIO和Linux的sendfile实现零拷贝以及如何通过顺序读写和数据压缩实现磁盘的高效利用. 摘要 上一篇文章<Kafka设计解析(五)Kafka性能测试方法及Benchmark报告>从测试角度说明了Kafka的性能.本…
转载自 技术世界,原文链接 Kafka设计解析(一)- Kafka背景及架构介绍 本文介绍了Kafka的创建背景,设计目标,使用消息系统的优势以及目前流行的消息系统对比.并介绍了Kafka的架构,Producer消息路由,Consumer Group以及由其实现的不同消息分发方式,Topic & Partition,最后介绍了Kafka Consumer为何使用pull模式以及Kafka提供的三种delivery guarantee. 目录 一.背景介绍 1. Kafka创建背景 2. Kafk…
本文从宏观架构层面和微观实现层面分析了Kafka如何实现高性能.包含Kafka如何利用Partition实现并行处理和提供水平扩展能力,如何通过ISR实现可用性和数据一致性的动态平衡,如何使用NIO和Linux的sendfile实现零拷贝以及如何通过顺序读写和数据压缩实现磁盘的高效利用. 原创文章,转载请务必将下面这段话置于文章开头处.本文转发自技术世界,原文链接 http://www.jasongj.com/kafka/high_throughput/ 摘要 上一篇文章<Kafka设计解析(五…
转载自 技术世界,原文链接 Kafka设计解析(七)- Kafka Stream 本文介绍了Kafka Stream的背景,如Kafka Stream是什么,什么是流式计算,以及为什么要有Kafka Stream.接着介绍了Kafka Stream的整体架构,并行模型,状态存储,以及主要的两种数据集KStream和KTable.并且分析了Kafka Stream如何解决流式系统中的关键问题,如时间定义,窗口操作,Join操作,聚合操作,以及如何处理乱序和提供容错能力.最后结合示例讲解了如何使用K…
转载自 技术世界,原文链接 Kafka设计解析(四)- Kafka Consumer设计解析 目录 一.High Level Consumer 1. Consumer Group 2. High Level Consumer Rebalance 三.Low Level Consumer 四.Consumer重新设计 1. 设计方向 摘要 本文主要介绍了Kafka High Level Consumer,Consumer Group,Consumer Rebalance,Low Level Con…
转载自 技术世界,原文链接 Kafka设计解析(三)- Kafka High Availability (下) 摘要 本文在上篇文章基础上,更加深入讲解了Kafka的HA机制,主要阐述了HA相关各种场景,如Broker failover,Controller failover,Topic创建/删除,Broker启动,Follower从Leader fetch数据等详细处理过程.同时介绍了Kafka提供的与Replication相关的工具,如重新分配Partition等. 目录 一.Broker…
本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/12/31/KafkaColumn5_kafka_benchmark 摘要 本文主要介绍了如何利用Kafka自带的性能测试脚本及Kafka Manager测试Kafka的性能,以及如何使用Kafka Manager监控Kafka的工作状态,最后给出了Kafka的性能测试报告. 性能测试及集群监控工具 Kafka提供了非常多有用的工具,如Kafka设计解析(三)- Kafka High Avail…
本文介绍了Kafka Stream的背景,如Kafka Stream是什么,什么是流式计算,以及为什么要有Kafka Stream.接着介绍了Kafka Stream的整体架构,并行模型,状态存储,以及主要的两种数据集KStream和KTable.并且分析了Kafka Stream如何解决流式系统中的关键问题,如时间定义,窗口操作,Join操作,聚合操作,以及如何处理乱序和提供容错能力.最后结合示例讲解了如何使用Kafka Stream. 原创文章,转载请务必将下面这段话置于文章开头处.本文转发…
性能测试及集群监控工具 Kafka提供了非常多有用的工具,如Kafka设计解析(三)- Kafka High Availability (下)中提到的运维类工具——Partition Reassign Tool,Preferred Replica Leader Election Tool,Replica Verification Tool,State Change Log Merge Tool.本章将介绍Kafka提供的性能测试工具,Metrics报告工具及Yahoo开源的Kafka Manag…
转载自 技术世界,原文链接 Kafka设计解析(五)- Kafka性能测试方法及Benchmark报告 摘要 本文主要介绍了如何利用Kafka自带的性能测试脚本及Kafka Manager测试Kafka的性能,以及如何使用Kafka Manager监控Kafka的工作状态,最后给出了Kafka的性能测试报告. 目录 一.性能测试及集群监控工具 1. Kafka性能测试脚本 2. Kafka Metrics 2.1 使用JConsole查看单服务器Metrics 2.2 通过Kafka Manag…
转载自 huxihx,原文链接 [原创]Kafka 0.11消息设计 目录 一.Kafka消息层次设计 1. v1格式 2. v2格式 二.v1消息格式 三.v2消息格式 四.测试对比 Kafka 0.11版本增加了很多新功能,包括支持事务.精确一次处理语义和幂等producer等,而实现这些新功能的前提就是要提供支持这些功能的新版本消息格式,同时也要维护与老版本的兼容性.本文将详细探讨Kafka 0.11新版本消息格式的设计,其中会着重比较新旧两版本消息格式在设计上的异同.毕竟只有深入理解了K…