1、本地网络和经过一层路由自然是有差距。
2、消费者不建议和kafka机器共用机器,虽然网络消耗会变快但资源争抢,磁盘、cpu压力也变大。
3、消费者消费的分区默认是随机分配的,你也可以指定消费哪个分区(不建议手动)。
消费的慢,取决于消费者的能力。
consumer-154-8e411013-4bfa-4dd3 这个消费者分别消费了6和7分区的消息。另外一个消费者onsumer-147-b04....-52ce.消费分区2、3.
你可以算下每秒消费多少条消息,其他正常的消费多少,如果它们俩个值接近,说明它们其实处理的速度是一样,那就有可能在某一时刻,这两个消费者出现了阻塞,但是你产生的消息源源不断,等恢复的时候你看到的现象就是这样。
另外,如果这2个速率差距巨大,你就定位这2个消费者部署的机器位置,cpu、和网络情况(也或者kafka慢的这几个分区在哪台物理机器上,正好它慢)。
主要代码如下:
while(true){
ConsumerRecords
if (!records.isEmpty()) {
for (ConsumerRecord
dataList.add(record.value());
}
dataConsumer.accept(dataList);
dataList.clear();
kafkaConsumer.commitSync();
}
}