Issue #6938 has been updated by R.I. Pienaar.
Been researching this a bit, the mechanics for how different middleware
impliment temporary or short lived topics - even for stomp - is so different
that I do not think we'll be able to come up with a generic answer that will
work across many middleware.
In ActiveMQ+Stomp this works more or less like this, the publisher subscribes
to a temporary topic, publishes a message and asks the worker to reply into the
temporary destination. Because temp destinations are private activemq does
magic and sets up a conduit that works even across network broker broundaries:
In mcollective world the client libraries would do this when sending a request:
<pre>
connection.subscribe("/temp-topic/foo")
connection.publish("/topic/foo", "hello", {"reply-to" => "/temp-topic/foo"})
</pre>
The remote end - this would be the servers - would reply using this pattern:
<pre>
connection.subscribe("/topic/foo")
msg = connection.receive
connection.publish(msg.headers["reply-to"], "hello there")
</pre>
Here the <em>msg.headers["reply-to"]</em> will look something like this
<em>/remote-temp-topic/ID:monitor1.xx.net-37596-1302272859590-5:23895:1</em>
and it will be removed at the end of the exchange.
This is very efficient because the reply topics are private, messages dont
travel anywhere they shouldnt and it's also secure because a random 3rd party
cant just start up a stomp client and subscribe to the network chatter. Of
course we still encrypt/sign the traffic but this adds to the overall
experience.
I will create a similar example for Stomp+RabbitMQ I do think we're going to
end up with multiple stomp connector plugins and I think for this ticket we
might only target one, ActiveMQ would be my pref
----------------------------------------
Feature #6938: Clients should be able to specify a specific reply destination
in requests
https://projects.puppetlabs.com/issues/6938
Author: R.I. Pienaar
Status: Accepted
Priority: Normal
Assignee: R.I. Pienaar
Category: Core
Target version:
Keywords:
Branch:
Affected mCollective version:
At present replies simply go to <collectivename>.<agent>.reply this is not
great in cases where many consumers are using mcollective and you have 1000s of
machines, users will get each others replies and simply ignore them.
We've not used temp topic or unique topics due to bugs in ActiveMQ but these
are slowly going away so should start supporting custom reply destinations.
This should be a configurable setting that sets it for the whole client but
individual requests should just be able to add an optional member int he
request hash declaring a response destination.
If none is supplied it should work in a backward compat way and this should be
the default behavior.
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
http://projects.puppetlabs.com/my/account
--
You received this message because you are subscribed to the Google Groups
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-bugs?hl=en.