python rabbitMQ 发送端和接收端广播模式。
消费者模型:
import pika,time consumer = pika.BlockingConnection\
(pika.ConnectionParameters('localhost'))#创建socket连接
channel = consumer.channel()#创建管道
channel.exchange_declare(exchange='logs',exchange_type = 'fanout')
result = channel.queue_declare(exclusive=True)#exclusive排他,唯一的,自动删除连接。
queue_name = result.method.queue#创建一个随机的队列名称
print('queue_name',queue_name)#打印该队列名称 channel.queue_bind(exchange='logs',
queue = queue_name)
def backcall(ch,method,properties,body):#参数body是发送过来的消息。
print(ch,method,properties) print('[x] Received %r'%body)
ch.basic_ack(delivery_tag=method.delivery_tag) channel.basic_consume(backcall,#回调函数。执行结束后立即执行另外一个函数返回给发送端是否执行完毕。
queue=queue_name,
#no_ack=True#不会告知服务端我是否收到消息。一般注释。
)#如果注释掉,对方没有收到消息的话不会将消息丢失,始终在队列里等待下次发送。 print('waiting for message To exit press CTRL+C')
channel.start_consuming()#启动后进入死循环。一直等待消息。
生产者模型:
import pika
connection = pika.BlockingConnection(
pika.ConnectionParameters('localhost'))#建立一个最基本的socket
chanel = connection.channel()#声明一个管道 chanel.exchange_declare(exchange='logs',exchange_type='fanout')#生成转换器名字为logs并定义类型为fanout chanel.basic_publish(exchange='logs',#转换器ex名字
routing_key='',
body ='HELLO WORD!',
)
print( '发出一个消息')
connection.close()#关闭
python rabbitMQ 发送端和接收端广播模式。的更多相关文章
- 基于C#的UDP通信(使用UdpClient实现,包含发送端和接收端)
UDP不属于面向连接的通信,在选择使用协议的时候,选择UDP必须要谨慎.在网络质量令人十分不满意的环境下,UDP协议数据包丢失会比较严重.但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小, ...
- 网络编程_UDP协议_发送端与接收端
创建UDP传输的发送端 : 1.建立udp的socket服务 2.将要发送的数据封装到数据包中 3.通过udp的socket服务 将数据包发送出去 4.关闭socket服务(因为调用了系统 ...
- java实现udp发送端和接收端
发送端: package demo02; import java.io.IOException; import java.net.DatagramPacket; import java.net.Dat ...
- Udp发送端和接收端
//UdpReceive.java /* 定义udp的接收端. 思路: 1.定义udpSocket服务.一般会监听一个端口,事实上就是这个接收网络应用程序定义一个数字标示. 2.定义一个数据包.用来存 ...
- c# RabbitMQ 发送消息
参考地址:<C#使用RabbitMQ> C#操作RabbitMQ需要引用RabbitMQ的DLL,地址是:http://www.rabbitmq.com/releases/rabbitmq ...
- c/c++ 网络编程 UDP 发送端 bind 作用
网络编程 UDP 发送端 bind 作用 upd 发送端 调用bind函数的效果:把socket特定到一个指定的端口,如果不调用bind,内核会随机分配一个端口. upd 发送端 调用bind函数的目 ...
- Python Rabbit 广播模式
Exchange 在RabbitMQ下进行广播模式需要用到,exchange这个参数,它会把发送的消息推送到queues队列中,exchange必须要知道,它接下来收到的消息要分给谁,是要发给一个qu ...
- RabbitMQ基本用法、消息分发模式、消息持久化、广播模式
RabbitMQ基本用法 进程queue用于同一父进程创建的子进程间的通信 而RabbitMQ可以在不同父进程间通信(例如在word和QQ间通信) 示例代码 生产端(发送) import pika c ...
- RabbitMQ广播模式
广播模式:1对多,produce发送一则消息多个consumer同时收到.注意:广播是实时的,produce只负责发出去,不会管对端是否收到,若发送的时刻没有对端接收,那消息就没了,因此在广播模式下设 ...
随机推荐
- S2T40,第五章
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- C++对象模型复习
本文写于2017-02-24,从老账号迁移到本账号,原文地址:https://i.cnblogs.com/EditPosts.aspx?postid=6440685 一:对象模型 C++面向对象的实现 ...
- 团队项目需求心得——慢阻肺疾病管理APP
一.项目介绍: 先上图: 这是我们小组开发项目的系统构成图. 本项目研发面向家庭/社区,对稳定期中慢阻肺患者病情和环境全方位监测.简单病情趋势分析和患者行为干预,并且提供患者与家庭医生和专家沟通渠道的 ...
- Dictionary集合运用
Dictionary基础定义: 从一组键(key)到一组值(value)的映射,每一个添加项都是由一个值及其相关联的键组成: 任何键都必须是唯一的: 键不能为空引用的null(VB中的Nothing) ...
- DevExpress v18.2新版亮点——Reporting篇(一)
行业领先的.NET界面控件——DevExpress v18.2日前正式发布,本站将以连载的形式为大家介绍新版本新功能.本文将介绍了DevExpress Reporting v18.2 的新功能,新版3 ...
- chrome恢复默认搜索引擎为Google
管理员身份运行cmd RD /S /Q "%WinDir%\System32\GroupPolicyUsers" RD /S /Q "%WinDir%\System32\ ...
- malloc/free与new/delete的区别与联系
相同点:(1)都是申请内存,释放内存,free和delete可以释放NULL指针:(2)都必须配对使用,这里的配对使用,可不能理解为一个new/malloc就对应一个delete/free,而是指在作 ...
- c++给数组整体赋初值
1.memset memset是计算机中C/C++语言初始化函数.作用是将某一块内存中的内容全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作. 头文件: #include<cstri ...
- 责任链模式(Chain of Responsibility)
定义:为一个请求定义含有链状关系的接受对象,基于请求的类型,松耦合发送者和接受者之间的关系. 实现方式: 首先定义一个抽象类,包括一个公共抽象行为和决定子类链状关系的属性,然后创建一系列对象继承这个抽 ...
- 看到一个简单的背单词java程序的设计,收藏下
https://blog.csdn.net/qq_40605167/article/details/81023836