Moe
Moe

Reputation: 82

RabbitMQ: Queue -> Shovel -> Stream - How to correctly configure for Stream message format

On one server, I want a Queue (buffer) and when there is a connection to the other server, it should Shovel its messages to the Stream there. I want to access the Stream with a Python client and the Stream protocol, meaning the messages need to be in the amqp 1.0 format (I know that this is something different to the amqp 1.0 protocol, as stated by RabbitMQ themselves).

I am running two containers / RabbitMQ servers on my local machine. One with a normal Queue and a Shovel, the other one with a Stream. Both have amqp 1.0 (and management) enabled.

I am able to connect the Queue with the Stream but only with amqp 0.9.1 on both sides. Doing it this way does not convert the messages into the amqp 1.0 format that I need though and my Python client throws decoding errors. I was not yet able to connect Queue and Stream with any other combination of protocols, uris, ...

For uploading the data to the Queue, I am using pika. For accessing the Stream, I am using rbfly.

Am I missing something or is this not directly possible?

Cheers to everyone Moe

Upvotes: 0

Views: 612

Answers (1)

Gabriele Santomaggio
Gabriele Santomaggio

Reputation: 22682

For future readers:

Each stream client needs to implement the AMQP 1.0 message format parser.

The rstream client supports the amqp 1.0 message format and it is compatible with the other clients.

We created a repo to mix all the clients to ensure everything works as expected.

Upvotes: 1

Related Questions