您的位置:首页 > 其它

kafka场景测试(1)--消费者长时间消费

2016-12-29 00:00 375 查看
摘要: 本文主要记录kafka消费者在长时间消费场景的一些测试情况

一、测试环境

版本:kafka_2.11-0.10.1.0

客户端版本:0.10.1.0

集群节点: 3

Topic名称:test-order-topic

Topic详情:

Topic: test-order-topic PartitionCount:3 ReplicationFactor:2 Configs:

Topic: test-order-topic Partition: 0 Leader: 0 Replicas: 0,1 Isr: 0,1

Topic: test-order-topic Partition: 1 Leader: 1 Replicas: 1,2 Isr: 1,2

Topic: test-order-topic Partition: 2 Leader: 2 Replicas: 2,0 Isr: 2,0

二、Auto Commit 自动提交

消费者关键参数:

enable.auto.commit:true

Auto.commit.interval.ms:1000

Max.poll.interval.ms = 60 * 1000 (default = 300000)

Consumer.poll(100)

测试情况:

并发
处理阻塞线程
消息发送频率
阻塞时间
消息总数
重复消费
消息丢失
2
1
10ms
3min
20000
267
不丢失
2
1
10ms
3min
20000
14
不丢失
2
1
10ms
3min
20000
64
不丢失
结果:当阻塞时间超过参数Max.poll.interval.ms设置的时间,当前consumer会被移除consumer group;consumer group会rebalance。当阻塞时间到期后,当前consumer会重连broker进行消费。

三、Sync Commit 同步提交

消费者关键参数:

enable.auto.commit:false

Auto.commit.interval.ms:1000

Max.poll.interval.ms = 60 * 1000 (default = 300000)

Consumer.poll(100)

测试情况:

并发
处理阻塞线程
阻塞线程是否继续执行
消息发送频率
阻塞时间
消息总数
重复消费
消息丢失
2
1

10ms
3min
20000
1
不丢失
2
1

10ms
3min
20000
1
不丢失
2
1

10ms
3min
20000
1
不丢失
结果:在sync commit模式下,当阻塞时间超过参数Max.poll.interval.ms设置的时间,阻塞的线程恢复之后会抛出CommitFailedException异常,不会继续消费;需要捕获并处理异常,即可继续消费。

四、Async Commit 异步提交

消费者关键参数:

enable.auto.commit:false

Auto.commit.interval.ms:1000

Max.poll.interval.ms = 60 * 1000 (default = 300000)

Consumer.poll(100)

测试情况:

并发
处理阻塞线程
阻塞线程是否继续执行
消息发送频率
阻塞时间
消息总数
重复消费
消息丢失
2
1

10ms
3min
20000
1
不丢失
2
1

10ms
3min
20000
1
不丢失
2
1

10ms
3min
20000
1
不丢失
结果:在sync commit模式下,当阻塞时间超过参数Max.poll.interval.ms设置的时间,阻塞的线程恢复之后会抛出CommitFailedException异常,会重连继续消费。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息