Source

django-celery-about / source / kombu.rst

Kombu: Messaging Everything

Messaging framework for Python

The aim of Kombu is to make messaging in Python as easy as possible
by providing an idiomatic high-level interface for the AMQ protocol,
and also provide proven and tested solutions to common messaging problems.

Transport (Native & Virtual )

Native

ampqlib(sync)

pika(sync/async)

  • Pika is a pure-Python implementation of the AMQP 0-9-1 protocol that tries to stay fairly independent of the underlying network support library.
  • https://github.com/pika/pika
Client Type Direct Topic Fanout
amqplib Native Yes Yes Yes
pika Native Yes Yes Yes

Virtual

Client Type Direct Topic Fanout
redis Virtual Yes Yes Yes (PUB/SUB)
mongodb Virtual Yes Yes Yes
beanstalk Virtual Yes Yes [1] No
SQS Virtual Yes Yes [1] Yes [2]
couchdb Virtual Yes Yes [1] No
zookeeper Virtual Yes Yes [1] No
in-memory Virtual Yes Yes [1] No
django Virtual Yes Yes [1] No
sqlalchemy Virtual Yes Yes [1] No
[1](1, 2, 3, 4, 5, 6, 7) 宣言はメモリにのみ維持されるので、Exchange/Queue は利用するクライアント全て宣言すること。
[2]SimpleDBにおいたルーティングテーブルでのみFanoutがサポートされます。 デフォルトで有効になっていませんが、トランスポートオプションを設定すると使えます。