We are currently working on converting from HornetQ to RabbitMQ. One of the snags we ran into is regarding message filters for subscriptions.
In HornetQ, we were able to filter on headers with a null value. We were also able to filter on headers with a "not equal to" value. In RabbitMQ we are finding we are unable to do either of these things.
For example, on a single queue we might have a million messages come in on a single day. Half the messages have a header populated like "myVariable=X", the other half do not have the "myVariable" header at all.
In HornetQ land, we were able to set up a subscription to the tune of "give me messages where myVariable is NULL, or myVariable doesn't exist". This way, we only read the half million messages we care about.
In RabbitMQ we can do no such thing. Our best alternative is to read all 1 million messages and discard those which do not have "myVariable".
We looked into other options like having the other messages populated with a variable that we could do a positive check on, but this is not feasible.
Any other ideas or ways we can get around this limitation in Rabbit MQ?