Handling unavailable brokers #3391
-
Hi all, hope somebody can help on this one :) I've been given the project at work of moving towards a microservice based structure over the next five to ten years. I manage a fairly large online store (PHP) which then feeds into an on-prem order processing system and warehouse management system (primarily C#). The intention is to move parts of the systems over to microservices and join things up more efficiently than we currently do. One of the core elements I'm looking at using is RabbitMQ as a broker between the various microservices (we'll have one broker up on AWS with the website and one on-prem, joined together with a Federation). Broadly speaking, I've got my head round how things may hang together - I'm thinking that Consumers will be written that sort out their own Queue & Bindings so we won't have to manually touch RabbitMQ very often (this also minimises the knowledge and user access required). One of the other devs has come up with a question that I've not been able to answer satisfactorily. What happens if a Producer is unable to submit a message to RabbitMQ, for example because we've needed to reboot the broker? The Producer will have a limited life and the message will be sent after it's done whatever action it was doing (e.g. writing to a database) Hoping this makes sense? Thanks in advance! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
If a publisher cannot publish a message immediately, it can store it somewhere for republishing at a later time or drop it. Publishing apps should have metrics that allow you to see when this happens (whatever option you use). Relevant doc guides: |
Beta Was this translation helpful? Give feedback.
If a publisher cannot publish a message immediately, it can store it somewhere for republishing at a later time or drop it. Publishing apps should have metrics that allow you to see when this happens (whatever option you use).
Relevant doc guides: