python操作rabbitmq实现广播效果
2024-08-26 08:49:57
生产方(Fanout_Publisher.py)
# __author__ = 'STEVEN'
import pika
#开启socket
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
#开启一个通道
channel = connection.channel()
#这里不用再创建队列
channel.exchange_declare(exchange='logs',exchange_type='fanout')
#消息内容
mes = 'publisher said hello'
#发布消息exchange='logs'是给他起了一个名字,随便什么都行
channel.basic_publish(exchange='logs',routing_key='',body=mes)
print('[x] send the mes%s to queue'%mes)
#关闭连接
connection.close()
消费方(Fanout_Consumer.py)
# __author__ = 'STEVEN'
import pika
#建立socket
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
#开启通道
channel = connection.channel()
#通道先声明exchange
channel.exchange_declare(exchange='logs',exchange_type='fanout')
#声明queue
result = channel.queue_declare(exclusive=True)
#获取queue_name
queue_name = result.method.queue
#绑定queue
channel.queue_bind(exchange='logs',queue=queue_name)
#回调函数
def callback(ch,method,properties,body):
print('[x] receive mess%s'%body.decode())
#指定消费相关参数
channel.basic_consume(callback,queue=queue_name,no_ack=True)
print('[*] is waiting for the message')
#开启消费
channel.start_consuming()
与上一篇模式的转变:
1.加入了exchange类型,他有如下几种常用方式:
2.模式图:
最新文章
- [No000071]C# 进制转换(二进制、十六进制、十进制互转)
- 文本编辑器的使用(ckeditor/ueditor)
- HTML中图片添加
- phpstorm安装,破解及使用
- 两种局部刷新UITableView的方法的使用条件
- hibernate 知识梳理
- 2014-08-22 关于Response、Request等对象在cs文件中的使用
- 用keil直接生成BIN文件
- java中怎么解决路径中文的问题
- python——在文件存放路径下自动创建文件夹!
- iview 表单非空验证
- .NET 并行计算和并发10-lock锁
- Java设计模式学习记录-备忘录模式
- ubuntu14.04安装telnet
- mfc Picture Control 控件属性
- Swift语言从天而降,是否能掀起新一轮的科技革命?
- 15. DML, DDL, LOGON 触发器
- YBB.DBUtils用法
- C/C++中printf/cout 计算顺序与缓冲区问题
- Javac编译器