- tocdepth
2
Сравнение с Kafka и RabbitMQ
На платформе представлено несколько сервисов доставки сообщений: 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 в пределах очереди |
Безопасность |
|
|
|
Транзакционность (transactional messages) |
Поддерживает |
Поддерживает |
Поддерживает |
для Dev & Test