记录:异步网络框架:twisted
学习参考:www.cnblogs.com/alex3714/articles/5248247.html

RabbitMQ 模块 《消息队列》

先说明:python的队列
1:线程 queue 只在同一进程内的线程间交互数据
2:进程 queue 只在同一父进程及子进程间交互数据
只应用于python,无法和其他语言程序通信

消息队列有如下几种:(Rabbitmq,ZeroMq,ActiveMq)
功能:可以实现,不同程序间的数据交互
安装:
1:下载安装erlang,因为rabbitmq是erlang开发的
yum install ncurses-devel gcc 安装关联包,如果安装了就跳过
解压 otp_src 包:configure;make &
2:下载rabbitmq并进行安装
2:pycharm安装pika 模块

消息分发轮询:当同时出现多个消费者进入监听模式时,生产者发送的消息会轮询的被多个消费者接收到。
消息持久化:当mq服务器关闭服务然后重启后,发现消息队列清空了,是因为消息存储在内存中,保持消息持久化需要对生产者和消费者声明队列持久化参数,并对生产者的消息进行持久化
参数如:
durable=True:进行队列持久化
delivery_mode=2: 进行生产者的消息持久化

举例代码如:

生产者

 1 # rabbitmq  发送端
 2 import pika
 3 # 连接 mq服务器
 4 connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
 5 # 声明一个管道
 6 channel = connection.channel()
 7 # 在管道中声明一个队列
 8 channel.queue_declare(queue='hello1',durable=True)  # durable 进行队列持久化
 9 # 在指定队列中发送一条消息 生产者
10 channel.basic_publish(exchange='',
11                                             routing_key='hello1',  # 消息队列名
12                                             body='Hello World',  # 消息内容
13                       properties = pika.BasicProperties(
14                           delivery_mode=2,  # 进行队列的消息持久化
15                       ))
16 # 发送完毕 关闭连接
17 print('xx send "Hello World"')
18 connection.close()
View Code

相关文章:

  • 2022-12-23
  • 2022-02-08
  • 2022-02-08
  • 2021-11-05
  • 2022-12-23
  • 2021-01-17
  • 2021-09-22
猜你喜欢
  • 2022-03-05
  • 2021-12-02
  • 2021-11-24
  • 2021-04-12
  • 2022-01-12
  • 2021-08-11
相关资源
相似解决方案