Librdkafka要和kakfa集群通讯, 网络操作肯定是少不了的,这就需要封装transport数据传输层;
Librdkafka毕竟是SDK, 作为访问kafka集群的客户端,不需要支持大并发,...在网络IO模型 上选用了 poll;
IO模型确定后, 发送和接收数据必不可少的缓冲区buffer, 我们前面已经介绍过, 请参考Librdkafka的基础数据结构 3 -- Buffer相关 ;
以上介绍的...rd_kafka_transport_t
异步连接到broker rd_kafka_transport_connect:
rd_kafka_transport_t *rd_kafka_transport_connect...response的请求个数没超过最大限制, 并且有需要发送的buf, 就把POLLOUT事件加入
if (rd_kafka_bufq_cnt(&rkb->rkb_waitresps) 错误发生了,return -1
if (unlikely(r <= 0)) {
if (r == 0 || errno