Sql broker de servicii de server, #
Bună ziua tuturor! În cele din urmă, mâna a venit să scrie un alt articol profilat. Astăzi aș vrea să vorbesc despre ceea ce ar putea lucra pentru aproximativ o săptămână sau două la locul de muncă din cauza lipsei proiectului principal.
Te implor să iubesc și favoare: SQL Server Serviciu Broker!
Deci, preludiu. Proiectul ajunge la maturitate. Esența puzzle-urilor este destul de popular: clientul dorește să împingă de date în baza de date, trebuie să le proceseze într-un fel foarte artistic până la recurgerea la resurse externe, iar apoi să se întoarcă rezultatele înapoi. Și truc este că modul „normal“ pentru noi, nimeni nu notifica și nu pot aștepta (sau nu poate, nu este esența). Vreau doar să spun că, de fapt, cadrul pentru a obține chiar și mai dur: nu este nimic de a scrie bicicletele lor, folosim Serviciul Broker, și toată lumea este fericită. Ei bine ... este necesar să se înțeleagă că pentru un astfel de animal.
Dacă este scurt, iar în cazul, apoi pornim (aici se taie toate conexiunile la baza de date):
sculpta în continuare noastre tipuri de mesaje, contracte, cozi, servicii. Ei bine, vă puteți răsfăța.
De exemplu, deoarece mesajul este trimis (pentru Încheiați convers locale pot strânge mâna - așa că nu ar trebui să facă și o altă notă și virgulă.)
Sau să ia un mesaj:
Acest lucru este scurt despre sintaxa. Acum săpa mai adânc în problema.
Astfel, problema banilor și am foarte scurt evidențiate mai sus. Dar toate cuvintele. Este necesar să se astfel de plan și de a distribui hârtia. Ceea ce urmează este o diagramă de sine (clickable) și o descriere.
1, 2. Aplicația client sculpteaza un mesaj de intrare (m1) și îl plasează într-o coadă de mesaje primite (Coadă in).
3. Pe server, am creat o activare externă (Ext Activator, serviciu de sistem nu este adormit).
4. Prin urmare, acesta subminează modul nostru cu magie (Mapper).
5. Unitatea trage un inteligent (din nou) hranimku (SP Dequeue In).
6. care ajunge în toate mesajele primite.
7. supbroduse dintr-o serie de cele mai multe mesaje.
8. Cram într-un tabel temporar (tabelul În) de încărcare a mesajelor cheie din eșantion (i).
9. Și returnează același modul cheie (vom reveni pur și simplu nu se poate o tabelă temporară).
10. Acum, modulul are o cheie de probă, așa că bate la funcția de masă (TVF Dequeue In).
11, 12. Pentru a selecta cu ajutorul ei părți utile ale mesajelor.
13. Și apoi - o serie de mesaje.
14. Conversia 1 (Harta 1).
15, 16, 17. bate serviciul extern și colecta rezultat (req, Serviciul extern, res de proces).
18. Conversia 2 (Harta 2).
19, 20. Noi trage un alt hranimku (SP Out Puneți în coadă), pentru a împinge mesajul de ieșire (m2) la coada de mesaje trimise (Coadă Out).
21, 22. Un client multumit preia mesajul.
23. Am curățat masa temporară de cheie.
Dacă acordați atenție la coloana cu valori minime, va fi clar că cele mai multe de unică folosință mânca IO-intensive sarcini (executați fișierul executabil, descoperirea de compuși). Dacă faci totul ar aduce în minte și încărca complet, atunci cel mai probabil, va începe să se scufunde șurubul (pentru tempdb) și care apare blocare (trebuie, de asemenea, să se gândească). Acesta este un lucru interesant. Deoarece raid, precum și întregul SQL Server, nu osilivaetsya.
Pentru rezultatul - cere pe GitHub. Și acum - toate bine săptămâna de lucru.