Вы задаете вопрос о производительности и не предоставляете никаких оценок ваших реальных потребностей ... поэтому позвольте мне попробовать сделать это для вас.
Сколько данных вы можете извлечь - при условии, что у вас замечательная сеть и обычная сетевая карта - максимум 100 Мбит / с, вероятно, менее 10 Мбит / с. Это дает примерно менее 10000 запросов в секунду (при условии ~ 10K пар запросов / ответов).
Может ли один поток обрабатывать такое количество данных - поиск по 100 МБ в секунду не должен быть проблемой даже для одного потока. Супер прост в прототипе / измерения.
Сколько потоков мне нужно для чтения данных - вероятно, 1 - быстрый запуск асинхронного запроса, чтение ответа ИЛИ отправка ответа в очередь для обработки выполняется быстро со скоростью 10000 элементов в секунду.
Итак, мои оценки - 1 поток для простого кода (1 + один поток на ядро), если у вас больше ядер и вы хотите параллельно выполнять обработку.