Функция | RocketMQ | Kafka | RabbitMQ |
|---|---|---|---|
Очередь с приоритетом | Не поддерживается | Не поддерживается | Поддерживается. Рекомендуется установить приоритет в диапазоне 0–255. |
Отложенная очередь | Поддерживается | Не поддерживается | Поддерживается |
Очередь отложенных сообщений | Поддерживается | Не поддерживается | Поддерживается |
Повтор сообщения | Поддерживается | Не поддерживается | Не поддерживается |
Режим получения | Pull‑based и push‑based | Pull‑based | Pull‑based и push‑based |
Трансляция сообщений | Поддерживается | Поддерживается | Поддерживается |
Отслеживание сообщений | Поддерживается | Поддерживает отслеживание смещения и метки времени. | Не поддерживается. После подтверждения получения сообщения RabbitMQ будет уведомлен, что сообщение может быть удалено. |
Накопление сообщений | Поддерживается | Обеспечивает более высокую производительность накопления, чем RabbitMQ, благодаря высокой пропускной способности. | Поддерживается |
Устойчивость | Поддерживается | Поддерживается | Поддерживается |
Трассировка сообщений | Поддерживается | Не поддерживается | Поддерживается через firehose feature или плагин rabbitmq_tracing. Однако rabbitmq_tracing снижает производительность и должен использоваться только для устранения неполадок. |
Фильтрация сообщений | Поддерживается | Поддерживается | Не поддерживается, но может быть инкапсулировано. |
Мультиарендность | Поддерживается | Поддерживается | Поддерживается |
Мультипротокольность | Совместимо с RocketMQ. | Поддерживает только Apache Kafka. | RabbitMQ основан на AMQP. |
Многоязычность | Поддерживает клиентов на нескольких языках программирования. | Kafka написан на Scala и Java и поддерживает клиентов на нескольких языках программирования. | Поддерживает клиентов на нескольких языках программирования. |
Throttling | RocketMQ 5.x поддерживает контроль трафика на основе спецификаций инстанса. | Поддерживает throttling для продюсеров или консьюмеров, пользователей и топиков. | Поддерживает throttling на основе кредитов для продюсеров, механизм, который инициирует защиту изнутри. |
Ordered message delivery | Порядок сообщений сохраняется в пределах очереди. | Поддерживает FIFO на уровне раздела. | Поддерживает FIFO только для однопоточной очереди сообщений без расширенных функций, таких как отложенные очереди или очереди с приоритетом. |
Security | Поддерживает аутентификацию SSL. | Поддерживает аутентификацию SSL и SASL, а также контроль прав чтения/записи. | Поддерживает аутентификацию SSL. |
Транзакционные сообщения | Поддерживается | Поддерживается | Поддерживается. |