Great and thanks! Let me try this one, between in which location I should place this file to make normal mco query work with batch.
On Sunday, January 28, 2018 at 9:49:53 PM UTC+5:30, R.I.Pienaar wrote: > here's a batch fire and forget client, of course it doesnt return > instantly but it doesnt expect replies or wait for replies > > https://gist.github.com/ripienaar/52e73db531cc22b434b8433ababd8df2 > > On Sun, 28 Jan 2018, at 16:51, kk21987 wrote: > > 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-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.