Mga Pila ug JMeter: pagpaambit sa Publisher ug Subscriber
Hello, Habr! Kini usa ka sequel sa akoa miaging publikasyon, diin ako maghisgot bahin sa mga kapilian sa pagbutang sa mga mensahe sa mga pila gamit ang JMeter.
Naghimo kami og data bus alang sa usa ka dako nga pederal nga kompanya. Nagkalainlain nga mga format sa paghangyo, pagbag-o, makuti nga ruta. Alang sa pagsulay, kinahanglan nimo nga magpadala daghang mga mensahe sa pila. Ang mano-mano usa ka sakit nga dili madumala sa tanan nga chiropractor.
Pasiuna
Bisan tuod kinahanglan nako nga antuson kini nga kasakit sa una. Nagsugod ang tanan sa RFHUtil. Gamhanan, apan awkward ug makahahadlok: Aw, nahibal-an nimo si Rus.
Kinahanglanon sa pipila ka mga kaso, apan padayon nga pagkunhod sa kaso sa aktibo nga paggamit.
Ang sayon ββββnga pagsulay imposible niini.
Uban sa JMeter ang tanan nahimong mas sayon. Human sa unang yugto sa pagkahanas ug pagkaanad niini, ang paglaom misugod sa pagbanagbanag alang sa malipayong pagsulay.
Aktibo nakong gigamit ang JMS Publisher ug JMS Subscriber samplers. Dili sama sa JMS Point-to-Point, kini nga pares daw mas sayon ββββgamiton. Pananglitan, sa Subscriber sa JMS Selector mahimo nimong itakda ang usa ka variable, apan sa Point-to-Point dili nimo mahimo (o kini nga pamaagi dili kaayo klaro).
Pag-andam sa mga sampler
JMS Publisher
Setup - Matag Sampol. Apache nagrekomenda gamita kini nga opsyon kung ang mga pila/mga topiko gipiho pinaagi sa mga variable.
Expiration (ms) = 120000. Kung mapakyas, ang mga hangyo sa pagsulay mawala gikan sa pila pagkahuman sa 2 minuto.
Gamita ang non-persistent delivery mode? - tinuod. IBM aprobahankana nga padayon nga mode nagsiguro sa kasaligan nga pagpreserbar sa gipasa nga mga mensahe kung adunay kalit nga pagkapakyas. Ug mas paspas nga pagbinayloay sa non-persistent mode. Alang sa mga katuyoan sa pagsulay, ang katulin mas hinungdanon.
Sa matag Publisher nagbutang ko og jms property nga gamiton sa Subscriber sa JMS Selector. Alang sa matag pagsumite, usa ka random nga kantidad ang gihimo sa elemento sa plano sa pagsulay sa User Parameters:
Niining paagiha makasiguro ka nga ang husto nga mensahe gibasa.
Ang katapusang "blangko" sa usa ka pre-configure nga JMS Publisher:
Subscriber sa JMS
Setup - Matag Sampol. Aw, nakasabot ka.
Timeout (ms) = 100000. Kung ang hangyo dili moabut sa pila pagkahuman sa 100 segundos nga paghulat, adunay nahitabo nga sayup.
Hunong taliwala sa mga sampol? - tinuod.
JMS Selector - medyo sayon butang. Katapusan nga Subscriber sa JMS:
Giunsa ang pag-atubang sa Cyrillic alphabet sa gipasa nga mga mensahe. Sa JMeter, sa default, pagkahuman sa pag-proofread, gipakita kini nga hiwi. Aron malikayan kini ug matagamtam ang dako ug gamhanan kanunay ug bisan asa, kinahanglan nimo:
Pagdugang usa ka argumento sa JVM sa "launcher" sa JMeter:
-Dfile.encoding=UTF-8
Idugang ang JSR223 PostProcessor sa Subscriber nga adunay groovy line:
prev.setDataEncoding("UTF-8")
Magpadala ug text
Ang labing tapulan nga kapilian. Angayan alang sa pag-debug sa bag-ong sinulat nga mga pagsulay. O alang sa mga kaso kung kinahanglan nimo ipadala bisan gamay nga butang. Pagpili kapilian Tinubdan sa mensahe - Textarea ug ibutang ang lawas sa mensahe sa usa ka text block:
Pagbalhin sa file
Ang labing komon nga kapilian. Angayan alang sa kadaghanan nga mga senaryo. Pagpili kapilian Tinubdan sa mensahe - Gikan sa file ug ipakita ang dalan sa mensahe sa uma File - Ngalan sa file:
Pagbalhin sa usa ka file ngadto sa usa ka text field
Ang labing daghag gamit nga kapilian. Angayan alang sa kadaghanan nga mga senaryo + mahimong magamit sa JMS Point-to-Point diin walaβy ikaduha nga kapilian sa pagpadala:
Pagpasa sa usa ka byte array
Ang labing lisud nga kapilian. Angayan alang sa pagsusi sa dili masayop nga tukma nga pagpasa sa mga hangyo hangtod sa byte, nga walaβy pagtuis, SMS ug kasamok. Dili nimo kini mahimo sa default nga JMeter. dinhi Gisultihan gyud ko bahin niini.
Mao nga kinahanglan kong mag-download tinubdan ug usba code Subscriber sa JMS.
Gipulihan sa pamaagi extractContent(..) linya:
buffer.append(bytesMessage.getBodyLength() + " bytes received in BytesMessage");
Ang nahabilin mao ang pagdugang usa ka magtiayon nga JSR223 Sampler. Ang una mao ang atubangan sa Publisher/Subscriber nga pares sa paghimo og DAT file nga adunay mga random bytes:
Gihulagway nako ang upat ka paagi sa pagpadala og mga mensahe ngadto sa mga pila, nga akong gigamit kada adlaw sa praktis. Nanghinaut ko nga kini nga impormasyon makapasayon ββsa imong kinabuhi. Sa pagpadayon, nagplano ako nga maghisgot bahin sa akong kasinatian sa pagsulay sa usa ka pagbinayloay diin adunay usa ka pila sa usa ka tumoy ug usa ka database o file system sa pikas.
Pagtipig sa imong oras. Ug salamat sa imong pagtagad.