Flink向开启SSL的Kafka集群写入响应较慢,如何提升处理速度?

林开心 发表于: 2023-02-14   最后更新时间: 2023-02-15 09:44:45   1,094 游览

1、通过Flink向开启SSL的Kafka集群写入数据,服务器之间没有延迟,通过日志查看有以下错误。

org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer [] - Error while sending record to Kafka: The server disconnected before a response was received.

org.apache.kafka.common.errors.NetworkException: The server disconnected before a response was received.

org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer [] - Error while sending record to Kafka: Expiring 20 record(s) for RESULT:5151963 ms has passed since batch creation

org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer [] - Error while sending record to Kafka: Producer is closed forcefully.

2、在使用 PLAINTEXT 和 SASL_PLAINTEXT 时,未出现该问题。
3、Kafka集群状态良好,IO使用率仅30%。

发表于 2023-02-14

SSL相当于把消息进行了加解,服务器解密的过程,这个还是很消耗性能的,这个只能增加服务器的配置或者对参数继续调优,没有什么其他的办法。

林开心 -> 半兽人 1年前

关闭ack和设置更长的request.timeout.ms会有效果吗?
broker端的参数有哪些可以优化的呢?

半兽人 -> 林开心 1年前

有的。
1、acks=0 如果设置为0,那么生产者将不等待任何消息确认。
2、你主要的原因排队时间太长,消息都过期了,加大 request.timeout.ms,max.request.size,request.timeout.ms 都会改善,具体参数介绍参考Kafka Producer配置

林开心 -> 半兽人 1年前

好的,我再测试一下

如果你的Flink应用程序连接到开启了SSL的Kafka集群,写入响应较慢,可能有以下一些优化策略可以尝试:

优化SSL连接配置:优化SSL连接配置可以减少连接的握手时间,提高连接的效率。具体可以参考Kafka官方文档,根据自己的场景选择合适的SSL配置选项。

调整Kafka Producer配置:Flink使用的Kafka Producer默认的batch.size为16KB,如果数据量较小可能会导致网络传输时间增加,可以考虑调整为更小的值,例如2KB或4KB,同时也可以调整linger.ms来减少请求的数量。

增加Kafka的分区数:如果Kafka集群只有一个分区,写入的数据会串行化处理,如果数据量较大会导致写入速度慢。增加Kafka的分区数可以并行化写入,提高写入速度。

使用异步IO:可以尝试使用异步IO来写入Kafka,这样可以在写入数据的同时处理其他任务,提高整体性能。

调整Flink的并行度:可以考虑调整Flink的并行度,增加并行度可以并行化写入Kafka,提高写入速度。但需要根据具体的场景进行优化,过多的并行度也可能会导致性能下降。

使用本地Kafka:如果可以的话,可以将Kafka集群部署在与Flink相同的机器上,这样可以减少网络传输时间,提高写入速度。

需要注意的是,每种优化策略的效果都取决于具体的场景,因此需要结合实际情况进行优化。同时,在优化之前,也需要先确定瓶颈在哪里,可以通过监控系统性能指标来找到瓶颈。

你的答案

查看kafka相关的其他问题或提一个您自己的问题