我们计划使用 3 个 kafka-brokers 和一个 zookeeper 节点。我们为每个主题保留了一个分区。但是我们对 5ms 以下的延迟有严格的要求。我们正在使用 reactive-kafka 客户端库https://github.com/akka/reactive-kafka。
例如,我们有一个生产者每 30 毫秒产生 128 字节(大约)数据,消费者消费者每 50 毫秒产生 128 字节(大约)数据。
我们尝试过
linger.ms=0
compression.type=none
acks=0
在生产者方面。
以 50 毫秒在消费者端轮询
但是一旦我们将生产频率提高到 1 秒,延迟就开始变得不可预测,从 1 毫秒到 70 毫秒。
那么,如果我们总是要求延迟低于 5 毫秒,那么需要在 kafka-broker、生产者和消费者级别进行哪些调整。