Hub and spoke architecture - as you've described - is certainly a
valid one.
By default, messages are forwarded to brokers that express an
interest in the message by themselves having a consumer interested in
the remote message. Subscription information is propagated from one
broker to the next, and if configured to do so - that subscription
information will be propagated further around the network - in BFS
manner.
However - by default the number of hops messages/subscriptions are
allowed to pass through is 1 - see http://activemq.apache.org/
networks-of-brokers.html
So providing you configure the networkTTL to be equivalent to the
maximum number of hops - your messages should be able to propagate
across multiple broker-to-broker steps. Messages/subscriptions carry
around information about who they've visited - so we can prevent
cycles happening.
Hope that helps
cheers,
Rob
http://open.iona.com/ -Enterprise Open Integration
http://rajdavies.blogspot.com/
On Dec 8, 2007, at 12:19 AM, yg_cvg wrote:
This may seem to be more of a developer question, but I think it
applies
here. We are considering using ActiveMQ in a large distributed
network.
The network is spread all over the world and consists of many small
"regions," each of which contains a few servers. At any time, a
piece of
data can come in to one of these servers and should then be sent as
quickly
as possible to not only every server in the region, but to every
server in
ALL regions. So, basically, there is one big JMS Topic to which
everyone is
subscribed.
I figure we'd organize each region into some kind of a hub/spoke
thing, or
whatever, to ensure that the message gets sent to everyone in the
region.
Then, we'd hook up the "leader" (hub) ActiveMQ servers from each
region
together. The question is how to organize this network of leaders
in the
best way possible. I mean, it depends on the physical distance
between any
given pair of regions, etc.
My question isn't this, though, but something that might help
figure out a
good way to do this. It seems I need to understand the ActiveMQ
forwarding
algorithm if I want to figure out how to arrange the broker network
for
maximum effect. What is the exact algorithm used for broker
forwarding of a
given pub/sub message? I have read
http://activemq.apache.org/how-do-distributed-queues-work.html
but don't get exactly how it works, at least for pub/sub, as
opposed to a
queue. For a given forwarding broker, does the Message get sent to
each
connected broker except the one from which it came, unless the
Message has
already been to this forwarding broker (i.e., there is a cycle)?
Or is the
Message somehow kept on only one broker at a given time? Does it to
BFS or
something cool like that? Any details are welcome.
Any other advice on the general problem at hand is also welcome. I
am new
to JMS and ActiveMQ.
--
View this message in context: http://www.nabble.com/question-about-
the-store-forward-algorithm-tf4965292s2354.html#a14223478
Sent from the ActiveMQ - User mailing list archive at Nabble.com.