详解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日

相关文章

  • Springboot死信队列 DLX 配置和使用思路分析

    以下是“Springboot死信队列 DLX 配置和使用思路分析”的完整攻略,包含两个示例。 简介 在分布式系统中,消息队列是一种常见的通信方式。Spring Boot提供了对RabbitMQ的支持,可以轻松地实现消息队列。在消息队列中,死信队列(Dead Letter Exchange,简称DLX)是一种特殊的队列,用于处理无法被消费的消息。本攻略将介绍S…

    RabbitMQ 2023年5月15日
    00
  • 一篇文章教你如何在SpringCloud项目中使用OpenFeign

    下面是在SpringCloud项目中使用OpenFeign的完整攻略,包含两个示例说明。 简介 OpenFeign是一个基于Netflix Feign的Java HTTP客户端开发库,用于简化HTTP客户端的开发。在SpringCloud项目中,我们可以使用OpenFeign来实现微服务之间的通信。本文将介绍如何在SpringCloud项目中使用OpenFe…

    RabbitMQ 2023年5月16日
    00
  • redis实现简单队列

    以下是“redis实现简单队列”的完整攻略,包含两个示例。 简介 Redis是一种常见的内存数据库,它可以用于实现消息队列。本攻略将介绍如何使用Redis实现一个简单的队列,并提供两个示例。 Redis实现简单队列 使用Redis实现队列的过程非常简单,只需要使用Redis提供的list数据结构即可。以下是实现队列的代码: import redis clas…

    RabbitMQ 2023年5月15日
    00
  • 深入理解Maven的坐标与依赖

    以下是“深入理解Maven的坐标与依赖”的完整攻略,包含两个示例。 简介 在本攻略中,我们将深入理解Maven的坐标与依赖。通过攻略的学习,您将了解Maven坐标的组成、Maven依赖的声明方式以及Maven依赖的传递性。 示例一:Maven坐标的组成 Maven坐标由三个部分组成:groupId、artifactId和version。其中,groupId表…

    RabbitMQ 2023年5月15日
    00
  • Python RabbitMQ实现简单的进程间通信示例

    下面是Python RabbitMQ实现简单的进程间通信示例的完整攻略,包含两个示例说明。 简介 RabbitMQ是一个开源的消息列系统,它支持多种消息协议,包括AMQP、STOMP、MQTT等。在Python中,可以使用pika库来实现与RabbitMQ的交互,从而实现消息队列功能。 本文将介绍如何在Python中使用pika库实现简单的进程间通信,并提供…

    RabbitMQ 2023年5月16日
    00
  • Docker安装部署单机版Rocket及基础讲解

    以下是“Docker安装部署单机版Rocket及基础讲解”的完整攻略,包含两个示例。 简介 Rocket是一个开源的容器运行时,它提供了一种轻量级的容器化解决方案。本攻略将介绍如何使用Docker安装部署单机版Rocket,并提供两个示例。 Docker安装部署单机版Rocket及基础讲解 使用Docker安装部署单机版Rocket的过程非常简单,只需要使用…

    RabbitMQ 2023年5月15日
    00
  • php ActiveMQ的安装与使用方法图文教程

    以下是“PHP ActiveMQ的安装与使用方法图文教程”的完整攻略,包含两个示例。 简介 ActiveMQ是一个流行的开源消息中间件,它支持多种协议和编程语言,包括PHP。在PHP中,可以使用ActiveMQ实现消息队列、发布/订阅等功能。本攻略将介绍如何在PHP中安装和使用ActiveMQ,包括安装ActiveMQ、创建队列、发送消息、订阅消息等。 安装…

    RabbitMQ 2023年5月15日
    00
  • spring boot集成smart-doc自动生成接口文档详解

    以下是“spring boot集成smart-doc自动生成接口文档详解”的完整攻略,包含两个示例。 简介 在本攻略中,我们将介绍如何在Spring Boot项目中集成smart-doc,自动生成接口文档。通过攻略的学习,您将了解如何在Spring Boot项目中添加smart-doc依赖,以及如何使用smart-doc生成接口文档。 示例一:添加smart…

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