Consumption of a bivalent format of non-python brine (with celery and rabbit)

I use Python, Celery and RabbitMQ to create messages from loosely coupled systems. However, the interaction bothers me.

When checking the payload of a message directly from RabbitMQ created by celery, I get the following binary format:

Binary version of celery output

I strongly suspect this is a binary pickle format. However, I had problems finding information about the binary format of the brine as a whole.

So, I really have a few questions:

  • Is this a binary pickle format?
  • What resources are available to display binary format?
  • Given that celery really produces pickled data, what options are available to me if I want to consume these messages from consumers other than pythons (like C ++ or php)?
  • Celery, RabbitMQ , . - ?

...

UPDATE:

, JSON :

add.apply_async(args=[10, 10], serializer="json")

, , JSON 15% ( 28 ):

JSON serialized version from celery

, , pickle ++, : / C?

2:

Asksol, zlib :

async_result = add.apply_async( (x, y), compression='zlib' )

, , :

Format comparison table

, Pickle , JSON. , , JSON , Pickle. . JSON , Pickle , , . , - .

+5
3

Celery JSON. , , , . , .

, , . - pickle, . pickle, JSON, YAML msgpack, , Kombu (. Kombu: ).

+5
  • pickletools , .
  • . . pickletools script (. ) pickle.
  • pickle'd . Python Python ( , ).
  • . , . - JSON ( ), (, ).
+2

All Articles