Ответ
Backpressure в RxJava/Flow решается несколькими стратегиями:
- BUFFER - накапливает элементы при перегрузке (может привести к OOM)
Flowable.range(1, 1_000_000)
.onBackpressureBuffer()
- DROP - отбрасывает новые элементы при перегрузке
Flowable.range(1, 1_000_000)
.onBackpressureDrop()
- LATEST - сохраняет только последний элемент
Flowable.range(1, 1_000_000)
.onBackpressureLatest()
- ERROR - выбрасывает MissingBackpressureException
Flowable.range(1, 1_000_000)
.onBackpressureError()
В Kotlin Flow используется buffer(), conflate(), collectLatest с аналогичной логикой. Выбор стратегии зависит от требований к данным и скорости обработки.