当前位置: 首页 > news >正文

RabbitMQ 安装(Windows版本)和使用

安装

安装包获取

可以自己找资源,我这里也有百度云的资源,如果没失效的话可以直接用。

通过百度网盘分享的文件:RabbitMQ
链接:https://pan.baidu.com/s/1rzcdeTIYQ4BqzHLDSwCgyw?pwd=fj79 
提取码:fj79 
 

安装教程可参考:消息队列RabbitMQ在Windows中安装与配置完全解析_rabbitmq windows-CSDN博客

主要就是安装和设置环境变量,安装的时候版本对应上就可以了。

插件安装

安装插件后就可以后续进入到 web 的管理界面

rabbitmq-plugins.bat enable rabbitmq_management

启动服务

rabbitmq-service start

界面操作

http://127.0.0.1:15672/

用户名密码默认都是 guest

登录到界面,就可以看到队列的整体情况了。

还可以在界面上进行新增队列等操作

pika使用

可使用 python 的第三方包 pika 连接使用 rabbitmq 进行消息队列的发送和接收,示例如下。

我下面的示例使用的是 pika==0.13.1,所以先安装包 pip install pika==0.13.1

server.py

import jsonimport pika# 无密码
# connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))# 有密码
credentials = pika.PlainCredentials("guest", "guest")
connection = pika.BlockingConnection(pika.ConnectionParameters(host='127.0.0.1',port=5672,virtual_host='/',credentials=credentials))channel = connection.channel()# 创建一个队列
channel.queue_declare(queue='hello')# 发送数据
for i in range(5):value = f"Hello world! {i}"print(f"Sent '{value}'")msg = {"key": value}body = json.dumps(msg)# 同一条消息同时往多个队列发送channel.basic_publish(exchange='',routing_key='hello',  # 消息队列名称body=body)  # 发送的数据channel.basic_publish(exchange='',routing_key='test_queue',  # 消息队列名称body=body)  # 发送的数据connection.close()

client.py

import jsonimport pikacredentials = pika.PlainCredentials('guest', 'guest')  # rabbit用户名和密码
connection = pika.BlockingConnection(pika.ConnectionParameters('127.0.0.1', port=5672, virtual_host='/', credentials=credentials))
channel = connection.channel()channel.queue_declare(queue='hello')# 3.确定回调函数
def callback(ch, method, properties, body):print("Received %r" % body)# 手动应答s = body.decode('utf-8')  # 将 bytes 转换为字符串data = json.loads(s)print(data)# 4.确定监听队列参数
channel.basic_consume(callback,queue='hello',no_ack=True)print('Waiting for messages. To exit press CTRL+C')# 5.正式监听
channel.start_consuming()

报错解决

如果报错:

AttributeError: module 'collections' has no attribute 'Callable'

将报错行的 collections.Callable 修改为 collections.abc.Callable 即可。

这个报错一般是 python 的版本太高导致。


http://www.mrgr.cn/news/60792.html

相关文章:

  • 对通用骨架提取方法的改进
  • [LeetCode] 784. 字母大小写全排序
  • 量化交易打怪升级全攻略
  • 如何将markdown文件转换为pdf
  • 线性变换的矩阵表示
  • nginx------HTTP模块配置详解
  • UR机器人RTDE(Real-Time Data Exchange,实时数据交换)
  • redis集群(主从同步、哨兵、群集)
  • 风控建模中变量缺失值率多少应该删除?如何处理缺失值?
  • 扫盲(索引存储)
  • Xcode 格式化代码快捷键
  • [简易版] 自动化脚本
  • 自动化测试用例如何编写
  • CSS - 保姆级面试基础扫盲版本一
  • ChatGPT 4.0 功能竟然如此强大!
  • 基于Spring Boot+Unipp的校园志愿者小程序(图形化分析)
  • 动态规划 —— 路径问题-不同路径
  • shiro(会话管理Session Management,加密Cryptography)
  • 大语言模型驱动的跨域属性级情感分析——论文阅读笔记
  • Zone Transfer详解
  • UG/NX 安装
  • 【设计模式系列】适配器模式(九)
  • HarmonyOS项目开发一多简介
  • 十五、智能指针
  • 线程的理解及基本操作
  • 一些待机电流波形特征