kafka
WQ同学
这个作者很懒,什么都没留下…
展开
-
Kafka学习之旅(十三):消费组重平衡的流程
前面说过了重平衡,它的作用是让组内所有的消费者实例就消费哪些主题分区达成一致。重平衡需要借助 Kafka Broker 端的 Coordinator 组件,在Coordinator 的帮助下完成整个消费者组的分区重分配。在给我们带来的便利和一些问题。这篇来分析一下重平衡的整个流程。1.触发条件大体的触发条件有下面三个1. 组成员数量发生变化。2. 订阅主题数量发生变化。3. 订阅主题的分...转载 2019-08-26 07:36:35 · 616 阅读 · 0 评论 -
Kafka学习之旅(十二):消费组重平衡问题
在介绍消费者的时候提到了消费者重平衡,这个机制的设计给我们提供了高可用,自动负载等等的便利。但是同时也带来了一些问题本篇来分析一下这个问题。1. Rebalance 影响 Consumer 端 TPS。Rebalance 就是让一个 Consumer Group 下所有的 Consumer 实例就如何消费订阅主题的所有分区达成共识的过程。在 Rebalance 过程中,所有 Consumer ...原创 2019-08-25 16:56:42 · 463 阅读 · 0 评论 -
Kafka学习之旅(十):消费者如何管理TCP协议
在前面我们介绍了生产者使用TCP协议通信,本篇主要介绍消费者消费者的通信机制,其实Kafka 消费者的通信机制和生产者是一致的都是基于TCP协议。那么本文就来介绍一下Kafka是如何管理消费者的通信的。1. 如何创建TCP 连接我们先从如何创建消费者连接开始讨论。消费者程序的主要入口是KafkaConsumer. 和生产者不同的是消费者在被创建的时候是不会创建任何TCP连接的。也就是在创建消费...原创 2019-08-25 15:53:56 · 424 阅读 · 0 评论 -
Kafka学习之旅(九):位移提交
上文中主要介绍了Kafka 的消费位移从Zookeeper 转移到了自己管理。本文主要介绍一下位移的提交方式。Consumer 需要向 Kafka 汇报自己的位移数据,这个汇报过程被称为提交位移。因为 Consumer 能够同时消费多个分区的数据,所以位移的提交实际上是在分区粒度上进行的,即Consumer 需要为分配给它的每个分区提交各自的位移数据。提交位移主要是为了表征 Consumer ...转载 2019-08-02 00:05:18 · 282 阅读 · 0 评论 -
Kafka学习之旅(六): Kafka生产者通信
一 简介由官网可以了解到Kafka 所有组件(生产者,消费者,broker)之间的通信协议使用的是TCP,而不是使用的是HTTP 或者其他的通讯协议。那为什么他要去选择TCP而不使用HTTP呢?其实这里面的原因有很多,个人觉得最主要的原因在于 TCP 和 HTTP 之间的区别。从社区的角度来看,在开发客户端时,人们能够利用 TCP本身提供的一些高级功能,比如多路复用请求以及同时轮询多个连接的能...原创 2019-07-28 13:27:43 · 1331 阅读 · 3 评论 -
Kafka学习之旅(五): Kafka中的压缩
Kafka 会为我们保留一定量时间的数据那么为Kafka 选择一个合适的压缩算法是非常重要的,可以在节约存储空间的同时又将效率影响到最低。在 Kafka 中,压缩可能发生在两个地方:生产者端和 Broker 端。生产者程序中配置 compression.type 参数即表示启用指定类型的压缩算法。比如下面这段程序代码展示了如何构建一个开启 GZIP 的 Producer 对象:Propert...原创 2019-07-27 16:52:11 · 952 阅读 · 0 评论 -
Kafka学习之旅(四): 生产者消息分区机制
用过kafka的可能或多或少了解一些kafka的分partition. 本篇来介绍一下生产者怎么来进行消息分区的机制和意义我们在使用Kafka 一个比较希望的事情就是数据能够很均匀的将数据分配到所有的服务器上面,这样不仅可以更高效的去利用集群的资源也能是服务的可用性和稳定性变得更好。本文就来聊聊kafka是怎么实现的. 。在前面我说过 Kafka 有Topic的概念,它是承载真实数据的逻辑容器...原创 2019-07-27 15:56:36 · 209 阅读 · 0 评论 -
Kafka学习之旅(八): 消费位移介绍
今天要分享的是 __consumer_offsets 他还有个官方的名字叫做叫位移主题,即 Offsets Topic。在老版本中Kafka 可以手动或自动将消费的位移数据保存到zookeeper中,当consumer重启后Kafka 可以从ZK 中读取消费数据,从而在上次消费截止的地方继续消费。这种设计使得Kafka Broker 不需要保存位移数据,减少了 Broker 端需要持有的状态空间...原创 2019-07-31 23:05:02 · 337 阅读 · 0 评论 -
Kafka学习之旅(三): 部署方案
上文中讲到参数配置,本文主要针对磁盘操作系统带宽分析线上部署Kafka的方案。操作系统Kafka主要是scala编写的运行在JVM之上的,我们知道JVM有一个特性叫做一次编译到处运行的特点那么为什么我们还要对操作系统进行选择呢。主要有如下三点考虑。I/O 模型什么是 I/O 模型呢?你可以近似地认为 I/O 模型就是操作系统执行 I/O 指令的方法。主流的 I/O 模型通常有 5 种类...原创 2019-07-22 23:36:57 · 257 阅读 · 0 评论 -
Kafka学习之旅(十一): 消费组
前两章讲述比较重要的一个特性就是Kafka 的消费位移 其中包含 位移的含义,位移的发展史 和位移的提交方式。本文接下来继续讲述另外一个特性那就是消费组。分组消费时Kafka 一个比较具有亮点的一个特性,那什么时消费组呢 大概就是:Kafka 提供的可扩展且具有容错性的消费者机制。那么这里既然提到了组的概念。此时你可能想到这个是一个多个消费者的集合。没错答案就是这样子的。多个消费者共用一个Gro...原创 2019-08-04 11:28:00 · 211 阅读 · 0 评论 -
Kafka学习之旅(二): Kafka 常见配置参数解析
上一篇中主要介绍了Kafka 的一些相关的介绍和一些名词的解释。具体怎么搭建Kafka集群就不介绍了这个网上太多了。本篇主要介绍一下 搭建集群会用到的一些个人觉得比较重要的一些参数。下面先从broker开始吧Kafka Broker 参数目前Kafka broker 大致提供了200 个以上的参数,不过索性的是绝大部分不需要通常不需要去过问都有默认值,不然配个参数就是一个巨大的体力活了。...原创 2019-07-22 16:14:46 · 937 阅读 · 0 评论 -
Kafka学习之旅(七): Kafka生产者消息可靠性
所谓的消息可靠性指的是Kafka 对生产者和消费者提出的一种保证。常见的有三种。最多一次: 有可能少 意思是有可能出现消息丢失的现象最少一次:有可能多 意思是有可能出现重复消费精准一次: 不多不少 不会丢也不会重复消费目前生产者默认提供的是最少一次的策略,为什么呢。发送消息并且收到Broker应答即一次消息发送成功。假设消息发送成功了但是由于网络的原因没有收到Broker 的答复此时生产...原创 2019-07-29 22:47:54 · 421 阅读 · 0 评论 -
Kafka学习之旅(一):初识Kafka
一. 概述作为大数据从业的程序猿GG, 相信许多人和我一样都接触,使用过Kafka. 之前由于个人原因仅仅只是使用了一些API, 并没有深入了解。 现在刚好有机会正好想系统的学习一下。于是开一个主题来记录自己的学习历程。首先Kafka是什么呢,我看到许多国内的资料将它解释为消息队列或者是消息中间件。不过个人觉得消息引擎系统更加的适合它一些。因为消息队列给出了一个很不明确的暗示,仿佛Kafka是...原创 2019-07-14 19:28:19 · 230 阅读 · 0 评论 -
Kafka学习之旅(十四):消费者组的消费进度监控
对于 Kafka 消费者来说,监控它们的消费进度非常的重要,或者说是监控它们消费的滞后程度。这个滞后程度有个专门的名称:消费者 Lag 或 Consumer Lag。所谓滞后程度,就是指消费者当前落后于生产者的程度。比方说,Kafka 生产者向某主题成功生产了 100 万条消息,你的消费者当前消费了 80 万条消息,那么我们就说你的消费者滞后了 20 万条消息,即 Lag 等于 20 万。通常来...原创 2019-08-27 07:17:59 · 1327 阅读 · 0 评论