首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单一卡夫卡主题的多重消费者是缓慢的。

单一卡夫卡主题的多重消费者是缓慢的。
EN

Stack Overflow用户
提问于 2018-03-07 11:33:16
回答 1查看 1.6K关注 0票数 2

我在3台服务器上有卡夫卡集群。有一个有一个分区和3个副本的主题。平均信息大约是200字节。

我希望多个使用者(即具有不同的组I)从主题中读取数据,因此每个使用者都接收所有数据。

问题是每一个新的消费者比以前慢,所以在增加了大约20个消费者之后,新的消费者非常慢。

下表显示了问题:

代码语言:javascript
复制
topic        consumer    current offset
topic-0      group-1     4191232
topic-0      group-4     3860979
topic-0      group-2     3799224
topic-0      group-12    2112518
topic-0      group-7     1984491
topic-0      group-3     1842349
topic-0      group-6     1695504
topic-0      group-11    1388133
topic-0      group-5     1383794
topic-0      group-19    1242424
topic-0      group-16    941960 
topic-0      group-14    876551 
topic-0      group-22    837359 
topic-0      group-21    828698 
topic-0      group-13    811273 
topic-0      group-26    716414 
topic-0      group-9     699175 
topic-0      group-18    621772 
topic-0      group-15    617520 
topic-0      group-17    613233 
topic-0      group-10    388891 
topic-0      group-8     328258 
topic-0      group-24    233805 
topic-0      group-29    131299 
topic-0      group-23    84658  
topic-0      group-20    80492  
topic-0      group-27    63527  
topic-0      group-25    50720  
topic-0      group-28    46474  
topic-0      group-30    37958  

这些消费者几乎是同时启动的,这个状态在大约20秒后就被捕获了。第1组读419万条记录,30组只读37958条记录。

消费者的分布因运行而异,但总有慢的消费者。

我试着在专用服务器上运行消费者,而在Kafka集群上本地情况并没有改变。

对慢速消费者的日志消息显示,往返时间很高,有时甚至超过一秒钟。

代码语言:javascript
复制
kafka3:9092/3: Sent FetchRequest (v4, 93 bytes @ 0, CorrId 36322)
kafka3:9092/3: Received FetchResponse (v4, 1048636 bytes, CorrId 36322, rtt 747.24ms)

这个问题与卡夫卡游戏机消费者和图书馆员有关,所以我认为经纪人有问题。

我已经将代理信任中的num.io.threads和num.network.threads参数设置为32,这没有帮助。其他参数是默认的。

任何帮助都将不胜感激。

更新1

代理上的慢速消费者日志消息显示,这个问题肯定在代理端:

代码语言:javascript
复制
[2018-03-07 12:58:42,787] DEBUG Completed request:RequestHeader(apiKey=OFFSET_COMMIT, apiVersion=1, clientId=rdkafka, correlationId=376) -- {group_id=group-12,generation_id=13,member_id=rdkafka-5c08ffd4,topics=[{topic=test-topic,partitions=[{partition=0,offset=651909,timestamp=-1,metadata=}]}]},response:{responses=[{topic=test-topic,partition_responses=[{partition=0,error_code=0}]}]} from connection kafka3:9092-client12:37884-10;totalTime:1547.433,requestQueueTime:0.104,localTime:0.631,remoteTime:1546.48,throttleTime:0.019,responseQueueTime:0.046,sendTime:0.15,securityProtocol:PLAINTEXT,principal:User:ANONYMOUS,listener:PLAINTEXT (kafka.request.logger)

remoteTime是1.5秒

因此,这里的问题是,我应该在哪里看到经纪人一方来解决问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-12 11:13:27

问题是消费者占用代理服务器上的所有可用网络。

卡夫卡可能会按一定的顺序向消费者发送回复(据我所见,通过连接时间)。所以我们有了一些非常快的消费者,还有一群速度合理的消费者。其他的消费者是缓慢的,只有切断“快”的消费者才能帮助他们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49150890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档