[rabbitmq-discuss] Message Priority & 'Headers' Exchange Type (was: Net::AMQP Perl Client - Status?)

Darien Kindlund darien at kindlund.com
Wed Jan 14 19:47:23 GMT 2009

Hi Ben & Tony,

Understood.  I would say message prioritization would be exceedingly
useful from an operational perspective.   This is something normally
that each AMQP-aware application we implement would benefit from.
Otherwise, we'd have to create different queues per priority and have
the app monitor each queue in priority-based order.  Not impossible to
implement, but not ideal.

Taking that type of implementation to the next logical step:
1) Is there any way to perform "non-blocking" SUBSCRIBEs via
Net::Stomp to RabbitMQ, in order to have a perl consumer application
monitor multiple queues in series?  Or, is the recommendation to use
something like ithreads to create a separate thread per subscription
and multiplex the messages manually within the application?  (See what
I mean, by increased complexity costs on the app?)

The 'headers' exchange type comes in handy as a customizable
specification.  Yes, we can 'transcode' requirements like (Foo: A,
Bar: B) into queues with routing keys of (foo.*.bar.*), but that gets
awkward for really long lists of headers.  With the
'message.destination' size of 'str8', that's 255 UTF-8 chars, so it
doesn't scale nicely.  Though, it's not a show stopper for initial

-- Darien

On Wed, Jan 14, 2009 at 2:23 PM, Ben Hood <0x6e6562 at gmail.com> wrote:
> Daniel,
> On Wed, Jan 14, 2009 at 7:15 PM, Darien Kindlund <darien at kindlund.com> wrote:
>> 1) Since RabbitMQ implements only v0.8 (0-8) of the AMQP spec, it does
>> not support the 'headers' exchange type (as defined in 0-10 spec).
>> Correct?
> It does not support the headers exchange as defined in 0.9.1 either
> (0.9.1 is the next version of the protocol that we will support).
>> If this is correct, can anyone indicate when the 'headers' exchange
>> type will be (expected to be) introduced into a version of RabbitMQ?
>> (v1.6?)
> Unlikely for 1.6. This is because you are the first person in a very
> long time that has asked for this exchange type. We will get around to
> it, but there is no ETA. In general, we try to prioritize stuff that
> gets asked for a lot, and then of course, when change the schedule to
> include stuff for very persuasive people :-)
>> 2) Both (0-8) and (0-10) AMQP specifications talk about "message
>> priority" (i.e., message.delivery-priority).  Can you give me an
>> example of how you construct different priority messages via
>> Net::STOMP?  Do you just specify the "priority" header with an integer
>> value of 0,1,2,3,4,5,6,7,8, or 9?  Or, are message priorities not even
>> implemented in RabbitMQ v1.5?
> No they are not - but there is a chance they may appear in the not too
> distant future. Again, for the same reason - you're the first to ask
> about this - but we actually have draw up some specs for this. As
> always, no ETA.
> HTH,
> Ben

More information about the rabbitmq-discuss mailing list