Redis PubSub Lettuce: Как справляется обратное давление? - PullRequest
0 голосов
/ 20 февраля 2020

Мы используем RedisPubSubReactiveCommands и вызываем методы subscribe и observeChannels для салата.

В случае быстрого издателя и медленного подписчика, как обрабатывается обратное давление? Поскольку издатели и подписчики в Redis независимы, продюсера нельзя замедлить. Учитывая этот факт, какое из следующих понятий является правильным?

  1. Пропускаются ли данные на стороне приложения (салат отбрасывает их) в зависимости от OverflowStrategy, взятого observeChannels? Если это сценарий, то он весьма неэффективен, поскольку данные поступают полностью с сервера Redis до приложения, создавая ненужный сетевой трафик c.

  2. Передает ли салат латунное давление на уровень TCP на стороне клиента, тогда Приложение ничего не получит, но буферы TCP будут заполнены. Глядя на этот Github commit , кажется, что это реализация. Но что я не понимаю, что делается с предоставленным OverflowStrategy?

  3. Передается ли обратное давление полностью на сервер Redis, так что сетевой трафик c уменьшается. Это самое эффективное решение на мой взгляд. Я не думаю, что это поведение Redis / салат. Что может быть причиной того, что этого не происходит?

Может ли кто-нибудь помочь нам сформировать правильное понимание?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...