kafka
文章平均质量分 83
kafka学习笔记
机智小袁
正在成长的小袁
展开
-
kafka是如何处理请求的?
kafka是如何处理请求的?引言kafka的请求处理:Reactor 模式引言 kafka的客户端和Borker之间的交互都是通过“请求/相应”的方式完成的。就像:客户端通过网络发送消息给Broker,Borker发送相应给客户端。 kafka自己定义了一组请求协议,用于实现各种交互操作。比如:PRODUCE请求用于生产消息,FETCH请求用于消费消息,METADATA请求用请求kafka集群元数据信息。kafka的请求处理:Reactor 模式 Reactor模式是时间驱动架构的一种实现方原创 2022-05-12 21:37:44 · 488 阅读 · 0 评论 -
kafka副本机制详解
kafka副本机制详解什么是副本机制副本机制的好处副本中的角色与其他产品中副本的区别,为什么?In-sync Replicas (ISR/同步副本)Unclean领导者选举什么是副本机制 副本就是一些冗余的数据,副本是在分区的基础上定义的。副本是分区的副本,一个分区可以有多个副本。所谓副本,本质就是一个只能追加写消息的提交日志。同一个分区下的所有副本保存着相同的消息序列,这些副本可以分散的保存在不同的borker上,从而能够一定程度上对抗Broker宕机带来的数据不可用。 在实际生产环境中,每台原创 2022-05-04 21:15:49 · 757 阅读 · 0 评论 -
kafka java消费者是如何管理TCP连接的
kafka java消费者是如何管理TCP连接的何时创建连接创建几个连接何时关闭连接何时创建连接 根据我以前的文章,我们知道kafka的java生产者在实例已经创建,就创建了TCP连接。生产者的入口类KafkaProducer在构建实例时,会在后台启动Sender线程,这个线程负责Sockert连接的创建。 那java的消费者是什么时候创建的连接呢?是实例创建时吗?并不是,消费者是在调用KafkaConsumer.poll方法时创建的连接。具体的创建时机有三个:发起FindCoordina原创 2022-04-24 12:06:44 · 3744 阅读 · 0 评论 -
kafka位移提交详解
kafka位移提交 什么是位移提交,定义。位移提交的分类自动提交和手动提交:同步提交和异步提交什么是位移提交,定义。 Consumer需要向kafka汇报自己的位移数据,这个汇报过程称为位移提交。因为Consumer可以同时消费多个分区。所以位移提交是按照分区的粒度进行的。即Consumer需要为分配给他的每个分区提交各自的位移数据。 作用是:位移提交表示了Consumer的消费进度。这样当Consumer发生故障重启后,就可以读取之前提交的位移,然后从指定位移开始继续消费。类似于书签。 我们原创 2022-04-21 10:45:53 · 2829 阅读 · 0 评论 -
kafka消费者重平衡可以避免吗?
kafka消费者重平衡可以避免吗 什么是kafka消费者重平衡重平衡的弊端重平衡发生的时机那些重平衡可以避免如何避免。什么是kafka消费者重平衡 Rebalance是让一个Consumer Group下的所有Consumer实例就如何消费订阅主题的所有分区达成一个共识的过程。在Rebalance过程中,所有Consumer实例共同参与,在协调者的帮助下,完成订阅主题分区的分配。但是在此过程中,所有实例都不能消费任何消息,因此它对Consumer的TPS有很大影响。 在这里,稍微说一下“协调者”(原创 2022-04-20 20:00:13 · 971 阅读 · 0 评论 -
kafka位移主题(__consumer_offsets)
kafka位移主题 介绍位移主题的key中保存的内容位移主题的创建位移的提交位移主题的垃圾回收。 位移主题:(__consumer_offsets)它是kafka的内部主题。介绍 上一篇文章中我们将了位移信息的存储是要区分新老版本的,在老版本中位移信息是存放在zookeeper中的,而新版本的位移信息存放在Kafka自身的位移主题中。 放在kafka自身的原因是,保存位移信息需要保证高频的写操作以及保存的持久性,但是zookeeper并不适合用于高频写操作的场景下。而kafka本身就适合用于频原创 2022-04-19 23:40:41 · 1094 阅读 · 0 评论 -
Kafka消费者组
Kafka消费者组 什么是kafka消费者组消费者组的特性为什么出现消费者组针对Consumer Group,Kafka如何管理位移(offset)?kafka的Rebalance(重平衡)定义触发条件问题什么是kafka消费者组 kafka消费者组(Consumer Group)是kafka提供的可扩展且具有容错性的消费者机制。 它是一个组,所以内部有可以有多个消费者,这些消费者共用一个ID(Group ID),一个组内的所有消费者共同协作,完成对订阅的主题的所有分区进行消费。其中一个主题中的一原创 2022-04-18 15:27:44 · 11985 阅读 · 0 评论 -
kafka如何保证消息交付可靠性以及避免消息重复
kafka如何保证消息交付可靠性以及避免消息重复 消息交付可靠性什么是消息交付可靠性什么是幂等性幂等性Producer幂等性Producer的作用范围如何实现多分区多会话的消息无重复?kafka事务事务型Producer消息交付可靠性什么是消息交付可靠性 所谓的消息交付可靠性保障,是指Kafka为Producer和Consumer要处理的消息提供了什么样的承诺。常见的承诺右三种:最多一次:消息可能丢失,但绝不会被重新发送。至少一次:消息不会丢失,但有可能被重复发送。精确一次:消息不会丢失,也原创 2022-04-17 17:16:52 · 1168 阅读 · 0 评论 -
kafka的Java生产者如何管理TCP连接
kafka的Java生产者如何管理TCP连接 为何要使用TCP开发一个生产者程序的步骤什么时候创建TCP连接?创建连接地方什么时候会更新元数据呢?有两种情况:何时关闭连接为何要使用TCP Apache Kafka的所有通信都是基于TCP的,而不是基于HTTP或者其它协议。无论是生产者,消费者,还是Broker之间的通信都是基于TCP。此时就会问:为什么不用HTTP呢? 不用HTTP原因如下:1:人们可以利用TCP本身提供的一些高级功能,比如:多路服用请求以及同时轮询多个连接的能力。2:目前已知原创 2022-04-16 16:36:18 · 1977 阅读 · 0 评论 -
如何保证kafka无消息丢失
如何保证kafka无消息丢失 kafka无消息丢失的理解:“已提交”有限度的保证消息丢失的情况:生产者丢失数据。消费者程序丢失数据总结:kafka无消息丢失的理解: Kafka 只对“已提交”的消息(committed message)做有限度的持久化保证。“已提交” 什么叫“已提交”的信息?当kafka的若干个broker成功的接收消息并写入日志文件后,他们会告诉生产者这条消息已成功提交。此时,这条消息才算已提交的消息。 此处的若干个broker是要看你的配置,你对“已提交”的定义。你可以原创 2022-04-15 10:28:28 · 814 阅读 · 0 评论 -
kafka 生产者压缩算法
kafka消息分区机制 为什么要压缩如何压缩何时压缩何时解压缩各种压缩算法对比为什么要压缩 压缩是一种时间换空间的动作。具体来说就是用CPU时间去换取磁盘空间或网络I/O传输量,希望以较小的CPU开销带来更少的磁盘占用或者更少的网络I/O传输。如何压缩 要搞清楚kafka如何压缩消息。就要从kafka的消息格式说起。目前kafka的有两大类消息格式:V1版本和V2版本。 无论是那个版本,kafka的消息层次都是两层:消息集合以及消息。一个消息集合中包含若干条日志项,而日志项才是真正封装消息的原创 2022-04-14 17:33:17 · 1579 阅读 · 0 评论 -
kafka消息分区机制
kafka消息分区机制 分区基础概念为什么要分区分区策略分区基础概念 由上一篇入门篇中我们知道kafka有主题(Topic)的概念,它是一种逻辑容器。而在主题之下还分为多个分区,分区是物理容器。也就是说kafka的消息组织方式实际上是三级结构:主题 - 分区 - 消息,每个主题下的每条消息只会保存在一个分区中。它的冗余是通过分区备份完成的。为什么要分区 分区的作用是提供负载均衡能力,实现系统的高伸缩性。分区之后,不同的分区能够放在不同的物理设备上,而数据的读写操作也都是针对分区去进行的,这样就可原创 2022-04-13 10:02:11 · 1220 阅读 · 0 评论 -
什么是kafka,一篇kafka入门
什么是kafka kafka官方定义是一个分布式流处理平台,但是他更多是被用来当作一个分布式消息队列来使用。重要概念:borker: kafka集群可以有多个borker实例组成,每个实例称为borker。topic: 主题,主题是一个逻辑概念,可以理解为topic是一种类别。kafka吧收到的消息按topic进行分类。partition: 分区,分区是物理分区,一个主题中会有多个分区,一个主题中的一个条消息只放在一个分区中,分区可以有多个备份。一般,分区和其备份分区不会在一个物理设原创 2022-04-12 17:12:45 · 300 阅读 · 0 评论