BYTEBOOK
Bytebook Docs • RabbitMQ / Message Queues
← Înapoi la Bytebook
PATH: DOCS / RABBITMQ_GUIDE.HTML _
[00:00:00] DOCS_READY
DEMOS Main Archive JAVA LABS Enterprise PY LABS Neural Assets NODE LABS Async Runtime INFRA Control Center
BROKER & QUEUE GUIDES • RABBITMQ & MANAGEMENT

Ghid Testare, Securizare și Utilizare RabbitMQ pe VPS

Acest ghid descrie modul în care verifici, activezi interfața de administrare Web (Management Plugin), securizezi și conectezi serviciul de mesagerie RabbitMQ (deja instalat pe VPS-ul 63.250.40.142) la aplicațiile tale (Java, Python, Node.js).

1. Verificarea Statusului RabbitMQ pe VPS

  1. Conectează-te la VPS prin SSH:
    ssh root@63.250.40.142
  2. Verifică starea serviciului RabbitMQ:
    systemctl status rabbitmq-server

    (Trebuie să vezi statusul active (running)).

  3. Verifică nodul RabbitMQ cu utilitarul dedicat de administrare:
    rabbitmqctl status

2. Activarea Interfeței Web de Administrare (RabbitMQ Management Dashboard)

RabbitMQ vine cu o interfață grafică excelentă (Dashboard) pentru monitorizat cozi (Queues), mesaje și conexiuni, însă trebuie activată manual.

  1. Activează plugin-ul de management:
    rabbitmq-plugins enable rabbitmq_management
  2. Creează un utilizator administrator dedicat (utilizatorul implicit guest se poate conecta doar de pe localhost):
    # Creează utilizatorul 'admin' cu parolă securizată
    rabbitmqctl add_user admin ParolaTaSecurizataMQ123!
    
    # Oferă-i rolul de administrator
    rabbitmqctl set_user_tags admin administrator
    
    # Acordă-i permisiuni complete pe vhost-ul implicit "/"
    rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
  3. Asigură-te că portul pentru interfața web (15672) și portul de mesagerie AMQP (5672) sunt deschise în Firewall:
    ufw allow 15672/tcp
    ufw allow 5672/tcp

3. Expunerea Dashboard-ului prin Caddy Reverse Proxy

Pentru a accesa interfața grafică în siguranță prin HTTPS pe un subdomeniu dedicat (rabbitmq.bytebook.xyz):

  1. Configurare Namecheap: Adaugă o înregistrare de tip A Record (Host: rabbitmq, Value: 63.250.40.142).
  2. Editează fișierul Caddyfile pe VPS:
    nano /etc/caddy/Caddyfile
  3. Adaugă blocul de configurare:
    rabbitmq.bytebook.xyz {
        reverse_proxy localhost:15672
    }
  4. Reîncarcă Caddy:
    systemctl reload caddy
  5. Deschide browserul și accesează: https://rabbitmq.bytebook.xyz
    (Autentifică-te cu utilizatorul admin și parola creată la Pasul 2).

4. Conectarea RabbitMQ la Aplicațiile Tale

A. Java Spring Boot (application.properties)

Adaugă dependența spring-boot-starter-amqp în pom.xml, apoi adaugă în configurare:

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=ParolaTaSecurizataMQ123!

B. Python FastAPI / Script (pika)

Instalează biblioteca pika (pip install pika), apoi folosește următorul model de conectare:

import pika

# Configurare conexiune
credentials = pika.PlainCredentials('admin', 'ParolaTaSecurizataMQ123!')
parameters = pika.ConnectionParameters('localhost', 5672, '/', credentials)
connection = pika.BlockingConnection(parameters)
channel = connection.channel()

# Declară o coadă
channel.queue_declare(queue='coada_test')

# Trimite un mesaj (Producer)
channel.basic_publish(exchange='', routing_key='coada_test', body='Hello din Python!')
print(" [x] Mesaj trimis cu succes!")

connection.close()

C. Node.js Express (amqplib)

Instalează pachetul amqplib (npm install amqplib), apoi conectează-te în app.js:

const amqp = require('amqplib');

async function sendData() {
    try {
        const connection = await amqp.connect('amqp://admin:ParolaTaSecurizataMQ123!@localhost:5672');
        const channel = await connection.createChannel();
        const queue = 'coada_node';

        await channel.assertQueue(queue, { durable: true });
        channel.sendToQueue(queue, Buffer.from('Hello din Node.js!'));
        console.log(" [x] Mesaj trimis către coadă!");

        setTimeout(() => {
            connection.close();
        }, 500);
    } catch (error) {
        console.error(error);
    }
}

sendData();

5. Comenzi Utile de Administrare și Monitorizare în CLI

Afișează toate cozile existente și numărul de mesaje neprocesate:
rabbitmqctl list_queues
Afișează conexiunile active la server:
rabbitmqctl list_connections
Afișează lista utilizatorilor și rolurile lor:
rabbitmqctl list_users
Șterge o coadă specifică:
rabbitmqctl delete_queue nume_coada