Skip to content

[Question] Best practices for consumers in production #628

@rikvanderkemp

Description

@rikvanderkemp

So I have successfully set up RabbitMQ (in Docker) and have sent messages to RabbitMq and successfully consumed test messages. All in a safe development environment.

What I'm missing in the documentation are some pointers when moving to production.

My idea is to run consumers using supervisord, currently using this for the messenger from Symfony. The disadvantage is, however, code changes mean restarting the consumer(s).

So when I see the following in the documentation:

$ ./app/console rabbitmq:consumer -m 50 upload_picture

It got me thinking, is this the preferred way of setting it up in production? Firing up consumers for limited amounts of messages and then starting new ones when needed? Not sure how that would work.

Or, just multiple consumers for multiple exchanges?

A single consumer handles incoming messages sequentially. So how would you deal with large bulks? An idea would be firing up multiple consumers for a single exchange channel. But again, is this the "right" way?

So I'd like to hear some pointers from people who are using this in production. I'd like to use this in a setup where we could potentially have big bulks of messages that need to be consumed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions