It would be good if I get true batch mode where all requests have the same ID, since my consumer segregates the response output based on the ID only.
The reason why I want to go with batch mode is, I have some set of servers where I need to collect some data. But in this the data and also the servers list will keep vary which comes from different subcollectives. So I don't have specific facts filter to run in broadcast mode and also I can't make such facts also. Its basically kind of requirement for us to run this often. On Sunday, January 28, 2018 at 9:14:52 PM UTC+5:30, R.I.Pienaar wrote: > > > On Sun, 28 Jan 2018, at 15:29, kk21987 wrote: > > Yes please. If the reply-to works well with batch mode it would be great > > for me as it will solve my proble :) > > yeah fire and forget doesnt support batch mode in the normal client > > in your use case does it matter if the replies all have the same request > id - ie. do you want a true batch mode where all requests have the same ID > or many seperate requests would be fine? > > I still am curious why you need to use direct mode rather than broadcast > > > > On Sunday, January 28, 2018 at 6:23:35 PM UTC+5:30, R.I.Pienaar wrote: > > > > > > > > > On 28 Jan 2018, at 13:31, kk21987 <kkarth...@gmail.com <javascript:>> > > > wrote: > > > > > > Yeah I agree it doesn't make sense to run without batch in direct > address > > > mode. But there is one problem using batch with reply-to. > > > > > > I have set the export for MCOLLECTIVE_EXTRA_OPTS with the values batch > > > size as 200 and batch sleep as 30 and when I run mco query with > --reply-to > > > its returning the result on the console of mco client server itself > which I > > > don't want. Since I have separate consumer server configured for this. > > > > > > I really don't understand why it behaves like this. Any idea please. > > > > > > > > > Could be batch mode just isn’t supported in the library when using > reply > > > to. I can look later when at a computer again > > > > > > Would be trivial to write a small custom application that does this > > > though. > > > > > > > > > On Sunday, January 28, 2018 at 3:46:04 PM UTC+5:30, R.I.Pienaar wrote: > > > > > >> > > >> > > >> On 28 Jan 2018, at 11:13, kk21987 <kkarth...@gmail.com> wrote: > > >> > > >> Understood and thanks for the detailed clarification! I have already > > >> splitted as different sub collectives (2000 per subcollective) but > again > > >> all the subcollectives are connected with Broker-A which will act as > > >> Central(just for naming convention) and this central will get big > pressure > > >> when I run direct addressing against huge number of servers. So is > there > > >> any feasibility to connect all subcollectives ActiveMQ brokers and > run the > > >> command instead of using Central one by declaring some parameter in > > >> mcollective client config or using any other tool in between? I think > which > > >> this way it will go smooth, since I see mcollective publish the > message > > >> very quickly to Broker-A(central) and as you said this is getting big > > >> pressure. > > >> > > >> > > >> Why do you need to use direct addressing for your use case? If your > node > > >> lists arbitrary and not something you can discover against? > > >> > > >> You don’t use any of the confirmation features it brings? > > >> > > >> Only other option at this scale might be to direct address + batches > > >> > > >> > > >> On Sunday, January 28, 2018 at 3:35:01 PM UTC+5:30, R.I.Pienaar > wrote: > > >>> > > >>> > > >>> > > >>> On 28 Jan 2018, at 10:48, kk21987 <kkarth...@gmail.com> wrote: > > >>> > > >>> I agree. I read about the Choria and very interested to use it. But > am > > >>> running little old version of Ruby, Puppet where I need to plan it > for > > >>> upgrade. But still Choria is in active dev am little concern to go > ahead it > > >>> on Production. > > >>> > > >>> Between I dig into furthermore and found its issue with direct > > >>> addressing mode only. When I run mco running with -T mcollective or > > >>> whatever subcollectives it goes very smooth, but when I run mco > query using > > >>> flatfile or -I(direct addressing) against high number of servers > only then > > >>> the issue occurs. > > >>> > > >>> So I suspect direct addressing takes time to execute and would > curious > > >>> to understand why it gives such difference. I believe direct > addressing > > >>> should be fast compare with broadcast, correct me if am wrong. > > >>> > > >>> > > >>> It’s a trade off because direct has to create and distribute a > single > > >>> message per every target. So if you have 10k targets it’s that many > > >>> messages. Big pressure on activemq especially with the single queue > and > > >>> processing the per node selectors > > >>> > > >>> Broadcast in turn is much lighter on the middleware and much faster > all > > >>> round but you don’t know which nodes will get it > > >>> > > >>> UDP cheap and fast because it’s not guaranteed > > >>> TCP expensive and slow with many layers but guaranteed delivery (or > at > > >>> least advisory about non delivery ack) > > >>> > > >>> Likewise with mco broadcast and direct. > > >>> > > >>> > > >>> > > >>> > > >>> > > >>> On Sunday, January 28, 2018 at 3:11:34 PM UTC+5:30, R.I.Pienaar > wrote: > > >>> > > >>>> > > >>>> > > >>>> On 28 Jan 2018, at 10:35, kk21987 <kkarth...@gmail.com> wrote: > > >>>> > > >>>> Some improvement with your debug help! Looks like the reply-to is > > >>>> working perfect as expected. The actual problem is triggering the > command > > >>>> to all the servers. > > >>>> > > >>>> I have total of 9824 servers connected with mcollective.nodes and > when > > >>>> I run mco query against all the servers to execute some command > then > > >>>> dispatching that mco query message all the consumers takes time > which is > > >>>> why the pending messages are there and whenever the each consumers > receives > > >>>> the message its slowly decreasing. > > >>>> > > >>>> > > >>>> Great > > >>>> > > >>>> > > >>>> > > >>>> Now I need to look for some tuning to get the message dispatched to > all > > >>>> the consumer very quickly, so it will be good. Any suggestion or > best > > >>>> tuning parameters available for this. I will try to look for > ActiveMQ > > >>>> documentation to get the something. > > >>>> > > >>>> > > >>>> No I gave up making activemq scale this far. I have some large > rabbitmq > > >>>> clusters but that requires a ton of hardware too > > >>>> > > >>>> Choria with NATS or the Choria broker would do this comfortably on > a > > >>>> single small 4GB VM with a tremendous speed improvement. > > >>>> > > >>>> > > >>>> > > >>>> > > >>>> > > >>>> On Sunday, January 28, 2018 at 2:03:34 PM UTC+5:30, kk21987 wrote: > > >>>> > > >>>>> Thanks. > > >>>>> > > >>>>> Yes I captured the client debug log as well and could see that it > > >>>>> publish message with reply-to properly. > > >>>>> > > >>>>> Direct Addressing: > > >>>>> > > >>>>> D, [2018-01-28T02:24:56.851292 #17287] DEBUG -- : > activemq.rb:402:in > > >>>>> `publish' Sending a direct message to ActiveMQ target > > >>>>> '/queue/mcollective.nodes' with headers > '{"mc_identity"=>"mco-server-name", > > >>>>> "timestamp"=>"1517127896000", "expires"=>"1517127966000", > > >>>>> "reply-to"=>"/queue/data.consumer.all"}' > > >>>>> > > >>>>> Broadcast: > > >>>>> > > >>>>> D, [2018-01-28T02:25:19.345299 #17340] DEBUG -- : > activemq.rb:409:in > > >>>>> `publish' Sending a broadcast message to ActiveMQ target > > >>>>> '/topic/mcollective.shell.agent' with headers > '{"expires"=>"1517127989000", > > >>>>> "reply-to"=>"/queue/data.consumer.all", > "timestamp"=>"1517127919000"}' > > >>>>> > > >>>>> Here is the way I used to exclude the queue consumer destination > on > > >>>>> Broker-A. > > >>>>> > > >>>>> <queue physicalName="data.consumer.>"/> > > >>>>> > > >>>>> I couldn't take the debug logs on ActiveMQ due to the servers > count is > > >>>>> little high, so it generate huge logs and couldn't get it exactly. > But I > > >>>>> used ActiveMQ-Cli to export the JMS queue and here is a example of > one > > >>>>> pending message > > >>>>> > > >>>>> > > >>>>> <jms-message> > > >>>>> <header> > > >>>>> > > >>>>> > <message-id>ID:broker-A-16618-1517126209254-79:5:-1:1:559</message-id> > > >>>>> <delivery-mode>1</delivery-mode> > > >>>>> <destination>queue://mcollective.nodes</destination> > > >>>>> <expiration>1517127457000</expiration> > > >>>>> <priority>4</priority> > > >>>>> <redelivered>false</redelivered> > > >>>>> <reply-to>queue://data.consumer.all</reply-to> > > >>>>> <timestamp>2018-01-28T02:16:27</timestamp> > > >>>>> </header> > > >>>>> <properties> > > >>>>> <property> > > >>>>> <name>content-type</name> > > >>>>> <value>text/plain; charset=UTF-8</value> > > >>>>> </property> > > >>>>> <property> > > >>>>> <name>mc_identity</name> > > >>>>> <value>mcollective-server-name</value> > > >>>>> </property> > > >>>>> </properties> > > >>>>> </jms-message> > > >>>>> > > >>>>> > > >>>>> > > >>>>> > > >>>>> On Sunday, January 28, 2018 at 12:40:14 PM UTC+5:30, R.I.Pienaar > wrote: > > >>>>> > > >>>>>> > > >>>>>> > > >>>>>> On 28 Jan 2018, at 06:06, kk21987 <kkarth...@gmail.com> wrote: > > >>>>>> > > >>>>>> My apologize. I misunderstood few things. > > >>>>>> > > >>>>>> Basically when I run mco query in direct addressing mode then it > > >>>>>> publish that message as queue where as broadcast mode publish the > message > > >>>>>> as topic. So I suspect its not an issue with the modes whatever > the mco > > >>>>>> query use. The only thing I want to understand is, lets say I run > mco query > > >>>>>> against 1000servers with --reply-to (fire and forget, no > acknowledgement > > >>>>>> and nothing. Correct me if am wrong), so all the response message > will go > > >>>>>> to the consumer where the active subscriber is present for the > given queue. > > >>>>>> The response message is not coming to Broker-A which I have > configured by > > >>>>>> starting receiver here as well and perfectly its going to the > consumer > > >>>>>> where its active. > > >>>>>> > > >>>>>> > > >>>>>> That sounds about right. Yes it will use a topic and all nodes > will > > >>>>>> get it > > >>>>>> > > >>>>>> > > >>>>>> My concern is, at the same time I see count is showing in pending > > >>>>>> message for the queue "mcollective.nodes" and slowly its > decreasing(at the > > >>>>>> same enqueued and dequeued messages count also increasing slowly) > which I > > >>>>>> have verified on ActiveMQ UI Jolokia monitoring (8161). So I > would like to > > >>>>>> understand why such messages count in pending messages, since all > I want to > > >>>>>> just fire the command and forget and don't want to worry about > response or > > >>>>>> whether its executed or not. > > >>>>>> > > >>>>>> Name ↑Number Of Pending Messages Number Of Consumers Messages > > >>>>>> Enqueued Messages Dequeued Views Operations > > >>>>>> mcollective.nodes 9 84 884 875 Browse Active Consumers > > >>>>>> Active Producers > > >>>>>> Send To PurgeDelete > > >>>>>> > > >>>>>> > > >>>>>> > > >>>>>> You will need to double check in the logs. Your client also logs > and > > >>>>>> at debug > > >>>>>> level you can verify where the publish to > > >>>>>> > > >>>>>> > > >>>>>> On Sunday, January 28, 2018 at 7:48:15 AM UTC+5:30, kk21987 > wrote: > > >>>>>> > > >>>>>>> Based on my understanding when I run mco query with reply-to I > > >>>>>>> should see the reply-to queue name on the response header and > its there on > > >>>>>>> mcollective server logs, which I have verified by enabling debug > on the > > >>>>>>> mcollective servers. > > >>>>>>> > > >>>>>>> My worry is, I shouldn't get any response messages back to the > > >>>>>>> Broker-A and all the response messages should go to the consumer > server > > >>>>>>> which is running elsewhere. This is working as expected for > broadcast based > > >>>>>>> mco query but when I run direct addressing based mco query then > the > > >>>>>>> response message is flowing everywhere instead of going to > consumer server > > >>>>>>> only. I have configured the exclude destination on Broker-A to > make sure > > >>>>>>> none of the brokers are connected with the reply-to queue name > except the > > >>>>>>> consumer server broker. > > >>>>>>> > > >>>>>>> On Sunday, January 28, 2018 at 2:08:06 AM UTC+5:30, R.I.Pienaar > > >>>>>>> wrote: > > >>>>>>> > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> On Sat, 27 Jan 2018, at 15:03, kk21987 wrote: > > >>>>>>>> > Hi, > > >>>>>>>> > > > >>>>>>>> > Am having some issue with --reply-to behavior and not sure if > its > > >>>>>>>> an > > >>>>>>>> > issue > > >>>>>>>> > or the behavior itself like that. My setup is drawn in > > >>>>>>>> > ...... > > >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> > My environment is enabled with direct_addressing. Basically I > > >>>>>>>> always fire > > >>>>>>>> > the mco and forget it and don't want to consume any messages > on > > >>>>>>>> mco client. > > >>>>>>>> > I have configured separate consumer server where it will > consume > > >>>>>>>> the > > >>>>>>>> > messages on the queue whatever declared during the mco query > and > > >>>>>>>> will get > > >>>>>>>> > result from thie consumer server. The reason for configured > > >>>>>>>> separate > > >>>>>>>> > consumer server is some commands whatever I run will take > more > > >>>>>>>> time to > > >>>>>>>> > execute and also doing some logic on the response messages > based > > >>>>>>>> on my > > >>>>>>>> > requirement. > > >>>>>>>> > > > >>>>>>>> > I have configured exclude destination to make sure the queue > > >>>>>>>> whatever am > > >>>>>>>> > using in reply-to not connected with Broker-A from other > brokers. > > >>>>>>>> > > > >>>>>>>> > When I run mco query using regex filter it pubish message in > > >>>>>>>> broadcast mode > > >>>>>>>> > and consumer server consume the response without any issue. > At > > >>>>>>>> the same > > >>>>>>>> > time when I check on the Broker-A ActiveMQ UI monitoring I > > >>>>>>>> noticed Messages > > >>>>>>>> > Enqueued Dequeued count is NOT increased which means nothing > > >>>>>>>> coming back to > > >>>>>>>> > Broker-A. > > >>>>>>>> > > > >>>>>>>> > But when I run mco query using direct addressing mode (-I) > along > > >>>>>>>> with > > >>>>>>>> > reply-to the message is published as direct addressing and > > >>>>>>>> consumer server > > >>>>>>>> > consume the response fine here as well. At the same time when > I > > >>>>>>>> check on > > >>>>>>>> > the Broker-A ActiveMQ UI monitoring I noticed Messages > Enqueued > > >>>>>>>> Dequeued > > >>>>>>>> > count is increased which means message is coming to Broker-A > as > > >>>>>>>> well at the > > >>>>>>>> > same time message is available on consumer server. > > >>>>>>>> > > > >>>>>>>> > Am not sure such difference between direct addressing and > > >>>>>>>> broadcast even > > >>>>>>>> > though both use the same reply-to mechanism. I don't want any > > >>>>>>>> response > > >>>>>>>> > messages come back to Broker-A and all the response messages > > >>>>>>>> should go to > > >>>>>>>> > Consumer Server only. Can I have some lights on this please? > > >>>>>>>> > > >>>>>>>> what you describe should work, I guess the best hints lie in > the > > >>>>>>>> server debug log. Does it send a reply and does it do so to > the right > > >>>>>>>> target? > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> -- > > >>>>>>>> R.I.Pienaar / www.devco.net / @ripienaar > > >>>>>>>> > > >>>>>>> -- > > >>>>>> > > >>>>>> --- > > >>>>>> You received this message because you are subscribed to the > Google > > >>>>>> Groups "mcollective-users" group. > > >>>>>> To unsubscribe from this group and stop receiving emails from it, > > >>>>>> send an email to mcollective-us...@googlegroups.com. > > >>>>>> For more options, visit https://groups.google.com/d/optout. > > >>>>>> > > >>>>>> -- > > >>>> > > >>>> --- > > >>>> You received this message because you are subscribed to the Google > > >>>> Groups "mcollective-users" group. > > >>>> To unsubscribe from this group and stop receiving emails from it, > send > > >>>> an email to mcollective-us...@googlegroups.com. > > >>>> For more options, visit https://groups.google.com/d/optout. > > >>>> > > >>>> -- > > >>> > > >>> --- > > >>> You received this message because you are subscribed to the Google > > >>> Groups "mcollective-users" group. > > >>> To unsubscribe from this group and stop receiving emails from it, > send > > >>> an email to mcollective-us...@googlegroups.com. > > >>> For more options, visit https://groups.google.com/d/optout. > > >>> > > >>> -- > > >> > > >> --- > > >> You received this message because you are subscribed to the Google > Groups > > >> "mcollective-users" group. > > >> To unsubscribe from this group and stop receiving emails from it, > send an > > >> email to mcollective-us...@googlegroups.com. > > >> For more options, visit https://groups.google.com/d/optout. > > >> > > >> -- > > > > > > --- > > > You received this message because you are subscribed to the Google > Groups > > > "mcollective-users" group. > > > To unsubscribe from this group and stop receiving emails from it, send > an > > > email to mcollective-us...@googlegroups.com <javascript:>. > > > For more options, visit https://groups.google.com/d/optout. > > > > > > > > > > -- > > > > --- > > You received this message because you are subscribed to the Google > > Groups "mcollective-users" group. > > To unsubscribe from this group and stop receiving emails from it, send > > an email to mcollective-us...@googlegroups.com <javascript:>. > > For more options, visit https://groups.google.com/d/optout. > > > -- > R.I.Pienaar / www.devco.net / @ripienaar > -- --- You received this message because you are subscribed to the Google Groups "mcollective-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to mcollective-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.