Τι είναι εγκατεστημένο στον server RabbitMQ;
- RabbitMQ 4 από το build Alpine της επίσημης εικόνας Docker με το management UI, στην τελευταία 4.x τη στιγμή της εγκατάστασης
- Management UI μέσω HTTPS με Caddy σε διεύθυνση sslip.io, οπότε το domain είναι προαιρετικό
- Ανοιχτή θύρα 5672 για συνδέσεις AMQP
- Λογαριασμός διαχειριστή με όνομα yonetici αντί για guest, με δημιουργημένο κωδικό
- Τα δεδομένα των ουρών φυλάσσονται στο volume Docker rabbit_veri
- Αρχείο Compose στο /opt/seturack/rabbitmq/compose.yaml
- Firewall με ανοιχτές μόνο τις θύρες 22, 80, 443 και 5672
Τι μέγεθος χρειάζεστε για το RabbitMQ;
Η λίστα ελέγχου παραγωγής του RabbitMQ ζητά τουλάχιστον 4 GiB RAM και 4 πυρήνες ανά κόμβο, και αναφέρει ότι το RabbitMQ δεν σχεδιάστηκε για περιβάλλοντα με έναν πυρήνα. Θεωρήστε το μικρότερο μέγεθος, 2 GB, μέγεθος ανάπτυξης και δοκιμών, και για παραγωγή επιλέξτε 4 GB και προσθέστε CPU. Οι εκδότες φρενάρονται όταν η χρήση μνήμης ξεπεράσει το 60 τοις εκατό της RAM, και τα μόνιμα μηνύματα γεμίζουν επίσης τον δίσκο. Μπορείτε να αυξήσετε χωριστά RAM, CPU και δίσκο από το πάνελ σας, ενώ τα δεδομένα και η διεύθυνση IP σας μένουν ίδια.
| Χρήση | Μέγεθος | Τιμή | Επιλογή |
|---|---|---|---|
| Εισαγωγικό | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/μήνα | |
| Μεσαίο | 8 GB RAM · 4 vCore · 120 GB NVMe | $13.62/μήνα | |
| Ισχυρό | 16 GB RAM · 8 vCore · 200 GB NVMe | $25.15/μήνα |
Για ποιον είναι;
- Ομάδες που μεταφέρουν τις εργασίες παρασκηνίου έξω από τη web εφαρμογή τους
- Προγραμματιστές που στήνουν ανταλλαγή μηνυμάτων ανάμεσα σε υπηρεσίες
- Έργα που χρησιμοποιούν Celery, Spring AMQP ή amqplib
- Όσοι θέλουν πραγματική ουρά στην ανάπτυξη και στις δοκιμές
Τι γίνεται μετά την παραγγελία;
- Ορίστε το μέγεθος και ολοκληρώστε την πληρωμή.
- Ο server σας ξεκινά και το RabbitMQ εγκαθίσταται μόνο του. Στις δοκιμές μας σε πραγματικούς servers αυτό χρειάστηκε περίπου 8 λεπτά.
- Στην καρτέλα Επισκόπηση, ο σύνδεσμος της γραμμής Διεύθυνση πάνελ ανοίγει το management UI. Καταχωρίστε τα στοιχεία από τις γραμμές Όνομα σύνδεσης και Κωδικός.
- Συνδέστε την εφαρμογή σας: amqp://yonetici:PASSWORD@IP:5672/%2f
- Στην καρτέλα Admin, δημιουργήστε ξεχωριστό χρήστη και εικονικό host (vhost) για την εφαρμογή σας.
Με κάθε server
- Ημερήσιο αντίγραφο ασφαλείας στην τιμή
- Απεριόριστη κίνηση
- Πλήρης πρόσβαση root
- Αναβαθμίστε ή μειώστε RAM και CPU αργότερα και μεγαλώστε τον δίσκο
- Τοποθεσία: Istanbul · IST-1.
Καλό είναι να ξέρετε
- Η θύρα 5672 δεν έχει TLS και είναι ανοιχτή στο διαδίκτυο, και το ufw δεν μπορεί να την κλείσει επειδή το Docker τη δημοσιεύει. Για να την περιορίσετε, αλλάξτε τη γραμμή θύρας στο compose.yaml σε 127.0.0.1:5672:5672, εκτελέστε docker compose up -d και συνδεθείτε μέσω SSH tunnel.
- Το όριο ελεύθερου δίσκου είναι από προεπιλογή 50 MB, κάτι που η επίσημη τεκμηρίωση θεωρεί κατάλληλο μόνο για ανάπτυξη. Αυξήστε το disk_free_limit για παραγωγή.
- Όταν ξεπεραστεί το όριο μνήμης ή δίσκου, οι συνδέσεις που δημοσιεύουν μπλοκάρονται. Μόλις οι καταναλωτές παραλάβουν μηνύματα, ο συναγερμός σβήνει και η κίνηση ξαναρχίζει.
- Η εικόνα ακολουθεί το tag 4-management-alpine αλλά δεν ενημερώνεται μόνη της. Για νεότερη 4.x, εκτελέστε docker compose pull και docker compose up -d μέσα στον φάκελο.
Ερωτήσεις και απαντήσεις για το RabbitMQ
Πώς συνδέομαι στον server RabbitMQ μου;
Η συμβολοσειρά σύνδεσής σας είναι amqp://yonetici:PASSWORD@IP:5672/%2f. Το %2f στο τέλος αντιστοιχεί στο προεπιλεγμένο εικονικό host, /. Η προδιαγραφή URI του RabbitMQ λέει ότι ένα απλό / στο τέλος σημαίνει κενό όνομα. Η IP και ο κωδικός βρίσκονται στο πάνελ σας, και τη συμβολοσειρά αυτή τη δίνετε στη βιβλιοθήκη πελάτη σας.
Πόση RAM χρειάζεται το RabbitMQ;
Η επίσημη λίστα ελέγχου παραγωγής του RabbitMQ ζητά τουλάχιστον 4 GiB RAM και 4 πυρήνες ανά κόμβο. Για ανάπτυξη και δοκιμές μπορείτε να ξεκινήσετε με 2 GB.
Πώς ανοίγω το management UI του RabbitMQ;
Ο σύνδεσμος Διεύθυνση πάνελ στο πάνελ σας το ανοίγει μέσω HTTPS. Το όνομα σύνδεσης είναι yonetici και ο κωδικός βρίσκεται στο πάνελ σας. Από το UI μπορείτε να δημιουργήσετε ουρές, exchanges, χρήστες και εικονικά hosts, και να στείλετε και να λάβετε δοκιμαστικά μηνύματα. Η θύρα 15672 δεν είναι ανοιχτή προς τα έξω.
Είναι κρυπτογραφημένη η σύνδεση AMQP του RabbitMQ;
Η θύρα 5672 του RabbitMQ δεν έχει TLS σε αυτή την εγκατάσταση, οπότε ο κωδικός και τα μηνύματα ταξιδεύουν μη κρυπτογραφημένα. Για ευαίσθητα δεδομένα μέσω διαδικτύου, χρησιμοποιήστε SSH tunnel ή στήστε listener TLS στη θύρα 5671 με δικό σας πιστοποιητικό και δημοσιεύστε εκείνη τη θύρα.
Γιατί μπλοκάρονται οι εκδότες μηνυμάτων του RabbitMQ μου;
Το RabbitMQ μπλοκάρει τις συνδέσεις που δημοσιεύουν όταν η χρήση μνήμης ξεπεράσει το 60 τοις εκατό της RAM ή ο ελεύθερος δίσκος πέσει κάτω από το όριο. Ο συναγερμός σβήνει καθώς οι καταναλωτές παραλαμβάνουν μηνύματα. Την κατάσταση τη βλέπετε στη σελίδα Overview του management UI, και αν συνεχίσει να συμβαίνει, κάντε αναβάθμιση του server.
Μπορώ να δημιουργήσω ξεχωριστό χρήστη RabbitMQ για την εφαρμογή μου;
Ναι. Στην καρτέλα Admin του UI, προσθέστε ένα εικονικό host και έναν χρήστη και δώστε δικαιώματα. Από τη γραμμή εντολών, στο /opt/seturack/rabbitmq, εκτελέστε docker compose exec rabbitmq rabbitmqctl add_user NAME PASSWORD. Ένας νέος χρήστης δεν μπορεί να συνδεθεί μέχρι να αποκτήσει δικαιώματα.