Нужны советы о том, как создать потокобезопасную очередь в fs2 (Scala) - PullRequest
0 голосов
/ 29 сентября 2018

Мне нужно реализовать микросервис, который загружает тонну данных в память при запуске и делает эти данные доступными через HTTP GET.Я рассматривал fs2 как вариант, чтобы сделать данные доступными для веб-слоя через fs2.Queue.

Меня беспокоит то, что если я использую очередь synchronous из fs2, моя производительность обслуживания данных может ухудшиться из-за характера блокировки очереди synchronous (при операции enqueue).

Это действительная проблема?Кроме того, какие Queue абстракции (в fs2) являются потокобезопасными?то есть: можно ли передать какую-либо очередь нескольким потокам, и могут ли они безопасно вывести элементы из очереди, если только один из них не выберет один и тот же элемент из очереди?

РЕДАКТИРОВАТЬ: вариант использования: 10Mil recordsобслуживается потоком -> многие рабочие (потоки) выбирают работу из потока через конечную точку HTTP (GET)

...