时间:2021-05-22
快速回顾一下RabbitMQ服务器的安装:
Python使用RabbitMQ需要Pika库:
好了,接下来我们先看交换机的工作原理:消息发送端先将消息发送给交换机,交换机再将消息发送到绑定的消息队列,而后每个接收端都能从各自的消息队列里接收到信息。
下面用send.py和receive.py来模拟实现交换机的功能。send.py表示发送端,receive.py表示接收端。
receive.py:
#!/usr/bin/env python#coding=utf8import pika connection = pika.BlockingConnection(pika.ConnectionParameters( 'localhost'))channel = connection.channel() #定义交换机channel.exchange_declare(exchange='messages', type='fanout') #随机生成队列,并绑定到交换机上result = channel.queue_declare(exclusive=True)queue_name = result.method.queuechannel.queue_bind(exchange='messages', queue=queue_name) def callback(ch, method, properties, body): print " [x] Received %r" % (body,) channel.basic_consume(callback, queue=queue_name, no_ack=True) print ' [*] Waiting for messages. To exit press CTRL+C'channel.start_consuming()上例代码中,queue_declare的参数exclusive=True表示当接收端退出时,销毁临时产生的队列,这样就不会占用资源。运行这个程序,然后使用rabbitmqctl list_exchanges命令来查看交换机信息:
其中红色框就是上例定义的交换机了。再使用rabbitmqctl list_queues查看下消息队列情况:
其中红色框就是随机产生的消息队列了。
send.py:
#!/usr/bin/env python#coding=utf8import pika connection = pika.BlockingConnection(pika.ConnectionParameters( 'localhost'))channel = connection.channel() #定义交换机channel.exchange_declare(exchange='messages', type='fanout') #将消息发送到交换机channel.basic_publish(exchange='messages', routing_key='', body='Hello World!')print " [x] Sent 'Hello World!'"connection.close()上例代码中, basic_publish方法的参数exchange被设定为相应交换机,因为是要广播出去,发送到所有队列,所以routing_key就不需要设定了。
exchange如果为空,表示是使用匿名的交换机,在上面交换机信息的图片中可以看到有amq.*这样的交换机,就是系统默认的交换机了。routing_key在使用匿名交换机的时候才需要指定,表示发送到哪个队列的意思。第一篇的例子演示了这个功能。
打开另外一个终端,执行send.py,可以观察到receive.py接收到了消息。如果有多个终端执行receive.py,那么每个receive.py都会接收到消息。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
三层交换机使用的技术是通过使用硬件交换机构实现了IP的路由功能,其优化的路由软件使得路由过程效率提高,解决了传统路由器软件路由的速度问题。 交换机(switc
可以,但是必须交换机本身有主要功能,交换机支持三层功能,又支持ospf、rip等路由器协议,可以把此交换机可以简单的认为有路由器功能,但是此交换机的路由功能没有
三层交换是用交换机,三层交换机主要是在局域网内部划分子网使用的,在网络的边界还是需要路由器来实现信息控制及安全控制等功能。 三层交换机就是具有部分路由器功能的
三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。
交换机和路由器的朋友应该都了解些,对于大家来说,交换机和路由器的使用中最大的区别就是路由器内部可实现拨号上网,然后通过共享给多台电脑同时上网。而交换机内部是不具