Kafka Producer对连接的管理
使用TCP连接
Kafka Producer连接Broker采用TCP连接。 是基于以下几点考虑
- 可以使用TCP本身提供的某些高级特性,比如多路复用请求,同时轮询多个连接的能力
- 一般语言类库对TCP封装都较好,对HTTP封装比较简陋
如何使用Producer
- 构造生产者对象所需的参数对象
- 创建KafkaProducer对象实例
- 调用send()方法
- 调用KafkaProducer的close方法释放资源
生产者建立与节点的连接的时机
- 是在创建KafkaProducer实例使,会启动一个Sender线程,该线程会去创建与Kafka Broker的连接。并且KafkaProducer启动时会与所有的Broker都建立连接( 先跟bootstrap.server中配置的Broker进行TCP连接,在获取到元数据后,跟所有的Broker进行TCP连接 ),后续如果设置了,则Producer将会关闭空闲TCP连接。
- 更新元数据
- 发送消息(可能会建立)
何时关闭TCP连接
- 生产者主动断开连接。如调用close,或者将生产者进程kill -9
- 与 Producer 端参数 connections.max.idle.ms 的值有关。默认值为9分钟。可被设置为-1,即永远不关闭连接。当然这都是软件层面的。