"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Introdução ao RabbitMq usando NodeJs

Introdução ao RabbitMq usando NodeJs

Publicado em 2024-11-06
Navegar:882

Introdução ao RabbitMq

RabbitMq é um corretor de mensagens que permite enviar e receber mensagens entre diferentes serviços. É um corretor de mensagens que implementa o Advanced Message Queuing Protocol (AMQP). Escrito com linguagem de programação Erlang.

Instalando RabbitMq

RabbitMq pode ser instalado em diferentes sistemas operacionais usando seus respectivos gerenciadores de pacotes. RabbitMQ requer que Erlang/OTP seja instalado previamente, consulte a documentação oficial para obter mais informações.

  • Linux
sudo apt-get install rabbitmq-server
  • Mac
brew install rabbitmq

Uma vez instalado, podemos iniciar o servidor RabbitMq usando o seguinte comando:

sudo rabbitmq-server

Getting started with RabbitMq using NodeJs

Depois que o servidor for iniciado, podemos acessar o RabbitMQ de nosso aplicativo usando a porta padrão 5672.

Para habilitar o console de gerenciamento RabbitMq, podemos executar o seguinte comando:

sudo rabbitmq-plugins enable rabbitmq_management

podemos acessar o console de gerenciamento RabbitMq visitando http://localhost:15672/ em seu navegador. O nome de usuário e a senha padrão são convidados.

Getting started with RabbitMq using NodeJs

Configurando RabbitMq com NodeJs

Para interagir com RabbitMq de NodeJs, podemos usar a biblioteca amqplib. Podemos instalar a biblioteca usando o seguinte comando:

npm install amqplib

Para conectar-se ao RabbitMq a partir de NodeJs e criar um canal para interagir com o RabbitMq, podemos usar o seguinte código:

const amqp = require("amqplib");

const connect = async (url) => {
  const connection = await amqp.connect(url);
  const channel = await connection.createChannel();

  return channel;
};

connect("amqp://localhost:5672").then((channel) => {
  console.log("Connected to RabbitMQ");
  channel.close();
  process.exit(0);
});

Agora temos um canal para interagir com o RabbitMq. Podemos usar este canal para enviar e receber mensagens do RabbitMq. vamos nomear nossa fila como mq-test-queue e enviar uma mensagem para a fila.

connect("amqp://localhost:5672").then((channel) => {
  console.log("Connected to RabbitMQ");
  channel.assertQueue("mq-test-queue");
  console.log("Queue created");
  channel.sendToQueue("mq-test-queue", Buffer.from("Hello World!"));
  console.log("Message sent");
});

Criamos uma fila mq-test-queue e enviamos uma mensagem Hello World! para a fila. Para criar uma Queue, usamos o método assertQueue e para enviar uma mensagem para a fila, usamos o método sendToQueue.

Para receber uma mensagem da fila, podemos usar o método consumir.

connect("amqp://localhost:5672").then((channel) => {
  console.log("Connected to RabbitMQ");
  channel.assertQueue("mq-test-queue");
  console.log("Queue created");
  channel.sendToQueue("mq-test-queue", Buffer.from("Hello World!"));
  console.log("Message sent");
  channel.consume("mq-test-queue", (msg) => {
    console.log("Message received", msg.content.toString());
  });
});

O método consumir usa uma função de retorno de chamada e passa o objeto de mensagem para a função de retorno de chamada para acessar o conteúdo da mensagem usando msg.content.toString().

Depois de consumir a mensagem, precisamos confirmar ou não a mensagem para removê-la da fila. Podemos usar o método ack para confirmar a mensagem e o método nack para rejeitar a mensagem.

Para este exemplo, confirmaremos a mensagem após consumi-la.

const amqp = require("amqplib");

const connect = async (url) => {
  const connection = await amqp.connect(url);
  const channel = await connection.createChannel();

  return channel;
};

connect("amqp://localhost:5672").then((channel) => {
  console.log("Connected to RabbitMQ");
  channel.assertQueue("mq-test-queue");
  console.log("Queue created");
  channel.sendToQueue("mq-test-queue", Buffer.from("Hello World!"));
  console.log("Message sent");
  channel.consume("mq-test-queue", (msg) => {
    console.log("Message received", msg.content.toString());
    channel.ack(msg);
  });
});

Getting started with RabbitMq using NodeJs

Podemos ver as mensagens enviadas e recebidas com sucesso da fila. usando o console de gerenciamento RabbitMQ.

Conclusão

Neste artigo, aprendemos como configurar o RabbitMq e interagir com o RabbitMq do NodeJs usando a biblioteca amqplib. Criamos uma fila, enviamos uma mensagem para a fila e recebemos uma mensagem da fila.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/itsvinayak/getting-started-with-rabbitmq-using-nodejs-f17?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3