Облачная платформаAdvanced

Сравнение Kafka, RabbitMQ и RocketMQ

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Таблица 1 Функции

Функция

RocketMQ

Kafka

RabbitMQ

Очередь с приоритетом

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

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

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

Отложенная очередь

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

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

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

Очередь отложенных сообщений

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

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

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

Повтор сообщения

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

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

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

Режим получения

Pull-based и push-based

Pull-based

Pull-based и push-based

Трансляция сообщений

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

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

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

Отслеживание сообщений

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

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

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

Накопление сообщений

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

Обеспечивает более высокую производительность накопления, чем RabbitMQ, благодаря высокой пропускной способности.

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

Устойчивость

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

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

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

Трассировка сообщений

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

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

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

через firehose feature или rabbitmq_tracing plugin. Однако rabbitmq_tracing снижает производительность и должен использоваться только для устранения неполадок.

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

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

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

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

Мультиарендность

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

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

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

Мультипротокольный

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

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

RabbitMQ основан на AMQP.

Многоязычный

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

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

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

Троттлинг

RocketMQ 5.x поддерживает контроль трафика на основе спецификаций инстанса.

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

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

Доставка сообщений в порядке

Порядок сообщений сохраняется внутри очереди.

Поддерживает FIFO на уровне раздела.

Поддерживает FIFO только для однопоточной очереди сообщений без расширенных функций, таких как отложенные очереди или очереди с приоритетом.

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

Поддерживает аутентификацию SSL.

Поддерживает аутентификацию SSL и SASL, а также контроль прав чтения/записи.

Поддерживает аутентификацию SSL.

Транзакционные сообщения

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

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

Поддерживается.