tocdepth

2

Сравнение с RabbitMQ и RocketMQ

На платформе представлено несколько сервисов доставки сообщений: DMS for Kafka, DMS for RabbitMQ и DMS for RocketMQ. Ниже приведена сравнительная таблица возможностей Kafka, RabbitMQ и RocketMQ, которая поможет выбрать сервис, наиболее подходящий для ваших задач.

Функциональность

RocketMQ

Kafka

RabbitMQ

Очереди с приоритетами (priority queue)

Не поддерживает

Не поддерживает

Поддерживает. Рекомендуется устанавливать значение приоритетности от 0 до 10.

Отложенные очереди (delayed queue)

Поддерживает

Не поддерживает

Не поддерживает

Очереди недоставленных сообщений (dead letter queue)

Поддерживает

Не поддерживает

Поддерживает

Повторная отправка сообщений (message retry)

Поддерживает

Не поддерживает

Не поддерживает

Способ получения сообщений (retrieval mode)

Извлекаются получателем (pull-модель) и отправляются брокером (push-модель)

Извлекаются получателем (pull-модель)

Извлекаются получателем (pull-модель) и отправляются брокером (push-модель)

Передача сообщения нескольким получателям (message broadcasting)

Поддерживает

Поддерживает

Поддерживает

Отслеживание сообщений (message tracking)

Поддерживает

Поддерживает отслеживание смещения и временных меток.

Не поддерживает. Как только получение сообщения подтверждается, RabbitMQ получает уведомление о том, что сообщение можно удалить.

Накопление сообщений (message accumulation)

Поддерживает

Поддерживает. Имеет большую пропускную способность, из-за чего производительнее других систем передачи сообщений.

Поддерживает

Сохранность сообщений (persistence)

Поддерживает

Поддерживает

Поддерживает

Трассировка сообщений (message tracing)

Поддерживает

Не поддерживает

Не поддерживает

Фильтрация сообщений (message filtering)

Поддерживает

Поддерживает

Не поддерживает

Мультитенантность (multi-tenancy)

Поддерживает

Не поддерживает

Поддерживает

Поддержка нескольких протоколов (multi-protocol)

Совместим с RocketMQ.

Поддерживает только Apache Kafka.

RabbitMQ основан на протоколе AMQP, также поддерживает протоколы MQTT и STOMP.

Поддержка нескольких языков (multi-language)

Поддерживает клиенты на нескольких языках программирования.

Kafka написан на Scala и Java и поддерживает клиенты на нескольких языках программирования.

RabbitMQ написан на Erlang и поддерживает клиенты на нескольких языках программирования.

Троттлинг (throttling)

Поддержка запланирована.

Поддерживает троттлинг как на уровне отправителя и/или получателя, так и за счет собственных механизмов.

Поддерживает троттлинг как на уровне отправителя и/или получателя, так и за счет собственных механизмов.

Доставка сообщений по порядку (ordered message delivery)

FIFO в пределах очереди

FIFO на уровне партиции

FIFO в пределах очереди

Безопасность

  • SSL для шифрования канала

  • IAM для аутентификации и управления доступом к сервису

  • ACL для аутентификации клиентов и контроля действий

  • SSL для шифрования канала

  • IAM для аутентификации и управления доступом к сервису

  • ACL для аутентификации клиентов и контроля действий

  • SASL-аутентификацию клиента

  • SSL для шифрования канала

  • IAM для аутентификации и управления доступом к сервису

  • ACL для аутентификации клиентов и контроля действий

Транзакционность (transactional messages)

Поддерживает

Поддерживает

Поддерживает

Запустили Evolution free tier
для Dev & Test
Получить