之前用单线程输出,每秒512字节能有三五万。然后我改成多线程,每个线程都有自己的生产者实例。完全独立的。结果输出是两三万,平均每个线程五六千。一点都没变多。
我把多线程版本的其他线程sleep,让一个线程输出,它仍然是五六千。
我把之前的单线程版本跑起来,还是三五万。
都跑在同一个机器上,配置都是一样的,Kafka的server是另一个机器里的docker。
多线程版本我确认了没有因为锁之类的串行。完全不相干的多个线程,各自有各自的源头数据。
为啥我相信多线程吞吐量会提高呢?因为我用librdkafka自带的例子程序,跑起来两份。其中每一份都可以输出三五万。这说明多线程至少应该达到七八万的水平,才合理。
各位,这回事什么原因呢?
--
FROM 114.249.31.*