Message broker e code nel cloud # RabbitMQ: message broker per architetture a microservizi Usa RabbitMQ per organizzare la messaggistica asincrona tra servizi tramite code e regole di routing. Le risorse e la configurazione dipendono dal pacchetto scelto. [Inizia ora](https://panel.deplomo.com/signup)[Torna al marketplace](/it/marketplace) ## Caratteristiche di RabbitMQ su Deplomo Plugin Management, storage persistente e opzioni di rete secondo la configurazione disponibile. ### Conferme di ricezione e persistenza delle code RabbitMQ supporta le conferme di ricezione dei messaggi e può archiviare le code su storage NVMe persistente, se previsto dalla configurazione. ### Messaggistica asincrona Invia attività e job in background tramite code, così i servizi possono elaborare i messaggi senza attendere una risposta sincrona. ### Interfaccia web di gestione Il plugin Management offre un’interfaccia per consultare code, exchange e connessioni dei client. ### AMQP e client per diversi linguaggi Puoi collegare client per Python (ad esempio Celery), Node.js, Go, PHP con Laravel e Java. MQTT e STOMP sono disponibili se sono installati e configurati i plugin corrispondenti. ### Modalità di routing dei messaggi RabbitMQ supporta gli exchange Direct, Fanout, Topic e Headers per instradare i messaggi alle code in base alle regole configurate. ### Container e rete del progetto Esegui RabbitMQ in un container isolato collegato alla rete privata del progetto. Assegna le risorse entro il pacchetto mensile della tua zona. ## Domande frequenti su RabbitMQ Risposte alle domande su RabbitMQ, messaggistica asincrona e comunicazione tra microservizi: Che cos’è RabbitMQ e a cosa serve nell’architettura dei sistemi? Che ruolo ha RabbitMQ in un’architettura a microservizi? Che cos’è un message broker e a cosa serve? Come configurare RabbitMQ e collegare i client? Il plugin Management di RabbitMQ è incluso? ## Guida a RabbitMQ per code e messaggistica asincrona Nelle architetture a microservizi, i servizi possono comunicare in modo sincrono o asincrono. Una coda permette a un servizio di inviare un messaggio senza attendere che il destinatario lo elabori, ma non elimina automaticamente i colli di bottiglia: progettazione, capacità e gestione degli errori restano importanti. RabbitMQ è un message broker open source che supporta questo modello. Il provisioning su Deplomo è attualmente sospeso. ### Che cos’è RabbitMQ e come funziona un message broker? RabbitMQ è un message broker che supporta AMQP. Riceve i messaggi dai produttori e li instrada verso le code usando exchange e binding, ad esempio di tipo Direct, Fanout o Topic. I consumatori leggono poi i messaggi dalle code. Per flussi di eventi ad alto volume, puoi valutare anche [Apache Kafka](/it/marketplace/apps/kafka) , mentre per la messaggistica tra microservizi puoi considerare [nats server](/it/marketplace/apps/nats) come alternative o componenti complementari, in base al carico e alle funzionalità richieste. ### Gestire RabbitMQ autonomamente o tramite un servizio cloud Installare RabbitMQ su Linux può richiedere la configurazione di Erlang/OTP, dell’ambiente di esecuzione, dei plugin Management, dei cookie Erlang per il clustering e delle porte di rete. Parametri come vm_memory_high_watermark vanno dimensionati e verificati in base alle risorse. Un servizio gestito può includere container, interfaccia web e opzioni di storage e rete. Le caratteristiche dipendono dalla configurazione del servizio; il provisioning di RabbitMQ su Deplomo è attualmente sospeso. ### Aspetti da confrontare tra RabbitMQ, database e installazione autonoma La scelta dipende dal modello di messaggistica, dal carico e dalle attività di gestione previste:
| Aspetto | RabbitMQ su Deplomo (provisioning sospeso) | Database usato come coda | Installazione autonoma su un server |
|---|---|---|---|
| Routing e gestione dei messaggi | Funzionalità di message broker e routing AMQP; prestazioni dipendono dal carico e dalla configurazione | La gestione di code tramite database dipende dallo schema e dalle query utilizzate | La gestione continuativa dipende dalla configurazione e dall’ambiente scelti |
| Provisioning e configurazione | Dipende dalla procedura e dall'ambiente di installazione | Le attività iniziali e la possibilità di modificare le risorse dipendono dalla soluzione scelta | Su un server autonomo, configura Erlang, le porte di rete e il firewall |
| Interfaccia web e consultazione delle code | Il plugin Management offre un’interfaccia web, se incluso e attivato | Alcuni strumenti richiedono l’uso di query o comandi | La configurazione autonoma può richiedere l’attivazione dei plugin e la gestione degli accessi |
| Prezzi e dimensionamento | Prezzo mensile fisso del pacchetto in euro | Costi e funzionalità dipendono dalla soluzione e dal pacchetto scelti | Prezzi e possibilità di modificare le risorse dipendono dal provider e dal piano. |