Заказ на доставку Redis Stream Producer

У меня есть redis stream производитель, и у меня есть вопрос о порядке записей, которые производитель отправляет в Redis.

Клиенты Redis используют TCP для выполнения команд. https://redis.io/topics/protocol#networking-layer

Сообщения могут доставляться не по порядку в multiple TCP connections. Порядок сообщения TCP?

Допустим, мой производитель выполняет команду для публикации record-A в Redis, а затем выполняет другую команду для публикации record-B. Я ожидаю, что record-A будет доставлено раньше record-B. Но они могли быть доставлены в нерабочем состоянии по характеру ПТС.

Есть ли какой-либо механизм для поддержки заказа на доставку? Я использую spring-boot-starter-data-redis-reactive (и клиент lettuce внутри) в качестве клиента Redis.


person denizg    schedule 27.04.2021    source источник
comment
Установите размер пула соединений на 1. (Конечно, это будет узким местом в многопоточной среде.)   -  person sazzad    schedule 27.04.2021
comment
но это влияет на все приложения, использующие Redis. я хочу, чтобы сообщения, опубликованные одним и тем же экземпляром производителя, были последовательными. имеет смысл обрабатывать это на стороне клиента, а не на сервере Redis.   -  person denizg    schedule 28.04.2021
comment
@sazzad, я думаю, вы говорите о свойстве spring.redis.lettuce.pool.max-active. ты прав   -  person denizg    schedule 28.04.2021