Я прочитал документацию по apache kafka, но мне не удалось найти пример того, сколько разделов мне следует использовать в любом сценарии.
Например, допустим, что у меня 5000 сообщений / записей в минуту, для этой ситуации сколько разделов мне нужно иметь (или вы рекомендуете)?
или есть ли способ это вычислить? может быть, есть таблица значений, к которой я могу обратиться?
Не существует подходящего количества разделов по умолчанию, и вам следует предоставить дополнительную информацию.
Это зависит от размера сообщений, вашей платформы и модели использования. Может ли сервер хранить все сообщения с набором хранения? в противном случае вам следует разделить данные на несколько разделов для экземпляров. Тот же случай, если вам нужна более высокая пропускная способность, или если вам нужно обрабатывать сообщения последовательно или данные могут потребляться без каких-либо особых ограничений на порядок. Также существует вопрос о задержке, которую вы ожидаете для получения сообщения. Если ваши сообщения имеют значение, вам нужно будет добавить реплики для каждого раздела и подтвердить все сообщения на всех репликах, чтобы снизить пропускную способность.
Вам также необходимо указать, относится ли указанное вами число к произведенным или потребленным сообщениям.
5000 сообщений в минуту - это очень мало, учитывая, что Kafka создана для быстрой обработки сообщений. Я легко достиг 10000 сообщений в секунду, вводимых на сервер размером 1 КБ.
5000 сообщений в минуту составляют 84 сообщения в секунду, поэтому, если один экземпляр вашего потребительского приложения может обработать это количество, вы в порядке, иначе вы можете добавить разделы и запустить несколько потребительских приложений параллельно, каждое из которых будет отвечать за раздел.
Confluent Inc имеет опубликовано сообщение в блоге о том, как выбрать количество разделов (а также количество реплик).