prefață
În unele locuri, cozile de mesaje sunt folosite pentru a asigura acuratețea procesării informațiilor. De exemplu, în situații de concurență mare, site-urile web efectuează procesarea datelor. Astăzi, acest articol prezintă o demonstrație simplă a RabbitMQ. Înainte de a intra în acest articol, mediul RbMQ trebuie instalat în prealabil (pentru că am instalat înainte mediul local RbMQ și mă tem că dezinstalarea va cauza unele probleme, deoarece registrul nu este curat, așa că nu voi înregistra instalarea mediului aici).
Mediu și Unelte
>Sistemul Windows 10
>Serviciile de Mediu RabbitMQ
>VS 2017
Text
1: Crearea a două noi aplicații de consolă, și anume "RabbitMQClient" și "RabbitMQServer".
2: Consultați dll "RabbitMQ.Client"
3: În proiectul RabbitMQClient, Program.cs, lipește următorul cod
4: În proiectul RabbitMQServer, Program.cs, lipiți următorul cod
5: F5 pentru a începe proiectul RabbitMQServer, în consolă, introduci informația, apasă enter.
6: Nu închideți consola proiectului RabbitMQServer, faceți clic dreapta pe proiectul RabbitMQClient - > "Depanare" - > "Începeți o instanță nouă"
Poți introduce informații în consola RabbitMQServer din dreapta pentru a le afișa în stânga. Proiectul RabbitMQServer produce mesaje. Proiectul RabbitMQClient procesează (consumă) mesaje. Acesta este producătorul și consumatorul din coada de mesaje. Codul implică și rutarea și canalele.
Pe partea producătorului de mesaje, lasă informațiile care urmează să fie procesate în coada de mesaje. După primirea mesajului, consumatorul poate procesa aceste date corespunzător.
Dacă mediul este instalat, adresa locală implicită a portului ar trebui să fie http://localhost:15672/#/queues. Poți accesa direct contul de oaspeți sau poți configura contul și permisiunile corespunzătoare atingând linia de comandă.
Informațiile pe care tocmai le-ai introdus în consola RabbitMQServer există de fapt mai întâi în coada de mesaje, poți închide mai întâi fereastra RabbitMQClient, apoi poți introduce câteva informații în fereastră, observa coada de mesaje și poți vedea că există trei date în coadă.
Când pornește fereastra noastră RabbitMQClient, mesajul va dispărea automat din coada de mesaje după ce îl primește normal. Acesta este mecanismul de confirmare al cozii de mesaje; odată ce informațiile de care avem nevoie sunt primite corect, consumatorul va returna o stare în coada de mesaje pentru a distruge mesajul. Dacă consumatorul nu primește mesajul sau dacă există o excepție și nu returnează această valoare de status, mesajul va rămâne în coadă până când mesajul este consumat normal, ceea ce asigură acuratețea mesajului.
Epilog
Din păcate, sunt foarte puține locuri unde folosesc cozi de mesaje în proiectele mele. Fără o înțelegere aprofundată, vor fi folosite doar elementele de bază.
Există o gaură în demo-ul de mai sus, iar conexiunea RbMQ în RabbitMQClient are un strat de utilizare. Deoarece este un fir asincron, acest lucru va determina programul să ruleze și să recicleze conexiunea RbMQ înainte de a termina de primit mesajul, iar o eroare va fi raportată. Modul de a rezolva situația este: elimină folosirea și eliberarea manuală.
|