转载自 huxihx,原文链接 Kafka水位(high watermark)与leader epoch的讨论 本文主要讨论0.11版本之前Kafka的副本备份机制的设计问题以及0.11是如何解决的.简单来说,0.11之前副本备份机制主要依赖水位(或水印)的概念,而0.11采用了leader epoch来标识备份进度.后面我们会详细讨论两种机制的差异.不过首先先做一些基本的名词含义解析. 水位或水印(watermark)一词,也可称为高水位(high watermark),通常被用在流式处理领域…
~~~这是一篇有点长的文章,希望不会令你昏昏欲睡~~~ 本文主要讨论0.11版本之前Kafka的副本备份机制的设计问题以及0.11是如何解决的.简单来说,0.11之前副本备份机制主要依赖水位(或水印)的概念,而0.11采用了leader epoch来标识备份进度.后面我们会详细讨论两种机制的差异.不过首先先做一些基本的名词含义解析. 水位或水印(watermark)一词,也可称为高水位(high watermark),通常被用在流式处理领域(比如Apache Flink.Apache Spark…
转载自 huxihx,原文链接 Kafka无消息丢失配置 目录 一.Producer端二.Consumer端 Kafka到底会不会丢数据(data loss)? 通常不会,但有些情况下的确有可能会发生.下面的参数配置及Best practice列表可以较好地保证数据的持久性(当然是trade-off,牺牲了吞吐量).笔者会在该列表之后对列表中的每一项进行讨论,有兴趣的同学可以看下后面的分析. block.on.buffer.full = true acks = all retries = MAX…
转载自 技术世界,原文链接 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.…
原创文章,同步首发自作者个人博客.转载请务必在文章开头处以超链接形式注明出处http://www.jasongj.com/kafka/high_throughput/ 摘要 上一篇文章<Kafka设计解析(五)- Kafka性能测试方法及Benchmark报告>从测试角度说明了Kafka的性能.本文从宏观架构层面和具体实现层面分析了Kafka如何实现高性能. 宏观架构层面 利用Partition实现并行处理 Partition提供并行处理的能力 Kafka是一个Pub-Sub的消息系统,无论是…
原创文章,转载请务必将下面这段话置于文章开头处. 本文转发自技术世界,原文链接 http://www.jasongj.com/kafka/kafka_stream/ Kafka Stream背景 Kafka Stream是什么 Kafka Stream是Apache Kafka从0.10版本引入的一个新Feature.它是提供了对存储于Kafka内的数据进行流式处理和分析的功能. Kafka Stream的特点如下: Kafka Stream提供了一个非常简单而轻量的Library,它可以非常方…
原创文章,首发自作者个人博客,转载请务必将下面这段话置于文章开头处. 本文转发自技术世界,原文链接 http://www.jasongj.com/kafka/transaction/ 写在前面的话 本文所有Kafka原理性的描述除特殊说明外均基于Kafka 1.0.0版本. 为什么要提供事务机制 Kafka事务机制的实现主要是为了支持 Exactly Once即正好一次语义 操作的原子性 有状态操作的可恢复性 Exactly Once <Kafka背景及架构介绍>一文中有说明Kafka在0.1…
转载自 huxihx,原文链接 Kafka消费组(consumer group) 一直以来都想写一点关于kafka consumer的东西,特别是关于新版consumer的中文资料很少.最近Kafka社区邮件组已经在讨论是否应该正式使用新版本consumer替换老版本,笔者也觉得时机成熟了,于是写下这篇文章讨论并总结一下新版本consumer的些许设计理念,希望能把consumer这点事说清楚,从而对广大使用者有所帮助. 在开始之前,我想花一点时间先来明确一些概念和术语,这会极大地方便我们下面的…
转载自 huxihx,原文链接 Kafka副本管理—— 为何去掉replica.lag.max.messages参数 在Kafka设计解析(二)Kafka High Availability (上)文中的ACK前需要保证有多少个备份小节说到,如果一个Follower宕机,或者落后太多,Leader将把它从ISR(即in-sync Replica)中移除.这里所描述的“落后太多”指Follower复制的消息落后于Leader后的条数超过预定值(该值可在$KAFKA_HOME/config/serv…
转载自 技术世界,原文链接 Kafka设计解析(八)- Exactly Once语义与事务机制原理 本文介绍了Kafka实现事务性的几个阶段——正好一次语义与原子操作.之后详细分析了Kafka事务机制的实现原理,并介绍了Kafka如何处理事务相关的异常情况,如Transaction Coordinator宕机.最后介绍了Kafka的事务机制与PostgreSQL的MVCC以及Zookeeper的原子广播实现事务的异同. 写在前面的话 本文所有Kafka原理性的描述除特殊说明外均基于Kafka 1…