RabbitMQ消息队列

Posted tfzz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RabbitMQ消息队列相关的知识,希望对你有一定的参考价值。

RabbitMQ

1.什么是rabbitmq

在生产者和消费者之间加了一个中间件——消息队列,用它可以来干嘛呢?

它是来做消息转发的,当请求过来之后,不是直接发给服务器,而是发给消息队列,然后消息队列把消息中转一下再发给服务器

2.作用

  • 存储消息、数据
  • 保证消息的顺序
  • 保证数据的正确交付

3.rabbitmq安装

安装rabbitmq之前先安装erlang

1.网址选择下载软件

https://www.rabbitmq.com/

技术图片

 

 技术图片

 

 技术图片

 

 2.安装一直下一步即可

4.安装erlang

1.网址下载

https://www.erlang.org/

技术图片

 

 技术图片

 

 2.安装一直下一步即可

python使用rabbitmq

https://www.rabbitmq.com/install-windows.html

1.安装pika

#pika是python操作rabbitmq的模块
pip3 install pika

2.生产者代码

import pika
#1.链接到rabbitmq
connection = pika.BlockingConnection(pika.ConnectionParameters(localhost))
channel = connection.channel()
#2.创建消息队列并命名
channel.queue_declare(queue=hello)
#3.发送消息
channel.basic_publish(exchange=‘‘,
                      routing_key=hello, #消息队列名
                      body=Hello World!) #要发送的消息

print(" [x] Sent ‘Hello World Done!‘")
#4.关闭链接
connection.close()

3.消费者代码

import pika
#1.链接rabbitmq代码
connection = pika.BlockingConnection(pika.ConnectionParameters(localhost))
channel = connection.channel()
#2.队列名
channel.queue_declare(queue=hello)
#3.回调函数:body:要接受的数据为二进制字符串
def callback(ch, method, properties, body):
    print(" [x] Received %r" % body)

channel.basic_consume(queue=hello, #队列名
                      auto_ack=True, #告诉消费者已经拿到了数据
                      on_message_callback=callback) #回调函数

print( [*] Waiting for messages. To exit press CTRL+C)
#4
channel.start_consuming()

4.运行

生产者cmd窗口

python3 生产者文件名.py

消费者cmd窗口2

python3 消费者者文件名.py

以上是关于RabbitMQ消息队列的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ学习笔记五:RabbitMQ之优先级消息队列

RabbitMQ:第二章:Spring整合RabbitMQ(简单模式,广播模式,路由模式,通配符模式,消息可靠性投递,防止消息丢失,TTL,死信队列,延迟队列,消息积压,消息幂等性)(代码

Rabbitmq 消息队列

微服务专题之.Net6下集成消息队列-RabbitMQ交换机模式代码演示(全)

RabbitMQ 消息队列学习

RabbitMQ确认机制问题处理