本机搭建RabbitMQ

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

一、下载安装包,搭建过程

二、重要概念介绍

三、创建用户

方式一:命令行

方式二:管理后台

3.1 创建用户

3.2 分配权限

3.3 提升用户为管理员

3.4 验证

四、创建exchange和queue

五、测试验证发送和消费功能

5.1 发送消息

5.2 消费消息

5.3 从管理台进行验证

​编辑

六、测试获取消息内容

总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、下载安装包,搭建过程

这篇文章里说的非常的详细了,Windows系统的直接按步骤操作,没什么难度

一文详解Windows安装配置RabbitMQ教程及RabbitMQ常用命令及解决Erlang Could not be detected.you must install Erlang before_windows rabbitmq-CSDN博客

二、重要概念介绍

Exchange(交换机)

作用:Exchange是消息的路由器。生产者将消息发送给exchange,而不是直接发送给队列。exchange根据预定义的规则(称为binding)来决定哪些消息应该路由到哪个队列

类型:Exchange有多种类型,如direct(直接交换机)、fanout(广播交换机)、topic(主题交换机)和headers(基于消息头的交换机),每种类型的exchange有不同的路由策略

配置:Exchange需要预先声明,指定其类型和任何其他相关配置

Queue(队列)

作用:Queue是消息的实际存储区域,它是消息的临时容器。队列中的消息被消费者消费,或者在队列满时被丢弃(如果配置了限制)

特性:队列可以是持久的,意味着即使RabbitMQ服务器重启,队列也会保留。队列也可以是非持久的,服务器重启后队列将消失

消费:消费者从队列中获取消息,可以是同步的(一次性获取一条消息并确认)或异步的(批量获取或流式消费)

Channel(信道)

作用:Channel是客户端和服务器之间的逻辑连接,用于发送和接收消息。它允许在单个TCP连接上创建多个独立的并行通道,提高了效率

资源管理:创建和销毁TCP连接是昂贵的操作,因此通常会复用一个TCP连接并创建多个channel来处理不同的任务

并发:在一个应用程序中,通常会为每个任务或线程创建一个单独的channel,以保持操作的隔离

三、创建用户

通常我们安装、启动RabbitMQ成功之后,系统默认用户guest/guest,该用户的权限比较大,日常使用过程中需要根据需要创建不同权限的用户

创建用户有两种方式:

方式一:命令行

这里password是你为admin用户设置的密码

rabbitmqctl add_user admin password

接下来,你需要提升用户权限,使其具有管理权限

rabbitmqctl set_user_tags admin administrator

分配vhost权限

rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

这三个通配符参数".*"分别代表配置(conf),写(write)和读(read)权限,.*表示所有权限。
如果你想更具体地控制权限,可以将通配符替换为具体的权限字符串

方式二:管理后台

3.1 创建用户

在左侧菜单中,点击“Users”

点击右上角的“Add user”按钮

输入用户名(例如admin)和密码

点击“Add”按钮

3.2 分配权限

在用户列表中,找到刚创建的admin用户,点击它的名称

在用户详情页面,选择“Permissions”选项卡

选择要分配权限的vhost(通常是/)

在“Configure permissions”、“Write permissions”和“Read permissions”字段中,输入通配符.*来授予所有权限,或者输入特定的权限字符串

点击“Set Permissions”按钮

3.3 提升用户为管理员

返回到用户列表,再次点击admin用户

在用户详情页面,滚动到“User tags”部分

勾选“administrator”复选框

点击“Update”按钮

3.4 验证

退出当前的guest用户,然后使用新创建的admin用户和密码登录。现在,admin用户应该有权限创建exchange和其他管理操作

注意:不要试图创建amq.test这种exchange,即使你设置了权限,也会提示没有权限

四、创建exchange和queue

使用admin账户登入,然后切换到exchange,建议在管理台操作,简单快捷

然后再切换到queue

 

第三步,将exchange和queue绑定

 

至此,前期准备工作完成

五、测试验证发送和消费功能

5.1 发送消息

此处我用了一个简单的python脚本,相较springboot集成rabbitmq进行验证,有快捷简单的优点

# 导入pika库,它提供了与RabbitMQ交互的接口
import pika
# 创建一个到RabbitMQ服务器的阻塞式连接,'localhost'应替换为实际的服务器地址
connections = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
# 获取一个通道(channel),它是与RabbitMQ进行通信的实体
channel = connections.channel()
# 声明一个名为'my_direct_exchange'的exchange,类型为'direct'
# direct exchange是最基础的类型,消息会根据routing key精确匹配到queue
channel.exchange_declare(exchange='test-mq', exchange_type='direct', durable=True)
# 定义要发送的消息,这里是一个简单的字符串'Hello, World!'
message = 'Hello, world'
# 发布消息到exchange,指定exchange名称、routing key和消息体
# routing key将决定消息如何路由到queue
channel.basic_publish(exchange='test-mq', routing_key='test-queue-1', body=message)
# 关闭连接,释放资源
connections.close()

5.2 消费消息

import pikadef callback(ch, method, properties, body):# 这个回调函数会在接收到消息时被调用print(body)# 在这里处理消息,比如处理业务逻辑ch.basic_ack(delivery_tag=method.delivery_tag)connections = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connections.channel()
# 声明一个队列(如果不存在,会自动创建)
channel.queue_declare(queue='test-queue-1', durable=True)
# 定义消息消费行为
channel.basic_consume(queue='test-queue-1', on_message_callback=callback, auto_ack=False)
# 开始消费消息
channel.start_consuming()

5.3 从管理台进行验证

每隔10秒会刷新,上图列出来的是消息待消费消息总数,下图列出来的是每个时间段发送消息的数量

六、测试获取消息内容

至此,RabbitMQ的搭建及使用就完成了。


总结

在小小的公司里面,挖呀挖呀挖!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/12660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024/5/15 英语每日一段

Many pet owners are now turning to pet insurance policies to avoid higher vet bills should something bad happen unexpectedly. But Carlson said that preventive veterinary care—like vaccination, parasite control and weight management—is "the best way …

工作高效记事软件是什么 好用的高效记事软件

阳光斜洒在办公桌上,我埋头于一堆杂乱的文件中,头脑里充斥着各种待办事项。电话铃声突然响起,是老板打来的,提醒我下午三点有个重要会议。挂断电话后,我赶紧拿起笔想在便签上记下,却发现桌面已经被各种便签…

详解NodeJS事件循环

官网:node官网-事件循环 浏览器中的事件循环是由HTML规范来定义,之后由各浏览器厂商实现的,而node中的事件循环的定义与实现均由libuv引擎完成。 node使用chrome v8引擎作为js解释器,v8引擎分析代码后,主线程立即执行…

立创EDA绘制PCB电路板

1、绘制好原理图后,点击设计---原理图转PCB,生成PCB文件 2、将元器件拖入电路板方框内,摆放布局并使用工具栏布线、放置过孔及丝印 3、然后顶层和底层铺铜 4、后面就可以生成制板文件发送嘉立创制板了。

羊大师,羊奶真不错

羊大师,羊奶真不错 在众多乳制品中,羊奶以其独特的营养价值和美味口感赢得了人们的青睐。今天,小编羊大师想与大家分享羊奶的种种优点,让我们一同领略它的魅力。 羊奶的营养价值极高。它含有丰富的蛋白质、脂肪、矿物质和维生素&…

无独立显卡如何安装Pytorch

以前我是直接在colab中使用pytorch,非常方便,今天折腾了一上午,终于搞定了pytorh的安装和环境设置,分享下我的安装流程,遇到的问题和解决方案。 1. 用pip安装Pytorch 打开cmd窗口(按win R)&a…

端午佳节,品尝食家巷传统面点与黄米粽子礼盒

端午佳节,品尝食家巷传统面点与黄米粽子礼盒 在这个端午节来临之际,食家巷倾情推出一款别具特色的端午礼盒,将甘肃的传统面点与地方特色黄米粽子完美融合,为您带来一场美味与传统的邂逅。 这款礼盒以甘肃传统面点一窝丝、油饼和烤…

电子邮箱怎么注册?电子邮箱注册教程,只需要三步

电子邮箱在我们工作和生活中都是必不可少的沟通工具。电子邮箱怎么注册?电子邮箱的注册步骤是怎么样的?本文将从电子邮箱注册前的准备资料介绍,到具体电子邮箱注册的三个步骤进行详细讲解。 一、电子邮箱注册前的准备 电子邮箱是一个具有唯…

联丰策略炒股官网分析地产链条中的家电,一个不能再忽视的板块

查查配“上涨放量,盘整缩量”是近期市场的一个重要特征,这说明空头衰竭、新的做多力量或正在蓄力。昨天我们也以调查问卷的方式与大家进行了讨论,对于市场未来将会如何演绎?近一半投票认为“牛在路上,逢低加仓”。与此同时,当前市场中,多条主线还在发力,比如地产链条中的家电,…

Python项目——基于回合制的RPG游戏设计与实现

基于回合制的RPG游戏设计与实现 项目概述 《魔法冒险》是一款基于回合制战斗的角色扮演游戏。玩家将创建一个角色,探索世界,战斗敌人,收集物品并提升等级。 项目设计报告 一、引言 本项目的目标是实现一个基于回合制战斗的 RPG 游戏&…

买了个彩票,哈哈哈哈哈。

买了个彩票-双色球,发现挺有意思的。 索性把双色球的所有期的中奖号码的数据都爬了下来,03至今,21年了。txt文本,6.5MB大小。 大家有啥好的建议,分析一下数据呢。

刘邦痛恨的叛徒雍齿,为何后来还被封了侯?

雍齿,原是沛县的世族出身,家庭往上追溯几代,也曾经显赫过。 虽然比不上先祖世代为楚将的项梁、项羽,但雍齿这个没落的世族后代,身上多多少少也还讲究点贵族遗风。 战国时期,以秦国的军功爵制为代表&#…

亚马逊等平台有哪些风控因素,如何真正做好自养号测评

很多测评人都知道亚马逊风控是非常严的,想要做好亚马逊测评需要解决很多风控问题,但是往往很多测评工作室技术不够,或者根本不了解风控点,以为只要IP或者指纹浏览器就可以做,这是非常错误的,也导致了很多隐…

3D 生成重建009-DreamGaussian使用gaussian splatting在两分钟内生成3d

3D 生成重建009-DreamGaussian使用gaussian splatting在两分钟内生成3d 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 DreamGaussian是第一个使用gaussian splatting方法进行3d生成的工作。论文最先使用gaussian splatting替代原来用nerf表示3d。整体架构依然保留了原来的…

VMware Workstation Pro 和 Fusion Pro 针对个人用户使用免费了

今早看到 VMware by Broadcom 官方博客 VMware Desktop Hypervisor Pro Apps Now Available for Personal Use - VMware Cloud Foundation (VCF) Blog 以及 Learn more about VMware Desktop Hypervisor Products Subscription Model 总结如下: 免费 Player 版本将…

VBA 引用从SQL数据库取数据的几个方法

首先,要定义连接的数据集 Set objRec CreateObject("ADODB.Recordset")Set objConn CreateObject("ADODB.Connection")然后在代码中要定义SQL语句,以便获取数据 sqlstr sqlstr " select t1.FBillNo ,t_Item.fname type,t1…

OpenAI 重磅发布GPT 4o!可以视频聊天的AI?

OpenAI 重磅发布GPT 4o! 前言 就在今日,OpenAI发布了ChatGPT-4o版本,技术主管 Mira Murati 在直播中表示GPT-4o对比之前版本速度更快,在文本、视频和音频方面的能力也都有所提高。值得注意的是它还可以让用户与 ChatGPT 进行视频聊…

通电即用,极简运维:带您10分钟零配置启动超大型园区网络

为顺应数字经济发展潮流,越来越多企业选择云网融合,这给企业园区的运维人员,特别是中大型企业园区的运维人员带来新的挑战:随着企业规模扩大,系统和应用程序的复杂性也在增加,运维人员需要不断学习新技术&a…

多维 HighChart

showHighChart.html <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><!-- js脚本都是官方的,后两个是highchart脚本 --><script type"text/javascript" src"jquery1.7.1.min.js"&g…