Общий ответ - это зависит, но в вашем конкретном случае, на мой взгляд, нет, по крайней мере, не так, как вы представляете
Прежде всего, я предполагаю, что операция поиска для всей коллекции имееточень мало смысла.Я полагаю, что найти вариант использования, который должен обрабатывать сотни тысяч, практически невозможно, предположим, что вы реализовали конвейер приема данных, хорошо, вы обрабатываете бесконечный поток данных, но для этого варианта использования больше я могу предложить более подходящийнапример, архитектура потокового вещания с помощью kafka с использованием весеннего облачного потока.
Проблема не в возможности обработки большого количества данных, потому что реактивный диск mongo очень производительный и настраивая механизм противодавления, вы должны сохранить свой сервер, но повторите, используя find all в потоковой передаче, настолько большой, что мало применимо, вероятноесли вам нужно обработать поток данных, промежуточное программное обеспечение для обмена сообщениями с весенним облачным потоком может быть наилучшим вариантом, если вы представите, что все нормально, ваш сервер и mogno, вероятно, будут в порядке, но ваш пользователь будет присутствовать за много часов до завершения запроса, в противном случаеесли вариант использования является линейным процессом, как было сказано выше, для обработки бесконечного потока данных весенний облачный поток может быть лучшим вариантом
ОБНОВЛЕНИЕ
С учетом варианта использованияиз пакета допустим, скажем, который должен запускаться один раз в месяц, я могу сказать, что музыка сильно меняется.
Чтение кода реактивного монго данных Spring Я вижу, что:
@NoRepositoryBean
public interface ReactiveMongoRepository<T, ID> extends ReactiveSortingRepository<T, ID>, ReactiveQueryByExampleExecutor<T> {
....
}
вместо
@NoRepositoryBean
public interface MongoRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
...
}
Ключевым моментом здесь является то, чтоАктивная версия репозитория не имеет функции разбиения на страницы. На самом деле имя базового интерфейса не содержит слова «Пейджинг», ключевым моментом здесь является технология.
В блокировке io разбиение на страницы необходимо длямодель один поток на запрос и такая схема блокировки опасны для приложения базы данных и т. д. занятое соединение и клиент для всего запроса опасны для тайм-аута, загрузки и т. д., а разделение запроса на странице может помочь не подчеркнутьслишком много системы.Но в случае отсутствия блокировки, например, поведение, которое вы подключаете к потоку данных, отличается, драйвер - это драйвер без блокировки, вы не используете классический драйвер Монго, в данных пружины используется специальный реактивный диск Монго, который оптимизирован для этой работы, ион основан на модели цикла событий.
сказал, что ключевым моментом здесь является то, что использование интенсивных моделей для автономного профессии, вероятно, не так полезно, а не безопасно, я имею в виду, что использование реактивной модели полезнодля программного обеспечения, которое в основном связано с высокой пропускной способностью и с большим трафиком, модель поддерживает высокий параллелизм.Но если ваш вариант использования является чистой коллекцией один раз в месяц, я думаю, что, вероятно, использование реактивного программирования является безопасным, так как это рассматривается для поддержки интенсивного использования, но в этом случае более подходящим является классическая модель io с пакетной блокировкой и разбиением на страницы.Ключевым моментом является то, что я полагаю, что драйвер должен быть безопасным для управления большим количеством данных в случае высокого и потокового использования, но этот подход бесполезен для случая пакетного использования
Я надеюсь, что он можетпомочь вам