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