Подойдет ли Redis Streams для этого сценария? [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Подойдет ли Redis Streams для этого сценария? [закрыто]

Сообщение Anonymous »

Мой сценарий —

[*]Есть небольшой набор производителей (< 5), каждый из которых создает сообщение фиксированной длины длиной ~20 символов, что только одного типа.

[*]Максимальная общая скорость создания сообщений составляет 3 сообщения в секунду для всех производителей.

[*]Эти сообщения могут читать до 4000 потребителей. Каждый потребитель должен прочитать каждое сообщение хотя бы один раз. Обработка сообщений обходится очень дешево.

[*][Порядок] Все сообщения необходимо читать в том порядке, в котором они опубликованы.

[*]И производители, и потребители работают в разных кластерах AWS ECS в автоматически управляемом облачном развертывании. Поэтому ожидается, что их масштабирование будет увеличено или уменьшено в любое время.

[*][Сценарий сбоя] Когда потребительский поток (задача ECS) выходит из строя , существует две возможности: Неустранимый сбой (например, любая фатальная ошибка, приводящая к прекращению задачи ECS) или устранимый сбой (поток подписчика приостановлен/умер, максимальное количество повторных попыток соединение не удалось и т. д., но задача ECS все еще работоспособен).
  • Устранимые сбои -> Либо частота этого сценария сводится к минимуму до 0,01 % или меньше, и мы создаем вручную СОП для уничтожения задачи ECS, в которой случаются неудачи. Или если частота не может быть гарантирована < 0,01 %, тогда нам нужен механизм, позволяющий потребителю вернуться в Интернет и прочитать все пропущенные сообщения.
[*]Мне не нужно сохранять какое-либо сообщение, как только оно будет прочитано всеми потребителями.

< /ol>
Примечание:
  • Автоматическое масштабирование потребительских приложений настроено на максимальную общую загрузку ЦП на уровне 60–70 %, поэтому мы не ожидаем, что загрузка ЦП будет постоянно превышать 70 %.
  • Любая неспособность потребителя обработать сообщение будет идентифицироваться с помощью сигналов тревоги и обрабатываться вручную (поскольку ожидается, что это будет очень редко).
  • Любая неспособность потребителя обработать сообщение будет идентифицироваться с помощью сигналов тревоги и обрабатываться вручную (поскольку ожидается, что это будет очень редко).
  • p>
Подходят ли потоки Redis для моего сценария, учитывая, что я могу получить ACK от потребителей и на основе этого решить, было ли сообщение успешно опубликовано?

Подробнее здесь: https://stackoverflow.com/questions/792 ... nario-well
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»