Description
I'm using the provided example code for SimpleProducer to send out 1 kB messages in an infinite loop, as fast as possible. What I see is that I can pass ~60k messages/sec to the kafka-python library, although only ~1k messages are actually sent out towards the kafka brokers. In the meantime, resident memory usage of the producer is going up steadily and without an upper bound.
I'm new to kafka-python, and I'm not familiar with its iternals, but it seems as if the communication between my client code and kafka-python was async (regardless of instantiating the SimpleProcuder with async=False), and messages were queued internally by the kafka-python library in an unlimited queue.
Is that intutition right? Is there a way to use the library in a kind of "blocking" mode where memory usage is limited?
I'm using kafka-python v0.9.2 with two v0.8.2 kafka brokers, all nodes are connected with a 10 Gbps network.