RabbitMQ 03 直连模式-可视化界面
这里先演示最简单的模型:直连模式。其结构图为:
一个生产者 -> 消息队列 -> 一个消费者
生产者只需要将数据丢进消息队列,而消费者只需要将数据从消息队列中取出,这样就实现了生产者和消费者的消息交互。
创建一个新的实验环境,即新建一个Virtual Host。
添加新的虚拟主机之后,我们可以看到,当前admin用户的主机访问权限中新增了刚刚添加的环境。
查看交换机。
交换机列表中自动新增了刚刚创建好的虚拟主机相关的预设交换机,一共7个。
这里首先介绍一下前面两个
direct
类型的交换机,一个是(AMQP default)
还有一个是amq.direct
,它们都是直连模式的交换机。单击
(AMQP default)
进入详情。(AMQP default)
是所有虚拟主机都会自带的一个默认交换机。此交换机默认绑定到所有的消息队列。
如果是通过默认交换机发送消息,会根据消息的
routingKey
(发消息时指定)决定发送给哪个同名的消息队列,同时也不能显式地将消息队列绑定或解绑到此交换机。此交换机不可删除。
可以看到,详细信息中,特征(Features)项为:
durable:true
,表明当前交换机特性是持久化的,也就是说就算机器重启,此交换机也会保留;如果不是持久化,那么一旦重启就会消失。在列表中看到
D
的字样,就表示此交换机是持久化的。所有自动生成的交换机都是持久化的。
单击
amq.direct
进入详情。这个交换机和默认交换机类型一致,并且也是持久化的。
但是可以看到它是具有绑定关系的,如果没有指定的消息队列绑定到此交换机上,那么这个交换机无法正常将信息存放到指定的消息队列中,也是根据
routingKey
寻找消息队列(可以自定义)。
查看消息队列。目前没有消息队列,所以需要创建一个。
- Virtual host:虚拟主机。这里选择自建的,在这个虚拟主机下创建此消息队列。
- Type:类型。选择
Classic
,也就是经典类型。 - Name:名称。可以随便取,这里取test。
- Durability:持久化。这里选择Durable,即持久的。
- Auto delete:自动删除。这里选择
No
,如果选Yes
,即代表需要至少有一个消费者连接到这个队列,一旦所有与这个队列连接的消费者都断开时,就会自动删除此队列。 - Arguments:参数。暂时不用设置。
点击创建的消息队列名称,可查看详情。
详细信息中包括队列的当前负载状态、属性、消息队列占用的内存,消息数量等。
从绑定信息可以发现,该队列默认绑定了交换机,就是前面介绍的
(AMQP default)
默认交换机。现在需要将此消息队列绑定到
amq.direct
,这样就可以通过此交换机向此消息队列发送消息了:回到交换机。这里也显示了与队列的绑定关系。
向该消息队列中发送一条消息:
回到队列。
可以看到已经有一条消息了:
获取消息。
选择Get messages,可以获取消息:
Ack Mode:接收消息的模式。有4种,分别为:
Nack message requeue true
:获取到消息的内容;不会去消费消息。Automatic ack
:获取到消息的内容;会去消费消息。Reject requeue true
:拒绝获取消息;消息重新入队。Reject requeue false
:拒绝获取消息;消息不重新入队,将会被删除。
这里使用默认的即第1种就可以了,这样只会查看消息,但是不会取出,消息依然存在于消息队列中。
Encoding:编码格式。使用默认的就可以。
Messages:要生效的操作数量。选择1就行。
消息已经成功读取到。
除了在交换机发送消息给消息队列之外,也可以直接在消息队列这里发。
- Delivery mode:推送方式。
- Non-persistent:不持久化。如果服务器重启,此消息删除。
- Persistent:持久化。如果服务器重启,此消息依然存在。
- Headers:头部信息。
- Properties:属性。
- Payload:载荷的消息。
- Delivery mode:推送方式。
如果不需要再使用此消息队列了,可以手动对其进行删除或是清空。
- 环境
- Ubuntu 22.04
- RabbitMQ 3.11.10
- Erlang 25.3
RabbitMQ 03 直连模式-可视化界面的更多相关文章
- RabbitMQ入门-Routing直连模式
Hello World模式,告诉我们如何一对一发送和接收消息: Work模式,告诉我们如何多管齐下高效的消费消息: Publish/Subscribe模式,告诉我们如何广播消息 那么有没有灵活强一点的 ...
- docker swarm 集群及可视化界面的安装及配置
docker swarm 集群及可视化界面的安装及配置 2016-12-14 16:08:46 标签:swarm consul registrator 原创作品,允许转载,转载时请务必以超链接形式标明 ...
- RabbitMQ详解(三)------RabbitMQ的五种模式
RabbitMQ详解(三)------RabbitMQ的五种模式 1.简单队列(模式) 上一篇文章末尾的实例给出的代码就是简单模式. 一个生产者对应一个消费者!!! pom.xml 必须导入Rab ...
- CentOS7安装GNOME可视化界面和如何配置IP地址
本人在虚拟机安装 CentOS7 1,检查一下我们已经安装的软件以及可以安装的软件,用命令 yum grouplist 2,然后安装我们需要的图形界面软件,GNOME(GNOME Desktop) 这 ...
- 基于 HTML5 的 PID-进料系统可视化界面
前言 随着工业物联网和互联网技术的普及和发展,人工填料的方式已经逐渐被机械设备取代.工业厂商减小误操作.提升设备安全以及追求高效率等制造特点对设备的要求愈加高标准.严要求.同时机械生产以后还需遵从整个 ...
- Docker搭建Portainer可视化界面
为了解决上回说到的问题,在网上找了找 找到了一个 非常有好的可视化界面管理工具. Portainer 是什么东西 (开源轻量级) Portainer是Docker的图形化管理工具,提供状态显示面板.应 ...
- Python可视化界面编程入门
Python可视化界面编程入门具体实现代码如所示: (1)普通可视化界面编程代码入门: import sysfrom PyQt5.QtWidgets import QWidget,QApplicati ...
- SpringBoot整合RabbitMQ实现六种工作模式
RabbitMQ主要有六种种工作模式,本文整合SpringBoot分别介绍工作模式的实现. 前提概念 生产者 消息生产者或者发送者,使用P表示: 队列 消息从生产端发送到消费端,一定要通过队列转发,使 ...
- awt可视化界面上传数据到mysql,jsp通过jdbc方式查询数据库,并将结果打印在网页上
今天尝试写一个小demo实现下之前看过的代码,目的了解不同文件的数据访问,掌握如何获取前台数据,如何将数据库的数据在前端页面展示. awt可视化界面可已实现提交数据到数据库,也可查询数据在控制台打印. ...
- GDB-Dashboard-GDB可视化界面
项目地址 https://github.com/cyrus-and/gdb-dashboard 项目介绍 gdb-dashboard是一个gdb的可视化界面,可以通过web或者终端来现实可视化信息,支 ...
随机推荐
- npm模块全局安装后无法使用解决方案
好家伙 npm模块全局安装后无法使用 估计是少配了环境变量 1.使用命令: npm config get prefix 找到全局包的安装位置 2.随后我们右键"我的电脑"打 ...
- C++11的类型转换
//C类型转换 /* C语言:显式和隐式类型转换 隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译失败 显式类型转化:需要用户自己处理. 隐式类型:界定:相关类型,相近类型,意义相似的类 ...
- Apache Hudi 在 vivo 湖仓一体的落地实践
作者:vivo 互联网大数据团队 - Xu Yu 在增效降本的大背景下,vivo大数据基础团队引入Hudi组件为公司业务部门湖仓加速的场景进行赋能.主要应用在流批同源.实时链路优化及宽表拼接等业务场景 ...
- Java 常用类 JDK 8 之前日期和时间的API测试
1 package com.bytezero.stringclass; 2 3 import org.junit.Test; 4 5 import java.util.Date; 6 7 8 /** ...
- C++ //常用查找算法 find_if
1 //常用查找算法 find_if 2 #include<iostream> 3 #include<string> 4 #include<vector> 5 #i ...
- 18 Codeforces Round 853 (Div. 2)C. Serval and Toxel's Arrays(算贡献)
C. Serval and Toxel's Arrays 这种题目做多了应该很容易从贡献的角度去考虑了. 考虑当前版本对答案的贡献,首先这个版本和其他版本取交集至少会包含它本身所以直接先把\(i * ...
- 重新认识 tag 快照 git (项目临时添加需求,之前有分支合并,导致从节点拉分支不行了,因为没有tag快照)
之前的tag认知 之前一直以为tag就是在git的提交commit上打一个标,然后可以拉出分支.之前没太重视. 因为我觉得 可以直接从某个commit直接拉出分支,这打不打tag无所谓 翻车现场 今天 ...
- 使用pymysql库,将tushare股票信息保存入本地MySQL数据库
使用pymysql库,将tushare股票信息保存入本地MySQL数据库 1.前言 由于tushare存在积分权限限制,高频读取tushare数据容易挤占服务器带宽,因此对于常用的tushare数据, ...
- day03-自己实现Mybatis底层机制-02
自己实现Mybatis底层机制-02 7.任务阶段4&5 阶段4任务:开发Mapper接口和Mapper.xml 阶段5任务:开发和Mapper接口相映射的MapperBean (1)Mapp ...
- vscode自动生成头文件
Ctrl Shift P 输入:snipp,选配置用户代码片段,新建全局代码片段文件,修改下列模板: { // Place your 全局 snippets here. Each snippet is ...