首页 > 其他分享 >用rabbitmqadmin 模拟消息的创建、发布、订阅

用rabbitmqadmin 模拟消息的创建、发布、订阅

时间:2024-12-03 15:10:28浏览次数:6  
标签:info 订阅 logs exchange queue rabbitmqadmin error 模拟

前言

rabbitmqadmin 工具可以方便地管理 RabbitMQ 的资源,
包括创建交换机 Exchanges 、队列 Queues 、绑定 Bindings ,以及发布 Publish 和订阅 Subscribe 消息。

确保你已经下载并安装了 rabbitmqadmin,并且 RabbitMQ 管理插件是启用的。你可以从 http://localhost:15672/cli/ 下载 rabbitmqadmin 脚本:

wget http://localhost:15672/cli/rabbitmqadmin
chmod +x rabbitmqadmin
file rabbitmqadmin
mv rabbitmqadmin /usr/local/bin/

1. 创建 Topic Exchange

首先,我们创建一个名为 my_topic_exchangetopic 类型交换机。

rabbitmqadmin declare exchange --vhost=/ name=my_topic_exchange type=topic durable=true auto_delete=false
rabbitmqadmin list exchanges

2. 创建 Queue

接下来,创建两个队列:queue.logs.errorqueue.logs.info。我们将为不同的日志级别(如错误和信息)分别设置队列。

rabbitmqadmin declare queue --vhost=/ name=queue.logs.error durable=true auto_delete=false
rabbitmqadmin declare queue --vhost=/ name=queue.logs.info durable=true auto_delete=false
rabbitmqadmin list queues

3. 绑定 Queue 到 Exchange

现在,我们需要将队列绑定到交换机,并指定路由键(routing key)。对于 queue.logs.error,我们只对带有 .error 后缀的消息感兴趣;而对于 queue.logs.info,我们关注所有以 .info 结尾的消息。

rabbitmqadmin declare binding --vhost=/ source=my_topic_exchange destination=queue.logs.error routing_key="*.error"
rabbitmqadmin declare binding --vhost=/ source=my_topic_exchange destination=queue.logs.info routing_key="*.info"
rabbitmqadmin list bindings

这里使用了通配符 *,表示匹配任意单个单词。如果你想更精确地控制,可以使用 # 来匹配零个或多个单词。

4. 发布消息

使用 publish 命令向 my_topic_exchange 发送消息。我们可以发送不同类型的消息来测试不同队列的行为。

发布一条错误日志消息

rabbitmqadmin publish --vhost=/ exchange=my_topic_exchange routing_key="app.error" payload='{"log": "This is an error message"}'

发布一条信息日志消息

rabbitmqadmin publish --vhost=/ exchange=my_topic_exchange routing_key="app.info" payload='{"log": "This is an info message"}'

5. 订阅并消费消息

为了消费消息,可以使用 get 命令从队列中获取消息。

注意,这是一次性的操作,即每条消息只会被取出一次。

如果希望持续监听消息,需要编写一个消费者程序或者使用其他工具如 amqp-cli

queue.logs.error 获取消息

rabbitmqadmin get --vhost=/ queue=queue.logs.error ackmode=ack_requeue_false

queue.logs.info 获取消息

rabbitmqadmin get --vhost=/ queue=queue.logs.info ackmode=ack_requeue_false

命令中的ack_requeue_false 表示一旦消息被取出后就不会再放回队列;如果设置为 true,则消息会在处理后重新入队。

验证

通过访问 RabbitMQ 的 Web 管理界面 (http://localhost:15672) 或者使用 rabbitmqadmin 查看交换机、队列的状态和消息情况。

标签:info,订阅,logs,exchange,queue,rabbitmqadmin,error,模拟
From: https://www.cnblogs.com/max27149/p/18584142

相关文章

  • 模拟实现vector(非常详细)
    模拟实现vector1.基本概念2.vector()默认构造函数3.size()4.capacity()5.empty()6.reverse7.push_back()8.pop_back()9.operator[]10.resize()1.基本概念上一节我们讲了vector的概念以及常用的接口,这一节我们讲一下它的实现,它的底层其实就只有三个成员变量:_start,_......
  • 【知识】模拟退火
    模拟退火概念:温度(步长):初始温度\(T\)终止温度衰减系数$0\sim1$随机选择一个点:\(f(新点)-f(当前点)=\DeltaE\)\(\DeltaE<0\)跳到新点\(\DeltaE>0\)以一定概率跳过去,概率为\(e^{-\frac{\DeltaE}{T}}\)过程如下图:题型:AStarnota......
  • 12.02 CW 模拟赛 T2.排列
    前言也是找到了韩国原题,有用!算法场上有一个比较显然的想法,即计算出每种逆序对数量对应多少排列,从而计算出排名第\(k\)小的排列有多少个逆序对但是即使计算出来了,我们也不好实现,分析原因发现,实际上是因为不好确定应该怎么填数,时间复杂度仍然趋势一个显然的想......
  • 二维的集合卡尔曼滤波(Ensemble Kalman Filter,EnKF)(模拟平面上的目标跟踪),MATLAB代码
    集合卡尔曼滤波(EnsembleKalmanFilter,简称EnKF,与ExtendKalmanFilter的简称进行区分)是一种基于状态估计的非线性滤波方法,广泛应用于动态系统中的状态估计和数据同化问题。它通过使用一组样本(即“集合”)来近似状态的概率分布,有效地处理高维和非线性系统。文章目录......
  • Winform窗体控件双向绑定数据模拟读写PLC数据
    1.用Modbus工具模拟PLC2.创建一个实体类点击查看代码internalclassData:INotifyPropertyChanged{ushort[]ushorts=newushort[10];publicushortD0{get=>ushorts[0];set{ushorts[0]=value;OnPropertyChanged(nameof(D0));}}publicushor......
  • 12.2 CW 模拟赛 赛时记录
    前言\(12\)月的第一场,没有大样例这次带了耳塞,注意考试方法其实并不复杂,先看题吧带上耳塞,终于舒服了看题\(\rm{T1}\)结论题?\(\rm{T2}\)\(\rm{HS}\)似乎讲过???但是我忘了,一会看能不能推一下多半是找规律\(\rm{T3}\)性质题?\(\rm{T4}\)数据结构维护吧,......
  • SQLServer发布订阅进阶之表分组同步
     表分组后的发布当数据量过大查询太慢时,开发会对表进行分组,如下:这时数据库会产生多个数据文件,如何同步这种状态下的数据库呢?发布和订阅参照以上方法进行,完成后订阅库发现只有一个数据库文件和一个数据库日志。手动选择:打开SMSS—复制—本地发布—发布数据库—右键—发布属......
  • 你知道什么是RSS订阅吗?说说它的原理是什么?
    RSS(ReallySimpleSyndication,简译:真正简单的聚合)是一种用于发布更新的网络内容的标准化格式,例如博客文章、新闻标题、音频或视频节目。它允许用户使用称为RSS阅读器或聚合器的软件订阅他们感兴趣的网站。当网站发布新内容时,它会自动发送到订阅者的RSS阅读器。以下是RSS订......
  • 3.qemu模拟开发板
    qemu模拟开发板1.安装软件:sudoapt-getupdate#更新软件列表sudoapt-getinstallqemuqemu-kvmlibvirt-binbridge-utilsvirt-manager#加速下载2.开发板镜像下载:输入命令:适应虚拟机版本Ubuntu18.04......
  • 2、Redis高级特性和应用(发布 订阅、Stream)
    Redis高级特性和应用(发布订阅、Stream)发布和订阅Redis提供了基于“发布/订阅”模式的消息机制,此种模式下,消息发布者和订阅者不进行直接通信,发布者客户端向指定的频道(channel)发布消息,订阅该频道的每个客户端都可以收到该消息。操作命令Redis主要提供了发布消息、订阅频......