Я нашел эту статью , когда работал над подсчетом производительности моего производителя. В ней Джей Крепс говорит, что для одного продюсера потока и 3x синхронной репликации разделов он получает 421 823 записей в секунду. Его записи по 100 байт каждый, у него 6 разделов и 6 брокеров. Он также использует посылку на основе обратного вызова, что означает, что он может гарантировать порядок сообщений.
Я использую Kafka в качестве службы с одним брокером, 6 разделов, 1x репликация. Я отправляю записи примерно одинакового размера и получаю 23 записи в секунду. В отличие от Джея, я использую схему реестра для сериализации avro. Я пробовал все типы отправки, предоставляемые API Kafka Producer:
- звонит
.get
на будущее
- отправка сообщений с обратным вызовом
- отправка сообщений без обратного вызова
Я даже близко не приблизился к номеру, указанному выше. Я хочу гарантировать порядок сообщений, поэтому я хотел бы, чтобы хотя бы ответный звонок передавался вместе с записью.
Я знаю, что преследовать его тест будет сложно, и это не моя цель. Я просто чувствую, что есть что-то фундаментальное, чего мне не хватает Могу ли я попросить несколько предложений? Я предоставлю столько дополнительного контекста, сколько необходимо.