activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chris Robison <chrisdrobi...@gmail.com>
Subject Re: Which is better: new queue or selector
Date Fri, 27 Jan 2012 21:52:54 GMT
Thanks for the quick response. The content-based router seems to be good
for messages going only one way. However, in this scenario, when the
messages go out, the enumeration services need to reply to them at a
designated temp queue (at least that is my understanding of the
request/reply model in AMQ) so that the web portal can display the results
to the user. Is a content-based router still the way to go here?

Chris

On Fri, Jan 27, 2012 at 2:21 PM, Matt Pavlovich <mattrpav@gmail.com> wrote:

> Chris-
>
> Separate queues is a good approach.  Additionally, it doesn't sound like
> you need to do a network of brokers here.  Stand-alone brokers and a simple
> Camel route running inside the producer broker could handle the
> content-based router requirement where you want messages sent to a
> particular broker.
>
> You'd have an ActiveMQ connection configured for each broker, the route
> would read from your "publish queue", then read value from a header to
> route to the appropriate broker based on that value.
>
> Camel links:
> ActiveMQ connector: http://camel.apache.org/**activemq.html<http://camel.apache.org/activemq.html>
> Content-based router: http://camel.apache.org/**content-based-router.html<http://camel.apache.org/content-based-router.html>
>
> Hope this helps,
> Matt Pavlovich
>
>
> On 1/27/12 2:54 PM, Chris Robison wrote:
>
>> Let me describe my scenario and hopefully my question will become clear.
>> We
>> have 3 main data centers. In each of these data centers we host a web
>> portal that allows customers to access resources hosted either in one of
>> our 3 data centers or in a special edge install hosted in the customer's
>> data center. We have a special case where we need to enumerate the
>> resources available to a particular customer at all sites (all our data
>> centers and customer edge sites) and to do that, the enumerating service
>> at
>> a particular site must be given the username and password of the user. Not
>> ideal, but it is a limitation of the software we are integrating with.
>> What
>> we've decided to do is put an AMQ broker at each edge install that will
>> connect back to a broker at one of our data centers and become part of the
>> network of brokers. Our web portals will then send messages through the
>> broker network that contain the user's credentials that enumerating
>> services can then respond to. What we absolutely don't want is for
>> messages
>> to end up on brokers/consumers they don't belong on even if a
>> broker/consumer wants to receive messages for a certain criteria it
>> shouldn't be asking for. So now for my question(s):
>>
>>    - Originally we were thinking that we'd use one queue and then the
>>
>>    message producers could set a custom header in the message that allows
>> the
>>    consumers to use selectors to select message pertinent to them. Is
>> there a
>>    way to filter messages based on a message header value so that, for
>>    example, a broker/consumer at an edge site cannot select/receive
>> messages
>>    it shouldn't? Or would it be better to have a queue per site and do
>>    security based on that?
>>    - Any other tips for me that might make this easier?
>>
>>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message