As per the subject, I want to start my MT (rel. 3.5.7 over RabbitMQ.Client 4.1.3, if it matters) just for configuring Rabbit exchanges and queues, not for consuming.
Before explaining the reason, this is my scenario:
- UI/Frontend servers are connected to my application servers via web API
- Web APIs are message publishers
- Consumers (MT instances) are deployed in another line of backend servers and may use API to access data
How do you proceed to accomplish a no-downtime (or minimal) full system deployment?
- If you begin by upgrading the APIs they may publish new type of messages, which obviously get lost (exchanges not yet configured)
- If you begin with MT, you may need new APIs not yet deployed, and you are in trouble
So my idea is:
- Starting by upgrading MT, having it just setting up exchanges and queues
- Upgrading API, so in case of new messages there're no losses
- Finally a start my MT instances.
How to do that? Is my scenario so strange? For my searches seems no body have ever had (or just thought to) this issue.
PS: starting and immediately stopping does not seems to be an option. If there're messages in queues they get processed.
thanks