栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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/778534.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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