[rabbitmq-discuss] Topic routing

Brian Sullivan bsullivan at lindenlab.com
Wed Oct 22 19:52:52 BST 2008


On Oct 22, 2008, at 10:01 AM, Ben Hood wrote:

>
> If so, I think we're fine, since my
>> number of consumers will be relatively low.  If it's the number of  
>> topics,
>> then that becomes a little more troublesome if I want to get clever  
>> with my
>> routing keys to help distribute the consumption load across nodes.
>
> When you say "number of topics", do you mean:
>
> 1. The number of topic exhanges
> 2. The number of bindings attached to a single topic exchange
>
> ?
>
> The former would not be a problem, because this would represent
> natural application partitioning.
>
> The latter is what I think you mean, and is, as indicated above, what
> the O(n) cost is based on for a topic exchnage, because wildcards
> force a linear scan.

I mean 3) number of actual topic keys that I publish on - if I need to  
add some variables to the keys so I can distribute load across  
multiple queues ("mytopic.1", "mytopic.2").  Some ideas I had here  
were a little funky and might cause a multiplying of actual topic key  
strings that I use.  One idea was to use the publisher's hostname in  
the topic key (ex: "mytopic.host123") so that I could create a binding  
to "mytopic.host*3" to get ~1/10th the load on each queue (however now  
that I think about it, I don't know if I can do that with the  
wildcards anyways - I think * matches only full words in the key,  
doesn't it?).

Regardless, as long as a binding to "mytopic.*" counts as one binding  
in your O(n), even if I have M topics (mytopic.1, ... mytopic.m), then  
I think I'm good with whatever oddball scheme I come up with.

Thanks,
Brian





More information about the rabbitmq-discuss mailing list