从服务器接收“assignedallocated”事件并因此接收消息的时间(大约10-15秒)。一开始以为是有自动创建topic的开销,但是不管消费者的topic/consumergroup是否已经存在,时间都是一样的。我用这个配置启动我的消费者,其余代码与汇合的高级消费者示例中的代码相同:ms",60000},{"fetch.wait.max.ms",10},{"bootstrap.servers",config.BrokerList},{"enable.auto.commit",config.AutoCommit},{"socket.blocking.max.ms",1},{"fetch.error.backoff.ms",1},{"socket.nagle.disable",true},{"auto.commit.interval.ms",5000},{“default.topic.config”,newDictionary(){{“auto.offset.reset”,“smallest”}}}};kafka集群由远程数据中心的3台中低端机器组成,默认设置。是否有我可以调整以减少启动时间的代理或客户端设置?编辑:使用Assign而不是Subscribe导致我自己分配分区,启动时间约为2sKafka消费者组按设计工作-您看到的延迟是组协调器(在集群上,而不是客户端)等待任何现有/以前的会话时间在为所有具有活动连接的消费者分配分区之前,允许任何其他消费者启动同一组。事实上,如果你足够快地重启你的测试消费者,你会看到延迟跳到将近30秒,因为session.timeout.ms的默认值是30000并且集群仍然没有“注意到”前一个消费者已经直到启动此超时为止。如果您在两次重启之间更改group.id,您将看到延迟大幅下降,因为集群不会等待属于其他组的现有消费者。最后,尝试干净地退出您的消费者(调用Unsubscribe()并确保消费者已被处置),然后再重新启动它。似乎可以将session.timeout.ms降低到6000以减少任何现有消费者组连接的超时,但事实并非如此。即使一切都“干净”地开始,看起来您仍然有长达7秒的延迟(我猜测标准连接设置加上等待同一组中的任何其他消费者开始)。如果您使用Assign()而不是Subscribe(),那么您选择自己将分区分配给您的消费者,并且自动组平衡不适用。以上就是C#学习教程:Kafkaconsumer启动延时整合了dotnet分享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
