Cluster migration can be done in different ways depending on requirements and plans.
It is possible to upgrade/downgrade automatically and seamlessly between shared plans. Go to the CloudAMQP control panel and press Edit and change plan type.
If you want to rescale your cluster, go to the CloudAMQP Control Panel, and choose edit for the instance you want to reconfigure. Here you have the ability to add or remove nodes, and change plan all together.
There is no automatic upgrade/downgrade between a shared and a dedicated plans.
When moving to or from a dedicated instance to a shared instance we recommend queue federation for seamless migration, as described in section below.
If seamless migration is not required just create a new instance and move your clients:
The RabbitMQ Federation plugin can be used when migrating to another cluster without stopping all producers and consumers while doing so.
Queue federation connects an upstream queue and transfers messages to the downstream queue when there's consumers that has capacity on the downstream queue. Consumers and publishers can be moved in any order. Messages are transfered to the new cluster when your consumers are there. The federated queue will only retrieve messages when it has run out of messages locally, when it has consumers that need messages and when the upstream queue has "spare" messages that are not being consumed. Upstream servers are the servers towards messages are originally published. Downstream servers are where the messages get forwarded to.
Create a policy that matches the queues that you would like to federate
A policy is a pattern that queue names are matched against. The "pattern" argument is a regular expression used to match queue (or exchange) names. Example: We can tell the policy to federate all queues whose names begin with "metric.".
Navigate to 'Admin' -> 'Policies' and press 'Add / update a policy'
to create the policy.
A policy can apply to an upstream set or a single upstream of exchanges and/or queues. In this example we apply to all upstreams, federation-upstream-set is set to all.
NOTE: Policies are matched every time an exchange or queue is created.
Open the management interface for the downstream server and go to the 'Admin'->'Federation Upstreams' screen and press 'Add a new upstream'. Fill in all information needed, the URI should be the URI of the upstream server.
Leave expiry time and TTL blank. Leaving this blank means that it will stay "forever".
The queues can be created as you always create your queues (i.e manually from the management interface or from the application code). The queues should be marked as federated if the policy is applied, like in the image below. If the queues are not marked as federated, control that the regexp is working.
Read more about cluster migration in our blog post about Queue Federation in RabbitMQ.