Provisioning RabbitMQ#
Ametnes-managed RabbitMQ is a private, TLS-only message broker. The management console is served over HTTPS and every AMQP client connects over AMQPS on port 5671 — the plaintext 5672 listener is disabled.
Prerequisites#
- A service location (see Service Location).
Networking is automatic by default
Creating a network access resource is optional. If you do not create one, Ametnes manages network access for the location — a shared load balancer publishes the endpoints for the services deployed there, scoped to the location or project — and your service attaches to it automatically. Create your own only if you want to control exposure (see Network Access Resources).
Create the RabbitMQ service#
Kinds: service/rabbitmq:4.3 and service/rabbitmq:4.2. The administrator
credentials are required.
- Navigate to Services and click New Service.
- Name it (for example
RabbitMQService). - Kind: RabbitMQ 4.3 Message Broker.
- Location: your data service location. Leave Network unset to let Ametnes manage it.
- Architecture: Starter for evaluation, Basic+ for a clustered, highly available broker.
- Set Admin User (lowercase, 5+ characters, e.g.
admin) and Admin Password. - Click Create Service and wait for
ready.
Connect#
The service publishes two connections:
| Connection | Port | Use |
|---|---|---|
https |
443 | Management console / HTTP API (TLS terminated at the ingress). |
amqps |
5671 | AMQP clients. TLS terminates at the broker using the zone certificate. |
Clients must use amqps:// (Let's Encrypt certificates are publicly trusted):
import pika, ssl
params = pika.ConnectionParameters(
host="<host>", port=<port>,
credentials=pika.PlainCredentials("admin", "<password>"),
ssl_options=pika.SSLOptions(ssl.create_default_context(), server_hostname="<host>"),
)
pika.BlockingConnection(params)
The shovel plugin (used by disaster recovery) ships with the broker and is enabled by default.
Queue type
Queues default to quorum (default_queue_type = quorum), so a clustered
tier replicates them across its nodes automatically. Clients can still pin a
type per queue with arguments={"x-queue-type": "quorum"} (or classic);
the type is immutable once the queue is declared.
Next#
- Disaster recovery — replicate to a standby cluster and fail over.
- Scaling — tiers, cluster size and version upgrades.