Hi Srdhar,
answers inlined:
On 24 Feb 2006, at 19:41, Sridhar Komandur wrote:
Thanks Rob ... I have gone through the link, andcould you please
clarify :
1. when multiple routes exist btw producer and consumer brokers,
are you suggesting
that under 'normal' circumstances duplicates are prevented ? What
circumstances
is it prevented (and which ones result in duplicates ?).
ActiveMQ tags messages with the brokers the message has passed
through - so messages can be filtered out before they are sent to a
broker that message has already visited -
i.e. A -> B -> C -> A (a ring) -
A message originating at broker A - would not be passed from broker C
to broker A (so loops like this are avoided).
However - (excuse the drawing)
B
/ \
A D
\ /
C
A message sent from A to both B and C - B and C both forward to D - D
would get a duplicate of the original.
Now it's possible to filter out duplicates on broker D - by saving a
history of message ids that have passed through broker D - but then
there are a lot of edge cases, especially around re-delivery and
queues - which makes it difficult in practice to do.
2. NetworkConnector 'name' property:
name bridge name of the network - for more than one network
connector between the same two brokers - use different names
example (
Producer-- A- B-C-D ---Consumer
| |
+---E---+
2.1 Does 'name' apply in the above scenario - A and D have multiple
paths, but not direct NetworkConnectors.
No - it only applies to scenarios like this:
->
A B
->
Note the direction (as networks are single plex) - a unique name for
the network would not apply to the usual case for networks:
A <-> B
2.2 How does A route based on 'name', using the above example
(cyclic case) ?
The name is not used for routing - only for creating a unique but
repeatable client ID that is used by the network connector.
3. I would prefer not having to be restricted to acyclic (tree)
graphs, for several reasons:
- more flexibility in routing (e.g., admin reasons)
- single point of failures (I undertand failover tranport will
create NetworkConnector to another broker - but the /flash flood
effects of the distributed system may lead to instability)
- traffic saturation and inability to take advantage of multiple
paths (load balancing)
for different flows.
ok - but hopefully you can use a combination of master/slave and
acyclic networks to get the same solution.
4. I would like to run some preliminary ideas by you offline to
deal with duplicate messages - unless this feature is deemed off
the ActiveMQ roadmap.
If possible - can we keep the discussion on the list - I'm copying to
dev - that way we'll get the benefit of the community input as well :).
Thank you Sir !
Regards
- Sri
Thank you!
cheers,
Rob
On 2/24/06, Rob Davies <[EMAIL PROTECTED]> wrote:
Hi Sridhar,
ActiveMQ does try and prevent sending duplicates - but there are
circumstances where it would be possible for multiple routes across a
network to result in duplicates. I'd advise you to only use acyclic
graphs, or where this can't be avoided, use well named destinations
and network filters.
See http://docs.codehaus.org/display/ACTIVEMQ/Networks+of+Brokers
cheers,
Rob
On 23 Feb 2006, at 22:08, Sridhar Komandur wrote:
> Rob, thanks for your email.
>
> Would you mind clarifying item 1 below, what if there are more than
> one path
> between producer and a consumer for the given networkTTL ?
>
> Will the consumer_broker receive as many messages as the number of
> paths ?
> (I hope not). Could you please elaborate on the details of message
> routing
> in this case ?
>
> Thanks!
> Regards
> - Sridhar
>
> On 2/19/06, Rob Davies <[EMAIL PROTECTED]> wrote:
>>
>>
>> Networks are being updated currently for release 4.0
>> Consumers are propagated around the network - but within
constraints:
>>
>> 1. networkTTL - number of hops (brokers) that this information will
>> pass through - networkTTL also applies to messages dispatched as
well
>> 2. exclusiveDestinations - can exclude destinations from network
>> traffic (can use wild-cards etc)
>> 3. inclusiveDestinations - can specify only destinations which
are in
>> the inclusive list to be propagated around the network
>>
>>
>> I'll update the wiki with this information once we're satisfied its
>> working.
>>
>> cheers,
>>
>> Rob
>>
>> On 13 Feb 2006, at 23:15, Sridhar Komandur wrote:
>>
>>> Hi,
>>>
>>> 1. Can anyone clarify how the routing info is shared within
>>> Network of
>>> Brokers
>>> - is the producer/subscription info known to all the brokers
>>> in the
>>> network ? As I understand,
>>> 4.0 follows demand-forwarding for the actual message flow.
>>>
>>> 2. Has anyone /deployed/thought of/ an architecture where multiple
>>> "Network
>>> of Brokers" clusters would be deployed ?
>>> (not unlike ISP domains, within the same enterprise - for
>>> capacity or
>>> ownership reasons).
>>> I was wondering how "routes" can be selectively disseminated
>>> between
>>> the clusters.
>>>
>>>
>>> Thanks for any insights into the above.
>>>
>>> Thanks
>>> Regards
>>> - Sridhar Komandur
>>
>>