AMQP实现:Pika

Pika是纯Python编写的AMQP 0-9-1协议的实现,一般用来操作RabbitMQ。AMQP是一个双向RPC(远程进程调用)协议,并且Pika可以在支持AMQP的消息队列上方便的实现RPC。

Pika根据不同的IO循环提供了不同的连接方式。

  • AsyncioConnection,位于pika.adapters.asyncio_connection包中,用于支持Python 3的Asyncio IO循环的异步连接。
  • BlockingConnection,同步连接。
  • SelectConnection,没有第三方依赖支持的异步连接。
  • TornadoConnection,位于pika.adapters.tornado_connection包中,用于支持Tornado IO循环的异步连接。
  • TwistedProtocolConnection,位于pika.adpaters.twisted_connection包中,用于支持Twisted IO循环的异步连接。

使用Pika操作消息队列,需要构建一个Channel,而Channel是由Connection建立的。Pika构建Channel需要以下几个核心类的辅助。

  • PlainCredentials,RabbitMQ默认密码认证策略。
  • ConnectionParameters,连接参数对象。
  • URLParameters,URL连接串对象。