kafka java消费者是如何管理TCP连接的

深入浅出kafka原理-4-kafka网络机制原理 深入浅出kafka原理-本文将以常见面试题为主线,从浅入深介绍kafka的原理,涉及常见的如何保证消息不丢失,副本的同步机制,请求流程,网络机制等。 阅读详情

kafka java消费者是如何管理TCP连接的

何时创建连接

  根据我以前的文章,我们知道kafka的java生产者在实例已经创建,就创建了TCP连接。生产者的入口类KafkaProducer在构建实例时,会在后台启动Sender线程,这个线程负责Sockert连接的创建。
  那java的消费者是什么时候创建的连接呢?是实例创建时吗?并不是,消费者是在调用KafkaConsumer.poll方法时创建的连接。
具体的创建时机有三个:

  1. 发起FindCoordinator请求时。
      在前面的的文章"kafka消费者重平衡可以避免吗?"中 ,说过一个协调者(Coordinator),它是驻留在Borker端的内存中的。负责消费者组成员和各个消费者的位移提交管理。当消费者程序首次调用poll方法时,他需要向Kafka集群发送一个FindCoordinator的请求,从而让集群告诉它那个Borker是管理它的协调者。
      具体发给那个Borker呢?理论上任何一个Borker都可以回答他的维问题。因为集群中的任何一个Borker都有整个集群的信息。不过一般这个请求是发给负载最小的Borker。

  2. 连接协调者时
      上一步的请求得到回应之后,消费者就知道了那个Borker是真正的协调者了。之后就会创建于协调者之间的Socket连接了。只有真正连入协调者才能开启正常的组协调操作。如:加入组,位移管理等。

  3. 消费数据时
      消费者会为每个要消费的分区创建与该分区领导者副本所在Broker连接的TCP。

创建几个连接

消费者程序会创建3类TCP连接:

  1. 确定协调者和获取集群元数据的连接
  2. 连接协调者,令其执行组成员管理操作的连接
  3. 实际的消息获取的连接。

何时关闭连接

  和生产者端相同,主类有两种:主动关闭连接和kafka自动关闭连接。
  如果手动的调用KafkaConsumer.close()方法,或者是执行Kill命令。就是主动关闭连接了。kafka的自动关闭是由消费者端参数connection.max.idle.ms控制的。该参数的默认值是9分钟。即如果某个Socker连接上连续9分钟没有请求的话就会自动关闭了。
  和生产者不同的是:如果在消费者程序中,你使用了循环的方式来调用poll方法消费消息。那上面的请求就会定期发送到Borker,因此Socket上也就可以保证一直由请求。也就实现了长连接。
  需要注意的是:当上面的第三类TCP连接成功之后,消费者程序会废弃第一类TCP连接,之后的定期请求元数据的请求改为第三类TCP连接。

21 | Java 消费者是如何管理TCP连接的? 文章目录Kafka 核心技术与实战客户端实践及原理剖析21 | Java 消费者是如何管理TCP连接的? Kafka 核心技术与实战 客户端实践及原理剖析 21 | Java 消费者是如何管理TCP连接的? 阅读详情

相关推荐

学习极客时间 《Kafka核心技术与实战》笔记21-22

学习极客时间 《Kafka核心技术与实战》笔记-客户端实践及原理剖析21-22 原极客时间连接:https://time.geekbang.org/column/intro/191?utm_campaign=guanwang&utm_source=baidu-ad&utm_medium=ppzq-pc&utm_content=title&utm_term=baidu-ad-ppzq-title 消费者TCP连接管理 创建连接 消费者端主要的程序入口是KafkaConsum

fuxuan_7的博客 1583

kafka使用

Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的 (replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理 大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、 Storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编 写,Linkedin于 2010 年贡献给了Apache基金会并成为顶级开源 项目。

yourflower的博客 2584

视觉辅助RIS波束追踪:用摄像头“看见”用户,实现毫秒级波束对准

在无线通信领域,波束成形技术是提升高频段信号覆盖与质量的核心手段,其原理是通过调整天线阵列的相位,使信号能量在特定方向相干叠加,形成高增益定向波束。这项技术的价值在于能有效克服高频信号路径损耗大、穿透性差的瓶颈,广泛应用于5G/6G、毫米波通信及室内定位等场景。然而,传统波束追踪依赖信道估计或波束扫描,存在训练开销大、实时性差的问题。本文聚焦于一种创新解决方案:将计算机视觉与可重构智能表面(RIS)相结合。通过摄像头直接感知用户位置,并利用RIS快速重构反射波束方向,实现了近乎零开销、毫秒级延迟的波束追踪,

weixin_33552698的博客 620

【Kafka从入门到成神系列 八】Kafka 多线程消费者及TCP连接

大家好,我是爱敲代码的小黄,独角兽企业的Java开发工程师,Java领域新星创作者。这是我的系列专栏:Kafka 从入门到成神。如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步。如果感觉博主的文章还不错的话,请三连支持一下博主哦。

爱敲代码的小黄 3020

kettle连接达梦资源库数据库插件

kettle自定义插件plugin database plugin 达梦插件 dm插件

weixin_42122126的博客 2170

MOOS-ivp 实验三 MOOS简介(3)

MOOS-ivp 实验三 MOOS简介(3) 继上一篇文章继续对实验进行记录 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录MOOS-ivp 实验三 MOOS简介(3)六、A Simple Example with pXRelay1.pXRelay基本使用2.pXRelay简单例子3.pXRelay实验七、First Experiments in Modifying MOOS App Code1.下载一个MOOS模板文件2.打开MOOS模板文件总结 六、A Simple E

weixin_44151170的博客 2534

Kafka 优秀的网络通信的机制

消息生产者与Kafka的交互 kafka作为消息中间件,势必会有客户端作为生产者向他发送消息,并且由于他本身是支持分布式的消息存储的,客户端在发送消息到Kafka Broker的时候,会把所有的消息分发到多个 Kafka Broker(partition)上去。 此时就会默认情况下走一个负载均衡的策略,举个例子,假设有三个partition ,发送3万条消息,就会给每个Partition分发1万条消息,这样订单数据均匀分散在了3台Broker机器上。 频繁网络通信问题 好了,现在问题来了,客户端在发送消息

weixin_42494845的博客 568

ChipCamp探索系列 -- 7A. 开源CPU之BOOM的来龙去脉

本文梳理一下Berkeley的乱序超标量CPU项目----Berkeley Out of Order Machine (BOOM),作为探索7系的首篇(7A)。

ChipCamp的博客---https://chipcamp.blog.youkuaiyun.com/ 1558

kafka学习知识点总结(三)

Kafka Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言...

baiwacuan6352的博客 867

【WRF-Urban】增加动态空间热排放数据以替换人为热排放参数

增加动态空间热排放数据以替换人为热排放参数

WW、forever的博客 1044

STM32实战开发(65):STM32摄像头图像采集开发教程

我们将会详细介绍如何使用STM32进行摄像头控制、图像数据采集以及如何将采集到的图像数据传输到其他设备进行处理。通过这篇博客,您将能够掌握STM32与摄像头模块的图像采集技术,应用于各种图像处理场景。为了确保STM32能够正确接收图像数据,我们需要配置STM32的GPIO引脚,并通过外部中断捕获这些信号。为了实现更高效的图像采集,可以通过DMA进行数据传输,将图像数据直接从GPIO引脚存储到内存中。通过DMA传输,我们可以将采集到的图像数据直接存储在内存中的一个缓冲区,然后进行后续的图像处理。

2201_76125393的博客 2540

Kafka——Java消费者是如何管理TCP连接的?

Kafka——Java消费者是如何管理TCP连接的?

从知识输入到知识输出 1109

基于YOLOv10的PCB电子元件智能识别系统设计与实现

数据预处理模块:负责对原始PCB图像进行标注、增强和格式转换模型训练模块:基于YOLOv10架构进行模型训练和优化推理检测模块:加载训练好的模型进行实时检测用户界面模块:提供友好的交互界面,方便用户操作和结果可视化YOLO(You Only Look Once)系列算法自2016年提出以来,经历了多次迭代更新。YOLOv1-v3:奠定了YOLO系列的基础架构YOLOv4-v7:引入大量优化技巧和网络结构改进YOLOv8-v9:进一步优化模型结构和训练策略YOLOv10。

YOLO 156

Kafka | Java 消费者是如何管理TCP连接的? | 极客时间

今天我要和你分享的主题是:Kafka 的 Java 消费者是如何管理 TCP 连接的。在专栏中,我们专门聊过“Java生产者是如何管理 TCP 连接资源的”这个话题,你应...

sinat_27143551的博客 1025

《自然语言处理实战入门》文本分类 ---- 使用词向量与SVM 进行文本分类

文本分类用电脑对文本集(或其他实体或物件)按照一定的分类体系或标准进行自动分类标记。 它根据一个已经被标注的训练文档集合, 找到文档特征和文档类别之间的关系模型, 然后利用这种学习得到的关系模型对 新的文档进行类别判断 。文本分类从基于知识的方法逐渐转变为基于统计 和机器学习的方法。

shiter编写程序的艺术 2388

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Kafka 的 Java 消费者如何管理 TCP 连接?

前言 本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系 正文 Kafka 的 Consumer 程序 可以参考我的这篇博客——Kafka 的客户端代码怎么写? 何时创建 TCP 连接? TCP 连接是在调用 KafkaConsumer.poll 方法时被创建的。再细粒度地说,在 poll 方法内部有 3 个时机可以创建 TCP 连接。 1.发起 FindCoordi

Shockang的博客 476

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java 消费者是如何管理TCP连接的?

和生产者不同,构建 KafkaConsumer 实例时是不会创建任何 TCP 连接的,而是在调用 KafkaConsumer.poll 方法时被创建的。在 poll 方法内部有 3 个时机可以创建 TCP 连接。1. 发起 FindCoordinator 请求时。当消费者程序首次启动调用 poll 方法时,它需要向 Kafka 集群发送一个名为 FindCoordinator 的请求,希望 Kafka 集群告诉它哪个 Broker 是管理它的协调者。消费者应该向哪个 Broker 发送这类请求呢?理论上任何

JavaMonsterr的博客 129

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

kafka学习笔记(六) --- JAVA生产者或者消费者是如何管理TCP连接的

apache kafka的所有通信都是基于TCP的,而不是HTTP或者其他协议。为什么?最主要的原因在于TCP和HTTP之间的区别,从社区的角度,开发客户端时,人们能够利用TCP本身提供的一些高级功能,比如多路复用请求以及同时轮询多个连接的能力。多路复用,即将两个或多个数据流合并到一个底层的物理连接中的过程,其实严格来说,TCP并不能多路复用,只是提供可靠的消息交付语义保证,比如自动重传丢失的报文...

囚牢-峰子的博客 653

Kafka讲解——05.Java生产者、消费者是如何管理TCP连接的

Java生产者、消费者是如何管理TCP连接的

jast 226

Kafka 管理TCP连接

Kafka 管理TCP连接

m0_47743175的博客 1231

kafka消费者--tcp长连接讨论

一、何时创建TCP连接   首先明确的是,在构建KafkaConsumer实例时是不会创建任何TCP连接的;另外在调用诸如subscribe或assign的时候也不会创建任何TCP连接。那么TCP连接是在什么时候创建的呢?严格来说有几个可能的时间点。从粗粒度层面来说,我们可以安全地认为Socket连接是在调用consumer.poll()创建的;从细粒度层面来说,TCP连接创建的时机有3个:1....

atarik@163.com 5466

Kafka——Java生产者是如何管理TCP连接的?

Kafka——Java生产者是如何管理TCP连接的?:Kafka通信机制深度解析

从知识输入到知识输出 1711

Kafka学习笔记 : 消费者 TCP 连接

KafkaProducer 在构建实例的时候,会在后台默默地启动一个 Sender 线程,这个 Sender 线程负责 Socket 连接的创建。并且连接bootstrap.servers指定的的所有 broker. 构建 KafkaConsumer 实例时是不会创建任何 TCP 连接的. TCP 连接是在调用 KafkaConsumer.poll 方法时被创建的。 ...

张伯毅的专栏 1807

kafka的Java生产者如何管理TCP连接

kafka的Java生产者如何管理TCP连接 为何要使用TCP开发一个生产者程序的步骤什么时候创建TCP连接?创建连接地方什么时候会更新元数据呢?有两种情况:何时关闭连接 为何要使用TCP   Apache Kafka的所有通信都是基于TCP的,而不是基于HTTP或者其它协议。无论是生产者,消费者,还是Broker之间的通信都是基于TCP。此时就会问:为什么不用HTTP呢?   不用HTTP原因如下: 1:人们可以利用TCP本身提供的一些高级功能,比如:多路服用请求以及同时轮询多个连接的能力。 2:目前已知

wangdawei_的博客 2093
上一篇: kafka消费者(Consumer)端多线程消费的实现方案
下一篇: git从修改到push 各种可能遇到的情况(add,rm,commit,push)
机智小袁
博客等级 码龄7年 159粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值