Kafka %5|1528340684.113|FAIL|rdkafka#consumer-1 Connection closed #176

kevensuu · 2019-12-16 17:58:44 · 热度: 158
  • PHP version: PHP 7.2.5
  • librdkafka version: 0.11.4-30-gfa1677
  • php-rdkfaka version:3.0.5
$rk = new RdKafka\Consumer();
//$rk = new RdKafka\KafkaConsumer();
$rk->setLogLevel(LOG_DEBUG);
// 指定 broker 地址,多个地址用"," 分割
//$rk->addBrokers("172.16.1.139:9092,172.16.1.140:9092");
$rk->addBrokers("172.16.1.139,172.16.1.140");

$topic = $rk->newTopic("yantao_test_topic");
$topic->consumeStart(0, RD_KAFKA_OFFSET_BEGINNING);

while (true) {
// 第一个参数是分区号
// 第二个参数是超时时间
$msg = $topic->consume(0, 1000);
dd($msg);
if ($msg->err) {
echo $msg->errstr(), "\n";
break;
} else {
echo $msg->payload, "\n";
}
}

The result:

5|1528341132.428|FAIL|rdkafka#consumer-1| [thrd:172.16.1.140:9092/bootstrap]: 172.16.1.140:9092/bootstrap: Connection closed
%3|1528341132.429|ERROR|rdkafka#consumer-1| [thrd:172.16.1.140:9092/bootstrap]: 172.16.1.140:9092/bootstrap: Connection closed
%5|1528341132.429|FAIL|rdkafka#consumer-1| [thrd:172.16.1.139:9092/bootstrap]: 172.16.1.139:9092/bootstrap: Connection closed
%3|1528341132.429|ERROR|rdkafka#consumer-1| [thrd:172.16.1.139:9092/bootstrap]: 172.16.1.139:9092/bootstrap: Connection closed
共收到 1 条回复
kevensuu #1 · 2019-12-16 18:00:45
  1. broker 的空闲连接回收器关闭不活跃连接。

由 broker 的配置属性 connections.max.idle.ms 控制,默认是 10 分钟。

这是目前为止最常见的自发断开连接的原因。

  1. 客户端发送了一个不支持的协议请求;这可以认为是客户端的配置错误。

broker 应该记录一个关闭原因的异常日志,见 broker logs。

  1. 客户端发送一个缺陷的协议请求;这表示是客户端的一个 bug。

broker 应该记录一个关闭原因的异常日志,见 broker logs。

  1. broker 在一个无效的状态。

broker 应该记录一个关闭原因的异常日志,见 broker logs。

  1. TCP 网关/负载均衡器/防火墙 会话超时。

尝试在客户端开启 TCP keep-alives,通过设置 socket.keepalive.enable 为 true。

  1. 由于 TCP 关闭不能发信号给远程对等方关闭的原因,客户端无法知道出了什么问题。

如果断开连接的日志越来越烦人 并且 管理员认为是连接回收器导致的,

客户端可以设置 log.connection.close 为 false 来静默所有自发断开连接的日志。

注意:不管出于什么原因连接关闭,librdkafka 会在 reconnect.backoff.jitter.ms (默认500ms) 之后自动重连。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册