栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Java KafkaProducer生产者是如何管理TCP连接的? 何时建立?何时关闭?

Java KafkaProducer生产者是如何管理TCP连接的? 何时建立?何时关闭?

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

为什么使用TCP?在什么时候会建立TCP连接?

更新集群的元数据在何时发生 何时关闭TCP ,最好如何关闭

主动关闭,这样最好被动关闭 Producer 端参数connections.max.idle.ms



为什么使用TCP?

Apache Kafka 的所有通信都是基于 TCP 的,而不是基于HTTP 或其他协议。无论是生产者、消费者,还是 Broker之间的通信都是如此。你可能会问,为什么 Kafka 不使用HTTP 作为底层的通信协议呢?其实这里面的原因有很多,但最主要的原因在于 TCP 和 HTTP 之间的区别。从社区的角度来看。

TCP能提供一些高级功能比如多路复用以及同时轮询多个连接。目前的HTTP库在很多编程语言中都略显简陋。



在什么时候会建立TCP连接?
    TCP 连接是在创建KafkaProducer 实例时建立的 对Broker集群进行连接,和所有的Broker都会产生TCP连接,是否浪费资源。一个是在更新集群的元数据后 当 Producer 更新了集群的元数据信息之后,如果发现与某些 Broker 当前没有连接,那么它就会创建一个 TCP 连接另一个是在消息发送时 发送消息时,Producer 发现尚不存在与目标 Broker 的连接,也会创建一个
更新集群的元数据在何时发生

    当 Producer 尝试给一个不存在的主题发送消息时,Broker 会告诉 Producer 说这个主题不存在。此时Producer 会发送 metaDATA 请求给 Kafka 集群,去尝试获取最新的元数据信息。

    Producer 通过 metadata.max.age.ms 参数定期地去更新元数据信息。该参数的默认值是 300000,即 5 分钟,也就是说不管集群那边是否有变化,Producer 每 5 分钟都会强制刷新一次元数据以保证它是最及时的数据。




何时关闭TCP ,最好如何关闭 主动关闭,这样最好
 producer.close()
被动关闭 Producer 端参数connections.max.idle.ms

当这个参数设置大于0 ,就会在几分钟内没有请求自动关闭。设置成 -1,TCP 连接将成为永久长连接。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/774846.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号