rabbitmq 为 amqp协议的实现。
实际使用过程中又要使用到pika这个库。
明确几个概念:
queue 官网说这个概念是信箱。 queue确实是消息的缓存区
exchange 这个概念负责消息的传递,官网说 rabbitmq 从来不直接把消息发送到queue中,也就是说只把消息发送到exchage这个服务中。
routing_key 安装官网给的教程,这个东西只有在exchange的type是direct 或者topic的时候才有作用
说一下联系:
官网说要把消息发给queue 你首先要让exchagne知道queue 怎么让exchage知道queue呢?
需要 channel的queue_bind这个方法让exchagne知道queue 让exchagne知道与routing_key绑定的queue
direct topic都可以支持routing_key 却别我以为就是topic支持* #通配符。
消息流:
fanout情况下,exchange会把消息发给所有知道的queue的
direct情况下,exchagne会把消息发给所有知道的queue中,但是会是使用routing_key作为分流器,routing_key与那个queue绑定就发给那个queue
持久化:
如果想让mqserver重启以后还能保持消息,就在生命queue的时候 置 durable=True basic_public property method=2
大概就写这么多 ,花了三分钟。