eessõna
Mõnes kohas kasutatakse sõnumijärjekordi info töötlemise täpsuse tagamiseks. Näiteks kõrge samaaegsuse olukordades töötlevad veebilehed andmetöötlust. Täna salvestab see artikkel lihtsa demo RabbitMQ-st. Enne artikli alustamist tuleb RbMQ keskkond eelnevalt paigaldada (sest ma paigaldasin kohaliku RbMQ keskkonna varem ja kardan, et desinstallimine võib põhjustada probleeme, et register pole puhas, seega ma ei salvesta keskkonna paigaldust siia).
Keskkond ja tööriistad
>Windows 10 süsteem
>RabbitMQ Keskkonnateenused
>VS 2017
Tekst
1: Loo kaks uut konsoolirakendust, nimelt "RabbitMQClient" ja "RabbitMQServer".
2: Vaata "RabbitMQ.Client" dll-i
3: RabbitMQClient projektis kleepi Program.cs järgmine kood
4: RabbitMQServer projektis kleebi Program.cs järgmine kood
5: F5 RabbitMQServer projekti käivitamiseks, konsoolis sisesta info, vajuta enter.
6: Ära sulge RabbitMQServeri projektikonsooli, tee paremklõps RabbitMQClient projektil - > "Debug" - > "Alusta uut instantsi"
Saad sisestada infot paremal asuvasse RabbitMQServer konsooli, et kuvada seda vasakul. RabbitMQServer projekt toodab sõnumeid. RabbitMQClient projekt töötleb (tarbib) sõnumeid. See on sõnumijärjekorras tootja ja tarbija. Kood hõlmab ka marsruutimist ja kanaleid.
Sõnumi tootja poolel pane töödeldav info sõnumijärjekorda. Pärast sõnumi saamist saab tarbija neid andmeid vastavalt töödelda.
Kui keskkond on paigaldatud, peaks kohalik vaikimisi pordiaadress olema http://localhost:15672/#/queues. Saad otse ligi külaliskontole või konfigureerida konto ja vastavad õigused, vajutades käsureale.
Info, mille just sisestasid RabbitMQServer konsooli, on tegelikult esmalt sõnumijärjekorras, saad kõigepealt sulgeda RabbitMQClient akna ja seejärel sisestada aknasse mõned andmetükid, jälgida sõnumijärjekorda ja näed, et järjekorras on kolm andmeosa.
Kui meie RabbitMQClient aken algab, kaob sõnum automaatselt sõnumijärjekorrast pärast tavapärast vastuvõttu. See on sõnumijärjekorra kinnitusmehhanism, kui vajalik info on täpselt kätte saadud, tagastab tarbija sõnumijärjekorda oleku, et sõnum hävitada. Kui tarbija sõnumit ei saa või kui on erand ja ta ei tagasta seda olekuväärtust, jääb sõnum järjekorda kuni sõnumi tavapärase tarbimiseni, mis tagab sõnumi täpsuse.
Epiloog
Kahjuks on väga vähe kohti, kus kasutan oma projektides sõnumijärjekordi. Ilma põhjaliku arusaamiseta kasutatakse ainult põhitõdesid.
Ülaltoodud demos on auk ning RabbitMQClienti RbMQ ühendusel on kasutuskiht. Kuna tegemist on asünkroonne lõimega, käivitab ja taastab RbMQ ühenduse enne, kui see sõnumi lõpuks kätte jõuab, ning teatatakse vea. Parim viis sellega toime tulla on: eemalda kasutamine ja vabasta see käsitsi.
|