Мы разрабатываем приложение, которое требует, чтобы сообщения с одним и тем же ключом обрабатывались строго последовательно.Кроме того, по соображениям производительности / пропускной способности нам необходимо ввести параллельную обработку.
Распараллеливание - это просто - у нас может быть один поток, получающий сообщения, вычисляющий хэш ключа и использующий хэш% числа рабочихраспределить сообщение в определенной очереди блокировки с работником на другой стороне.Это гарантирует, что сообщения с одним и тем же ключом отправляются одному и тому же работнику, поэтому упорядочение гарантируется - до тех пор, пока получатель получает сообщения в порядке.
Вопросы:
Влияет ли увеличение ioThreads и listenerThreads (по умолчанию = 1) на производительность, т. Е. Следует ли ожидать, что будет проходить больше сообщений, или ввод-вывод всегда будет ограничивающим фактором?
Если мы увеличим их, мы все еще гарантируем заказ?
Документация Pulsar не ясна ...