RabbitMQ é um servidor de mensageria open source implementado para suportar mensagens
em um protocolo denominado Advanced Message Queuing Protocol (AMQP).
Compatível com diversas linguagens de programação,possui interface de administração
nativa além de gerenciar fila de trabalhos em background
sudo docker run -d --hostname my-rabbit --name rabbit13 -p 8080:15672 -p 5672:5672 -p 25676:25676 rabbitmq:3-management
Abra o browser em http://localhost:8080
user: guest
senha: guest
npm install
Inicie o consumidor da fila
node worker.js
Inicie o envio:
node app.js
Sempre que rodar o app, este enviará um mensagem à fila, o Rabbit enviará a mensagem ao worker que estiver disponível.
RPC - Chamada de Procedimento Remoto. Para envio e resposta imediata mesmo que em servidores remoto:
Inicie o canal no server que irá receber a solicitação
node RPC/rpc_server.js
Inicie o cliente que fará a solicitação e aguardará por resposta imediata: Informe um número qualquer como argumento para teste
node RPC/rpc_client.js 1000
Inicie o script que receberá as mensagens da exchange, porém, somente as que conferem com o critério de prioridade informado:
node EXCHANGE/receive_logs_direct.js
Inicie o script que publica na exchange criada. Informe um critério de prioridade qualquer como argumento para teste. o padrão é 'error'. No ex: info foi informado
node EXCHANGE/emit_log_direct.js info
TTL MESSAGE - Permite definir quando uma mensagem vai expirar na fila, e quando isso ocorrer podera ser redirecionada a outra fila
Inicie o worker da fila receptora da mensagem expirada:
node EXPIRE_TTL/receive.js
Inicie o script que enviar a mensagem para fila e define o ttl.
node EXPIRE_TTL/emit.js