Open Mukthar-am opened 7 months ago
I can't see anything immediately wrong with the code. Is it possible that the producer delivery channel is getting too full and causing some sort of memory issue? You could try draining it from within a goroutine rather than later. What is the number of brokers in your test cluster, and what are the resource limits on the machine you're running this program on?
Is it possible to profile the cpu/memory usage of the program as it runs?
Description
I am running a golang based webserver which is a ingestion gateway for Kafka. This web service, receives HTTP connections from different clients and ingests into AWS MSK.
In my case, I have implemented batching, trying to ingest a batch of 50 messages where each message is of 1 KB and using async producer of golang confluent kafka.
My goal is to have higher ingestion rates so while perf testing, I run into the below error after a few min's. I could see that the ingestion rate pumps up to as high as 500 messages per second but later golang server crashes.
*** Error
Failed to create thread: Resource temporarily unavailable (11)
How to reproduce
func AsyncBatchProduce(messages [][]byte, topic string) { LOG.Debug("Init async BATCH kafka producer with producer configs", zap.Any("BrokerConfigs", kConf))
}
Checklist
Please provide the following information:
LibraryVersion()
): github.com/confluentinc/confluent-kafka-go v1.9.2 and librdkafka not part of my projectConfigMap{...}
"debug": ".."
as necessary)