Нужны советы о том, как создать потокобезопасную очередь в fs2 (Scala)
Мне нужно реализовать микросервис, который загружает тонну данных в память при запуске и делает эти данные доступными через HTTP GET. Я смотрел на fs2 как вариант, чтобы сделать данные доступными для веб-слоя через fs2.Queue
,
Меня беспокоит то, что если я использую synchronous
очередь из fs2
моя производительность обслуживания данных может быть затронута отрицательно из-за synchronous
очередь (вкл enqueue
операция).
Это действительная проблема? Кроме того, который Queue
абстракции (в fs2) поточно-ориентированы? то есть: я могу передать любую Очередь нескольким потокам, и могут ли они все безопасно вывести элементы из очереди без того, чтобы более одного из них вынули один и тот же элемент из очереди?
РЕДАКТИРОВАТЬ: Вариант использования: 10Mil записей, обслуживаемых потоком -> много рабочих (потоков), выбирающих работу из потока через конечную точку HTTP (GET)