Amazon SQS - это полностью управляемая служба очередей сообщений, которая позволяет разделять и масштабировать микросервисы, распределенные системы и бессерверные приложения.

Amazon Kinesis - это управляемая масштабируемая служба, которая позволяет обрабатывать потоковые большие объемы данных в реальном времени.

Когда использовать Kinesis?

  1. Kinesis используется, когда у нас есть несколько потребителей, одновременно считывающих данные из потока.
  2. Используется для сбора данных в реальном времени, таких как журналы, данные о событиях, поток данных IoT.
  3. Когда мы хотим, чтобы сообщения были прочитаны несколькими потребителями в разное время. Различные приложения могут работать с одним и тем же набором сообщений в разное время.
  4. Когда мы хотим, чтобы похожие данные были агрегированы или подсчитаны, то есть когда мы хотим, чтобы похожие данные обрабатывались определенным хостом. Для этого мы можем использовать механизм сегментирования Kinesis. Все записи с одинаковыми ключами попадают в один и тот же шард.

Когда использовать SQS?

  1. Когда нам нужен только один потребитель для обработки данных в очереди. После успешного чтения и обработки данные удаляются из очереди.
  2. Чтобы отделить службы, когда мы знаем, что может быть задержка в обработке задачи, то есть для асинхронных задач.
  3. Когда мы хотим, чтобы сообщения были прочитаны потребителями только один раз и больше не заботились о них.

Есть аргументы, что вместо использования Kinesis мы можем использовать SNS с SQS. Другими словами, если нам нужно, чтобы наши сообщения отправлялись нескольким потребителям, мы можем заставить SNS отправлять эти сообщения нескольким SQS (по одному для каждого потребителя). Однако это не будет служить цели, когда потребуются потоковая передача в реальном времени или аналитика.

На этом все закончилось. Теперь мы знаем, когда какой сервис использовать. Спасибо за прочтение. Следите за обновлениями, чтобы увидеть больше статей.

Больше контента на plainenglish.io