【问题标题】:Performance issue on kafka-net Consumerkafka-net Consumer 的性能问题
【发布时间】:2015-10-02 05:36:08
【问题描述】:

使用 kafka-net .NET 消费者 API,我遇到了性能问题(类似于 Java API 上的this issue)并且看不到我是如何错误配置消费者的。我正在使用 Wurstmeister Kafka Docker 容器,在 OSX 上使用 docker-machine/virtualbox 未修改。发送消息大约需要 1ms。消耗大约需要 950 毫秒:

10:58:47,495 DEBUG [Threadpool worker] Kafka Utils [(null)]- >>>>: consuming
10:58:47,498 DEBUG [Threadpool worker] Kafka-net [(null)]- BrokerRouter: Refreshing metadata for topics: microservice.rapids
10:58:47,929 DEBUG [Threadpool worker] Kafka-net [(null)]- Received message of size: 89 From: http://192.168.99.100:9092/
10:58:48,432 DEBUG [Threadpool worker] Kafka-net [(null)]- Awaiting message from: http://192.168.99.100:9092/
10:58:48,436 DEBUG [Threadpool worker] Kafka-net [(null)]- Found address 192.168.99.100 for 192.168.99.100
10:58:48,436 DEBUG [Threadpool worker] Kafka-net [(null)]- Using address 192.168.99.100 for 192.168.99.100
10:58:48,445 DEBUG [Threadpool worker] Kafka Utils [(null)]- <<<<: consuming (950)ms

这是我构建消费者的方式。

Uri[] urls;
urls = ConfigurationManager.AppSettings ["kafka-urls"]
  .Split (',').Select (s => new Uri (s.Trim ())).ToArray ();
KafkaOptions options = new KafkaOptions (urls);
BrokerRouter router = new BrokerRouter (options);
return new Consumer (new ConsumerOptions (topic, router));

这是我能做到的最普通的。

500 毫秒似乎用于刷新元数据。这是我可以在构建 BrokerRouter 的过程中预先启动的东西,这样就不会在消费过程中完成吗?

任何其他想法为什么这需要这么长时间,或者如何避免延迟?

【问题讨论】:

  • 我最近遇到了一些问题,并通过确保我连接到的 URI 指定了协议和 IP 地址而不是主机名来管理解决这些问题,如下所示: new Uri("tcp://" + ipAddressString + ":" + port) 使用 http 作为协议对我来说从来没有用过

标签: .net performance apache-kafka kafka-consumer-api


【解决方案1】:

您可以从 Broker Router 继承并更改 GetCachedRoute 。

我认为您试图解决的问题对您来说非常具体。 如果领导者不是你期望的经纪人,它会更长。 尝试使用 PartitionWhitelist 或 MaxWaitTimeForMinimumBytes 可以使消费操作更快。

它可以在实例化缓存元数据时获取一次元数据,直到收到指示元数据已过期的错误。此错误可能有两种形式:(1) 套接字错误指示客户端无法与特定代理通信,(2) 响应请求中的错误代码指示该代理不再托管请求数据的分区.

【讨论】:

  • 这听起来更像是我的评论。也许你可以澄清一下。
猜你喜欢
  • 1970-01-01
  • 2020-01-25
  • 2019-12-29
  • 1970-01-01
  • 1970-01-01
  • 2016-02-27
  • 2016-07-01
  • 2023-03-02
  • 2014-08-22
相关资源
最近更新 更多