RabbitMQ使用简要说明

1、队列(Queues)是你的消息(messages)的终点,可以理解成装消息的容器。队列是由消费者(Consumer)通过程序建立的

2、交换机(Exchange)可以理解成具有路由表的路由程序。

3、绑定(Binding)就是一个类似这样的规则:将交换机“desert(沙漠)”当中具有路由键“阿里巴巴”的消息送到队列“hideout(山洞)”里面去。
绑定是一个基于路由键将交换机和队列连接起来的路由规则。
(1)Fanout Exchange – 不处理路由键。你只需要简单的将队列绑定到交换机上。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。Fanout交换机转发消息是最快的。
(2)Direct Exchange – 处理路由键。需要将一个队列绑定到交换机上,要求该消息与一个特定的路由键完全匹配。这是一个完整的匹配。
(3)Topic Exchange – 将路由键和某模式进行匹配。

4、创建MQ通信的具体步骤:
a.消费端
(1)创建一个连接connection。
(2)创建一个通道channel。MQ支持在一个TCP连接上启用多个MQ通信channel,每个channel都可以被应用作为通信流。每个MQ程序至少要有一个连接和一个channel。
(3)创建一个队列,eg: channel.queue_declare(queue=‘task_queue’)
(4)创建一个交换机,eg: channel.exchange_declare(exchange=‘change_fan’, exchange_type=‘fanout’)
(5)创建一个绑定,eg: channel.queue_bind(queue=”task_queue”, exchange=”change_fan”,routing_key=”jason”),即:任何送到交换机“change_fan”的具有路由键“jason” 的消息都被路由到名为“task_queue” 的队列。
(6)创建从队列当中取出消息的模式,eg: channel.basic_consume(callback, queue=queue_name, no_ack=True),callback为我们定义的一个回调函数
(7)开始等待接收消息,channel.start_consuming()
b.生产端
(1)创建一个连接connection
(2)创建一个通道channel。
(3)创建一个交换机,eg: channel.exchange_declare(exchange=‘change_fan’, exchange_type=‘fanout’)
(4)发送消息,channel.basic_publish(exchange=‘change_fan’, routing_key=’’, body=‘Hello World!’),由于是广播形式routing_key为空,body为要发送的字符串消息。

未必所有程序都需要严格按照以上步骤进行,可以根据实际情况进行一定修改。
参考博文[RabbitMQ+Python入门经典] 兔子和兔子窝

你可能感兴趣的:(python)