node-red:使用node-red-contrib-amqp节点,实现与RabbitMQ服务器(AMQP)的消息传递

node-red-contrib-amqp节点使用

  • 一、简介
    • [1.1 什么是AMQP协议?](#1.1 什么是AMQP协议?)
    • [1.2 什么是RabbitMQ? -> 开源的AMQP协议实现](#1.2 什么是RabbitMQ? -> 开源的AMQP协议实现)
    • [1.3 RabbitMQ的WEB管理界面介绍](#1.3 RabbitMQ的WEB管理界面介绍)
    • [1.3 如何实现RabbitMQ的数据采集? -> node-red](#1.3 如何实现RabbitMQ的数据采集? -> node-red)
  • 二、node-red-contrib-amqp节点安装与使用教程
    • [2.1 节点安装](#2.1 节点安装)
    • [2.2 节点使用](#2.2 节点使用)
      • [2.2.1 amqp-broker节点](#2.2.1 amqp-broker节点)
      • [2.2.2 amqp-in节点](#2.2.2 amqp-in节点)
      • [2.2.3 amqp-in-manual-ack节点](#2.2.3 amqp-in-manual-ack节点)
      • [2.2.4 amqp-out节点](#2.2.4 amqp-out节点)

回到目录

一、简介

1.1 什么是AMQP协议?

AMQP,即 Advanced Message Queuing Protocol(高级消息队列协议),是一个网络协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。

AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。

详细内容参考链接:RabbitMQ系列四 AMQP协议介绍

回到目录

1.2 什么是RabbitMQ? -> 开源的AMQP协议实现

RabbitMQ是一个开源的AMQP协议实现,是在AMQP基础上完整的,可复用的企业消息系统。学习参考链接如下:

1.3 RabbitMQ的WEB管理界面介绍

一、总界面

  1. connections:无论生产者还是消费者,都需要与RabbirMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况。
  2. channels:通道,建立连接后,会形成通道,以消息的投递获取以来通道。
  3. Excahnges:较平缓及,用来实现消息的路由。
  4. Queues:队列,即消息队列,消息存放在队列中,等待小品非,消费后被移除队列。

二、获取AMQP协议端口

三、查看交换机和路由

回到目录

1.3 如何实现RabbitMQ的数据采集? -> node-red

使用node-red的node-red-contrib-amqp节点,连接到RabbitMQ服务器(AMQP),以使用路由键从某个主题获取一些消息,实现客户端与消息中间件数据的传递。

二、node-red-contrib-amqp节点安装与使用教程

2.1 节点安装

node-red安装节点@meowwolf/node-red-contrib-amqp ,基于AMQP协议,实现客户端与消息中间件数据的传递。

回到目录

2.2 节点使用

2.2.1 amqp-broker节点

amqp-broker节点是指"AMQP消息代理器",对应一个RabbitMQ实例,是一种中间件,用于接收、存储和转发消息。

这里的端口查看,请转至上节《1.3 RabbitMQ的WEB管理界面介绍》

2.2.2 amqp-in节点

该节点能连接到AMQP代理并获取消息,已msg.payload的形式输出,输出格式如下:

节点使用说明如下:

其中Exchange Info(交换信息)需要根据RabbitMQ中的实际情况进行配置:

  • type :指的是AMQP的消息路由方式,定义了消息如何从一个发送到AMQP消息代理(broker)的交换机(exchange)路由到一个或多个队列。有topic、direct、fanout和headers四种类型。

以下是这四种类型的简要说明:

  1. Topic Exchange
  • 灵活性最强的一种路由方式。它使用通配符来匹配消息的routing key,并支持模糊匹配和精确匹配。
  • 允许发送者指定routing key,并在其中使用通配符(如"*"和"#")来表示模式。接收者可以通过绑定与这些模式匹配的routing key来接收消息。
  1. Direct Exchange:
  • 最简单的路由方式。它根据消息的routing key进行精确匹配,将消息路由到与该key完全匹配的队列。
  • 发送者和接收者需要就消息的routing key达成一致,以确保消息能够正确路由。
  1. Fanout Exchange
  • 将收到的所有消息广播到与该交换机绑定的所有队列。它不关心消息的routing key,只是简单地将消息分发给所有连接的队列。
  • 适用于需要将消息发送给多个接收者的场景,例如发布-订阅模型。
  1. Headers Exchange
  • 根据消息头的属性进行路由。发送者可以在消息头中设置一组键值对,而接收者可以绑定特定的键值对来接收消息。
  • 提供了比routing key更复杂的匹配逻辑,但性能通常较差,因此在实际应用中较少使用。
  • Exchange Name :交换机名称
  • RoutingName: 指定一个RoutingKey(路由key),将队列与交换机的绑定

使用示例如下:

msg.payload输出示例如下:

回到目录

2.2.3 amqp-in-manual-ack节点

该节点实现连接到AMQP代理,接收消息,并手动确认收到。与上节amqp-in节点使用及作用相同,不同的地方在于本节点在接收到消息时,要手动确认收到

此节点默认将 noAck 设置为 false。您必须通过节点输入发送消息来手动确认或拒绝接收。任何未确认的消息将在客户端关闭或重新启动后重新排队。如果您不需要像这样手动确认消息,请使用 amqp-in 节点。有关如何使用此节点的更多信息,请参阅导入库中的示例流。
回到目录

2.2.4 amqp-out节点

连接到AMQP代理并发送消息。

回到目录

相关推荐
前端世界12 分钟前
HarmonyOS开发实战:鸿蒙分布式生态构建与多设备协同发布全流程详解
分布式·华为·harmonyos
牛奶咖啡1319 分钟前
Linux系统的常用操作命令——文件远程传输、文件编辑、软件安装的四种方式
运维·服务器·软件安装·linux云计算·scp文件远程传输·vi文件编辑·设置yum的阿里云源
weixin_4373982123 分钟前
转Go学习笔记(2)进阶
服务器·笔记·后端·学习·架构·golang
DavidSoCool1 小时前
RabbitMQ使用topic Exchange实现微服务分组订阅
分布式·微服务·rabbitmq
tan77º2 小时前
【Linux网络编程】Socket - UDP
linux·服务器·网络·c++·udp
掘金-我是哪吒2 小时前
分布式微服务系统架构第158集:JavaPlus技术文档平台日更-JVM基础知识
jvm·分布式·微服务·架构·系统架构
东窗西篱梦3 小时前
Redis集群部署指南:高可用与分布式实践
数据库·redis·分布式
Acrel_Fanny3 小时前
Acrel-1000系列分布式光伏监控系统在湖北荆门一马光彩大市场屋顶光伏发电项目中应用
分布式
xufwind3 小时前
spark standlone 集群离线安装
大数据·分布式·spark
szxinmai主板定制专家3 小时前
【精密测量】基于ARM+FPGA的多路光栅信号采集方案
服务器·arm开发·人工智能·嵌入式硬件·fpga开发