Один активный потребитель
Узнайте, как функция Single Active Consumer обеспечивает упорядоченную обработку, направляя все сообщения одному потребителю за раз и автоматически переключаясь на резервных потребителей.
«Один активный потребитель» — бесплатный урок RabbitMQ Messaging & Async Systems на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения RabbitMQ Messaging & Async Systems, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс RabbitMQ Messaging & Async Systems содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Ordering vs Parallelism
Competing consumers boost throughput but break strict ordering: messages spread across workers can finish out of order.
Some workflows need both a hot standby and guaranteed sequence.
What Is Single Active Consumer?
Single Active Consumer (SAC) ensures only one consumer receives messages from a queue at a time, even if many consumers subscribe.
Others wait in line as standbys.
Enabling SAC
Set the x-single-active-consumer argument to true when declaring the queue.
channel.queue_declare(
queue='ordered-tasks',
durable=True,
arguments={'x-single-active-consumer': True}
)Automatic Failover
If the active consumer disconnects or its channel closes, RabbitMQ promotes the next registered consumer to active automatically.
This gives high availability without losing ordering.
Registration Order
Consumers become active in the order they registered. The first to subscribe becomes active; the rest queue up as standbys.
SAC vs Exclusive Consumer
- Exclusive: only one consumer is even allowed; others get an error
- SAC: many can subscribe, but only one is active; others stand by for failover
Subscribing as a Standby
Standby consumers subscribe normally. They simply receive no messages until promoted.
channel.basic_consume(queue='ordered-tasks', on_message_callback=handle)Guaranteed Order
Because only one consumer processes at a time, messages are handled in FIFO order as long as the consumer acks sequentially and prefetch keeps the pipeline tidy.
Throughput Trade-off
SAC sacrifices parallelism: throughput is bound to a single consumer. Use it only when ordering matters more than raw speed.
Inspecting the Active Consumer
The management UI and CLI mark which consumer is active. This helps verify failover behaved as expected during incidents.
Good Use Cases
- Sequential state machines
- Per-entity event streams that must stay ordered
- Workflows needing a warm standby worker
Quick Check
Check your understanding of SAC.
Recap
Single Active Consumer routes all messages to one consumer at a time, preserving FIFO ordering while keeping standbys ready for instant failover.
Enable it with x-single-active-consumer, and accept the throughput trade-off when order matters most.
Изучай RabbitMQ Messaging & Async Systems с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 11
- Уроки
- 44
Часто задаваемые вопросы
Урок «Один активный потребитель» бесплатный?
Да — полный текст урока «Один активный потребитель» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс RabbitMQ Messaging & Async Systems, подпишись на CoddyKit PRO. Курс RabbitMQ Messaging & Async Systems содержит 4 уроков всего.
Чему я научусь в уроке «Один активный потребитель»?
Узнайте, как функция Single Active Consumer обеспечивает упорядоченную обработку, направляя все сообщения одному потребителю за раз и автоматически переключаясь на резервных потребителей. Ты практикуешь RabbitMQ Messaging & Async Systems с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать RabbitMQ Messaging & Async Systems?
Предыдущий опыт не требуется. RabbitMQ Messaging & Async Systems на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Один активный потребитель»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке RabbitMQ Messaging & Async Systems?
Да. Каждый урок RabbitMQ Messaging & Async Systems включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Шаблон конкурирующих потребителей
- Количество предварительной выборки (QoS)
- Эксклюзивные потребители и приоритет потребителей
- Один активный потребитель