Node.js 卡夫卡往返2+;秒

Node.js 卡夫卡往返2+;秒,node.js,apache-kafka,Node.js,Apache Kafka,我们观察到所有消息的高RTT Kafka延迟 这是我们的实际配置: 我们在EC2服务器上的Kubernetes集群中运行了3个Kafka代理和3个Zookeeper 我们正在使用 zookeeper+kafka配置非常标准(除了压缩。type=gzip) 我们的NodeJS微服务通过Kafka交换消息 我们观察到一些消息的RTT卡夫卡延迟很高:示例场景是service1包含卡夫卡生产者和消费者。它向卡夫卡生成message1,然后在同一服务中,消费者平均需要~3秒才能获得message1 我

我们观察到所有消息的高RTT Kafka延迟

这是我们的实际配置:

  • 我们在EC2服务器上的Kubernetes集群中运行了3个Kafka代理和3个Zookeeper
  • 我们正在使用
  • zookeeper+kafka配置非常标准(除了压缩。type=gzip)
  • 我们的NodeJS微服务通过Kafka交换消息
我们观察到一些消息的RTT卡夫卡延迟很高:示例场景是
service1
包含卡夫卡生产者和消费者。它向卡夫卡生成
message1
,然后在同一服务中,消费者平均需要~3秒才能获得
message1

我们已运行测试以排除:

  • 网络延迟
  • 与消息大小相关的延迟
  • 由我们使用的库提供的延迟(两层“来自我们”,然后,然后)
我们也尝试了建议,但没有解决问题

延迟似乎大约是1的倍数,因此我们怀疑卡夫卡方面缺少一些调优配置

我的问题是: -具有类似配置的人员是否观察到和/或解决了相同的问题?怎么用?
-我们如何进一步调查以了解是谁导致了这种高延迟?

对于后代:我认为我们实际上找到了潜在的问题

由于客户端库中的错误,我们正在为每个发送的消息重新连接kafka代理,而这种连接非常昂贵


在修复该错误后,我们仍在进行监控,以确定这确实是原因。

您运行客户端的EC2实例类型是什么?客户机是多线程的,在具有少量Cores的实例上性能不太好。客户机和代理都在m4上。大型实例,但这些实例通过Kubernetes设置共享。不过,我们并没有对CPU使用进行任何额外限制,所以如果需要,他们应该能够使用所有CPU资源。在吞吐量方面,尽管我们现在看到的是每秒数十条消息,因为这是一个早期设置。