详解Node.js amqplib 连接 Rabbit MQ最佳实践

以下是“详解Node.js amqplib 连接 Rabbit MQ最佳实践”的完整攻略,包含两条示例说明。

示例1:使用amqplib连接RabbitMQ

步骤1:安装amqplib

使用npm安装amqplib:

npm install amqplib

步骤2:连接RabbitMQ

const amqp = require('amqplib');

async function connect() {
  try {
    const connection = await amqp.connect('amqp://localhost');
    const channel = await connection.createChannel();
    console.log('Connected to RabbitMQ');
  } catch (error) {
    console.error(error);
  }
}

connect();

步骤3:创建队列

const amqp = require('amqplib');

async function connect() {
  try {
    const connection = await amqp.connect('amqp://localhost');
    const channel = await connection.createChannel();
    const queue = 'hello';
    await channel.assertQueue(queue);
    console.log('Queue created: ', queue);
  } catch (error) {
    console.error(error);
  }
}

connect();

步骤4:发送消息

const amqp = require('amqplib');

async function connect() {
  try {
    const connection = await amqp.connect('amqp://localhost');
    const channel = await connection.createChannel();
    const queue = 'hello';
    const message = 'Hello World!';
    await channel.assertQueue(queue);
    channel.sendToQueue(queue, Buffer.from(message));
    console.log('Message sent: ', message);
  } catch (error) {
    console.error(error);
  }
}

connect();

步骤5:接收消息

const amqp = require('amqplib');

async function connect() {
  try {
    const connection = await amqp.connect('amqp://localhost');
    const channel = await connection.createChannel();
    const queue = 'hello';
    await channel.assertQueue(queue);
    console.log('Waiting for messages...');
    channel.consume(queue, (message) => {
      console.log('Message received: ', message.content.toString());
    });
  } catch (error) {
    console.error(error);
  }
}

connect();

示例2:使用amqplib实现工作队列

步骤1:安装amqplib

同示例1。

步骤2:连接RabbitMQ

同示例1。

步骤3:创建队列

const amqp = require('amqplib');

async function connect() {
  try {
    const connection = await amqp.connect('amqp://localhost');
    const channel = await connection.createChannel();
    const queue = 'task_queue';
    await channel.assertQueue(queue, { durable: true });
    console.log('Queue created: ', queue);
  } catch (error) {
    console.error(error);
  }
}

connect();

步骤4:发送消息

const amqp = require('amqplib');

async function connect() {
  try {
    const connection = await amqp.connect('amqp://localhost');
    const channel = await connection.createChannel();
    const queue = 'task_queue';
    const message = 'Hello World!';
    await channel.assertQueue(queue, { durable: true });
    channel.sendToQueue(queue, Buffer.from(message), { persistent: true });
    console.log('Message sent: ', message);
  } catch (error) {
    console.error(error);
  }
}

connect();

步骤5:接收消息

const amqp = require('amqplib');

async function connect() {
  try {
    const connection = await amqp.connect('amqp://localhost');
    const channel = await connection.createChannel();
    const queue = 'task_queue';
    await channel.assertQueue(queue, { durable: true });
    channel.prefetch(1);
    console.log('Waiting for messages...');
    channel.consume(queue, (message) => {
      const content = message.content.toString();
      console.log('Message received: ', content);
      setTimeout(() => {
        channel.ack(message);
        console.log('Message processed: ', content);
      }, 5000);
    });
  } catch (error) {
    console.error(error);
  }
}

connect();

以上就是使用amqplib连接RabbitMQ的完整攻略,包含两个示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Node.js amqplib 连接 Rabbit MQ最佳实践 - Python技术站

(1)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • RabbitMQ开启SSL与SpringBoot连接测试的配置方法

    以下是“RabbitMQ开启SSL与SpringBoot连接测试的配置方法”的完整攻略,包含两个示例。 简介 RabbitMQ是一种流行的消息队列中间件,可以用于实现异步消息处理和调度。SSL是一种安全的通信协议,可以用于保护网络通信的安全性。本攻略介绍如何使用RabbitMQ开启SSL与Spring Boot连接测试的配置方法。 步骤1:生成证书 在使用R…

    RabbitMQ 2023年5月15日
    00
  • 什么是RabbitMQ?

    RabbitMQ是一个开源的消息代理软件,它实现了高级消息队列协议(AMQP)并支持多种消息传递模式,包括点对点、发布/订阅和工作队列。RabbitMQ可以在分布式系统中使用,以便在不同的应用程序之间传递消息,从而实现松散耦合和高度可扩展的架构。 以下是两个示例: 例1 在RabbitMQ中,可以使用生产者-消费者模型来传递消息。生产者将消息发送到队列中,而…

    云计算 2023年5月5日
    00
  • RabbitMQ如何避免消息丢失?

    RabbitMQ是一个可靠的消息代理,它提供了多种机制来避免消息丢失。以下是RabbitMQ避免消息丢失的主要机制: 消息确认 RabbitMQ使用消息确认机制来确保消息已经被正确地传递和处理。消息确认机制分为两种类型:生产者确认和消费者确认。 生产者确认:生产者确认机制可以确保消息已经被正确地发送到RabbitMQ代理。生产者可以通过等待代理的确认消息来确…

    云计算 2023年5月5日
    00
  • 快速了解如何在.NETCORE中使用Generic-Host建立主机

    以下是“快速了解如何在.NETCORE中使用Generic-Host建立主机”的完整攻略,包含两个示例。 简介 在本攻略中,我们将介绍如何在.NETCORE中使用Generic-Host建立主机。通过攻略的学习,您将了解Generic-Host的基本概念、如何使用Generic-Host建立主机以及如何使用自定义服务配置Generic-Host。 示例一:使…

    RabbitMQ 2023年5月15日
    00
  • Preload基础使用方法详解

    以下是“Preload基础使用方法详解”的完整攻略,包含两个示例。 简介 Preload是一种优化网站性能的技术,它可以在页面加载时预加载资源,以提高页面加载速度和用户体验。本攻略将介绍Preload的基础使用方法。 示例1:使用Preload预加载CSS文件 以下是一个使用Preload预加载CSS文件的示例: <!DOCTYPE html> …

    RabbitMQ 2023年5月15日
    00
  • RabbitMQ如何处理ACK?

    RabbitMQ是一个开源的消息代理软件,它可以用于构建分布式系统中的消息传递架构。在RabbitMQ中,消息是通过队列进行传递和处理的。为了确保消息能够被成功处理,RabbitMQ提供了ACK机制。本文将详细介绍RabbitMQ如何处理ACK,并提供两个示例说明。 RabbitMQ如何处理ACK? 在RabbitMQ中,ACK(Acknowledgemen…

    云计算 2023年5月5日
    00
  • RabbitMQ如何实现消息过滤?

    RabbitMQ可以通过Binding Key来实现消息过滤。Binding Key是一个字符串,它与Exchange和Queue绑定在一起,用于确定Exchange应该将消息发送到哪个Queue。通过设置不同的Binding Key,可以将消息路由到不同的Queue中,从而实现消息过滤。以下是RabbitMQ实现消息过滤的完整攻略: 创建Exchange和…

    云计算 2023年5月5日
    00
  • 浅谈MySQL数据同步到 Redis 缓存的几种方法

    以下是“浅谈MySQL数据同步到 Redis 缓存的几种方法”的完整攻略,包含两个示例。 简介 MySQL是一种常用的关系型数据库,而Redis是一种常用的内存缓存数据库。在实际应用中,我们经常需要将MySQL中的数据同步到Redis缓存中,以提高数据访问速度和性能。在本攻略中,我们将介绍几种将MySQL数据同步到Redis缓存的方法。 示例一:使用Redi…

    RabbitMQ 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部