kafka集群YGC问题排查

1. 介绍

最近kafka集群总是有偶发的YGC问题。今天上午花了点时间好好研究了下。

2. 现状

我们的kafka集群用的是kafka官方的推荐配置。server配置参考kafka官方文档第六章来配置。另外我们的硬件环境比Linkedin用的机器还好点,40核,60G内存。

3. YGC问题回顾

YGC出问题后可以查看下kafka服务器上的GC日志,在KAFKA_HOME/logs/kafkaServer-gc.log

可以看到GC日志:

spark streaming消费kafka消息的两种方式对比

1. 介绍

spark streaming去消费kafka消息相信是一种比较常见的情景。一般来说获取kafka消息的spark streaming流有以下两种:

基于Receiver的流(传统老方法)

Direct Stream(推荐的新方法)

本文主要参考官方文档Spark Streaming + Kafka Integration Guide (Kafka broker version 0.8.2.1 or higher)和Spark Streaming + Kafka Integration Guide (Kafka broker version 0.10.0 or......

关于设计前瞻性

公司应用kafka也有一段时间,或多或少都有些问题暴露出来。例如,一开始设计分区数的时候过于保守,导致后续client消费成瓶颈时没法通过增加一个消费者组的线程来增加消费速度了。

这个经验教会我一个道理:

使用一个新的平台也好,中间件也好。对于其性能和瓶颈应该有个前瞻性的规划,这个很重要。例如kafka在设计分区数的时候,应该仔细考虑当前消费者线程的消费能力。考虑未来数据规模增长后,消费者必然需要消费更多的数据从而保证不造成数据堆积。即消费者和生产者之间要保持平衡,不能让消费的比生产的慢,从而影响应用。这个前瞻性的规划应该是较为详细的,可控的。

数据规模的增长,消费者线......