Perspective all-inclusive despre construirea de microservicii Javascript cu Node.js!

Publicat: 2022-03-21

Dimensiunea aplicației dvs. JavaScript crește rapid? Dacă da, atunci trebuie să fi devenit o provocare pentru tine să menții codul, să remediezi erorile și să implementezi noi actualizări. Deci, care este soluția? Ei bine, angajarea mai multor dezvoltatori poate fi utilă, dar, în același timp, ar putea crește complexitatea proiectului și crește cheltuielile.

Cea mai bună soluție este să optați pentru arhitectura de microservicii – sisteme distribuite care împart proiectele monolitice mari în programe independente de dimensiuni mai mici, care comunică între ele pentru efectuarea operațiunilor și schimbul de date. Folosind această abordare, o aplicație poate fi structurată ca o combinație de servicii slab cuplate.

Să explorăm în detaliu microservicii JavaScript și să înțelegem de ce este recomandabil să folosim arhitectura Node.js pentru construirea de microservicii. De asemenea, obțineți îndrumări pas cu pas pentru crearea de microservicii JavaScript cu Node.js.

Ce se înțelege prin microservicii?

În ceea ce privește dezvoltarea aplicațiilor software, microservicii se referă la un tip de SOA (arhitectură orientată pe servicii). Aici, un ansamblu de servicii interconectate formează structura aplicației. Datorită microserviciilor, arhitectura aplicației este creată folosind protocoale ușoare, cum ar fi LDAP, OpenLDAP etc. Aplicația poate fi dezintegrată în servicii mai mici și există loc pentru modularitate îmbunătățită. În zilele noastre, majoritatea aplicațiilor bazate pe cloud cu o interfață GraphQL/REST sunt dezvoltate folosind microservicii.

Avantajele microserviciilor față de arhitectura monolitică

În Monolithic Architecture, predecesorul microserviciilor, toate componentele software și serviciile sunt puse într-un container mare și apoi împachetate etanș. În timp ce o aplicație monolitică este o singură unitate unificată, microservicii despart structura aplicației în unități mai mici independente care execută fiecare proces de aplicație ca un serviciu distinct. Prin urmare, fiecare serviciu are propria logică și bază de date și îndeplinește funcții specifice. Deci, în comparație cu aplicațiile monolitice, aplicațiile de microservicii sunt mai flexibile, scalabile, de încredere și mai agoniste de limbaj; implică iterații mai ușoare; optimizați timpul la maximum; organizarea datelor în mod sistematic. Mai mult, interfețele microserviciilor (puncte finale API) conțin un URI de bază. Acest URI identifică un obiect de date și metodologiile standard HTTP, cum ar fi POST, GET, PUT, PATCH și DELETE, care sunt utilizate pentru manipularea obiectului.

În cazul aplicațiilor construite pe microservicii JavaScript, vă puteți concentra pe crearea de module monofuncționale cu interfețe precise și operații clar definite. Acest lucru face ca procesul de dezvoltare a aplicației să fie mai agil, minimizând problemele testării continue.

Cu toate acestea, deoarece fiecare microserviciu trebuie tratat separat în timpul activităților precum testarea, implementarea, stocarea în cache etc., această abordare nu se potrivește tuturor tipurilor de proiecte. În mod ideal, este recomandabil să folosiți arhitectura monolitică atunci când dezvoltați aplicații/soluții software ușoare care nu folosesc prea multă logică de afaceri. Microserviciile sunt recomandate pentru construirea de aplicații complexe și aplicații în evoluție cu cerințe de scalare, cum ar fi soluțiile SaaS, care pot avea o mie de utilizatori într-o zi și zece mii de utilizatori în ziua următoare.

Microservicii Node.js

Node.js este cea mai preferată alegere pentru construirea de microservicii JavaScript. Node.js este un RTE (mediu de rulare) cu sursă deschisă, multiplatformă, scris într-un motor JavaScript și este utilizat pentru dezvoltarea aplicațiilor de pe server și de rețea. Node.js este executat pe sisteme de operare precum Linux, Microsoft Windows și OS X în timpul de execuție Node.js.

De ce este preferat Node.js pentru crearea de microservicii?

Cadrul Node.js oferă o bază de date bogată care conține mai multe module JavaScript care ușurează dezvoltarea microserviciilor JavaScript. Este o tehnologie preferată pentru construirea de aplicații legate de I/O, aplicații bazate pe API JSON, SPA-uri, aplicații în timp real care consumă intens date, aplicații de streaming de date etc. Beneficiile utilizării Node.js pentru dezvoltarea de microservicii sunt următoarele. :

Natura asincronă: bibliotecile non-sincrone și neblocante ale mediului Node.js trec la următorul API fără a aștepta ca API-ul anterior să returneze date.

Control mai mare al costurilor: atât Node.js, cât și microserviciile au abilități excepționale de scalare, ceea ce duce la costuri mai mici de dezvoltare și întreținere. Mai mult, Node.js minimizează cerințele de infrastructură, cum ar fi memoria, procesorul etc. pentru a servi același număr de solicitări în comparație cu altele, reducând astfel cheltuielile.

Performanță excelentă: Node.js este o tehnologie web populară, cu suport dinamic pentru comunitate și multe resurse disponibile. În plus, Node.js oferă un API de streaming standard și astfel asigură dezvoltarea sigură și performanța sunetului aplicațiilor în timp real, cum ar fi jocurile online, aplicațiile de chat etc. De asemenea, dacă un microserviciu este oprit din cauza unor probleme sau erori, întreaga aplicație nu nu fiți afectat Și, JavaScript, fiind un limbaj interpretat, economisește timp în timpul etapei de compilare. De aceea, aplicațiile care folosesc microservicii JavaScript cu Node.js au rezultate bune.

Viteză și capacitate de reacție: Node.js are un singur thread și, datorită buclei de evenimente, serverul folosește un mecanism care nu blochează pentru a răspunde. Mai mult, din cauza notificării „Evenimente ale Node.js”, serverul de aplicații poate captura răspunsul apelului API anterior. Buffering-ul este minim, deoarece datele sunt eliberate în bucăți. Având viteză, motorul JavaScript V8 le permite dezvoltatorilor Node.js să execute coduri foarte rapid.

Scenariul de cazuri de utilizare Node.js

Node.js se potrivește perfect pentru următoarele scenarii de utilizare:

  • Creați o aplicație de întreprindere care trebuie să suporte diferiți clienți, aplicații mobile native și browsere mobile/desktop; furnizați un API pe care terții îl pot utiliza, configurați o conductă de implementare continuă pentru o aplicație; se integrează cu alte aplicații printr-un broker de mesaje sau servicii web; și rulați mai multe instanțe ale aplicației pe diferite mașini pentru a răspunde cerințelor de disponibilitate și scalabilitate ale NFR.
  • Trebuie să migrați aplicații monolitice pentru îmbunătățirea aspectelor/abilităților precum flexibilitatea, scalabilitatea și gestionabilitatea sau trebuie să re-platformați o aplicație moștenită.
  • Trebuie să segregați serviciile end-to-end independente, cum ar fi autentificarea și criptarea.
  • Un scenariu în care furnizorul de servicii oferă clientului resursele necesare de gestionare a infrastructurii și de calcul, cum ar fi servicii de prețuri sau de prognoză.
  • Trebuie să oferiți servicii de back-end pentru o aplicație web receptivă, care poate colecta date din diverse surse de date sau canale.

Pași pentru construirea de microservicii JavaScript cu Node.js

Validați cerința de afaceri

Identificați de ce servicii are nevoie afacerea dvs. De exemplu, aveți nevoie de un serviciu în care trebuie identificate două coduri poștale și distanța dintre ele. Sunt necesare tehnici de validare pentru a identifica codul poștal și pentru a calcula distanța. Pentru aceasta, acesta este . icroservice trebuie să configureze apelurile API externe. Și, dacă implementați un cache intern, procesul poate deveni rentabil prin duplicarea rapidă a apelurilor API.

Procedura de inițializare

Mai întâi, instalați Node.js pe stația de lucru/calculatorul dvs. și pentru aceasta se recomandă versiunea 8.1.1. Managerul de pachete Node.js, numit în mod obișnuit NPM, vine ca parte a suitei de instalare. NPM îndeplinește funcții cruciale, cum ar fi lansarea proiectului, încărcarea dependenței și execuția serviciului.

Inițializarea proiectului foe, deschideți platforma Node.js, mergeți la folderul rădăcină și apoi executați comanda $ npm init. După ce comanda este executată, face loc pentru crearea fișierului package.json, iar crearea acestui fișier formează baza execuției proiectului.

Microserviciul va fi creat pe baza acestor două pachete principale:

  • „Solicitare” – microservicii folosesc acest pachet pentru conectarea cu API-uri bazate pe web sau terță parte.
  • "Expres." – Acest pachet oferă o structură care acceptă aplicațiile Node.js și acceptă fundația Node.js a microserviciului respectiv.

Aceste pachete pot fi adăugate la fișierul package.json prin acești pași simpli – introducând comanda $ npm install express request, adăugând salvare la sfârșitul comenzii și apoi rulând această comandă.

Rezultat:

Comanda mpm init creează o structură de fișiere/foldere pentru construirea unui microserviciu, iar pachetele Request și Express sunt salvate în această structură sub formă de dependențe. După aceea, începe codarea.

Configurați serverul

Acest pas este prima parte a codării și aici trebuie să creați un server care recunoaște și acceptă cereri.

Creați un fișier de intrare numit server.js; va fi executat la pornirea serverului. Faceți rutele disponibile în fișierul principal trecând instanța aplicației în obiectul rute. Apoi definiți rutele și când rulați serverul, aplicația ascultă fie portul 3000, fie orice alt port care este specificat în variabila mediului PORT.

Specificați rutele

Apoi urmează următorul pas crucial în dezvoltarea microserviciilor, de a specifica rutele pentru transmiterea răspunsului. Serverul construit anterior va atribui rute și aceste rute se vor asigura că toate cererile sunt procesate.

Creați un fișier numit routes.js în folderul api_routes și adăugați codul necesar la acesta. Acum, fișierul rute specifică cele două puncte finale - punctul final despre specifică detaliile aplicației, în timp ce punctul final de distanță calculează distanța (în mile) dintre ambele coduri zip folosind API-ul extern.

Fișierul controlerului conține implementarea acestor puncte finale și ne va duce la pasul următor.

Construiți controlerul

Acum, logica controlerului trebuie adăugată la microserviciu pentru a-l împuternici cu câteva funcții utile. Obiectul controlor este utilizat pentru interpretarea intențiilor utilizatorului, precum și a acțiunilor de comunicare a datelor nou modificate pentru prelucrarea obiectelor. De asemenea, este util în gestionarea cererilor primite de modulul de rute care a fost creat anterior. Fișierul controler execută două funcții – getDistance() și about().

Două argumente – cerere și răspuns – sunt acceptate de funcția about(). Numele lor, precum și valorile versiunii, sunt stocate în proprietățile pachetului.json. La fel, funcția getDistance () conține, de asemenea, perechea de argumente cerere și răspuns; apelează funcția find API care a fost definită în folderul de servicii.

Stabiliți apelul API extern

Pentru a crea apelul API, utilizați un API terță parte, ZipCodeAPI.com. – se poate obține o cheie API gratuită prin înregistrarea unui cont sau folosind cheia API de testare.

Acum, creați codul de microserviciu prin următorii pași:

  • Încărcați pachetul de solicitări pentru procesarea cererii HTTP externe
  • Încărcați cheia API și zipCodeURL disponibile în variabila de mediu

Construiți un obiect de solicitare sub opțiunea funcției find() și apoi specificați o funcție de apel invers care va fi apelată la primirea răspunsului. Acest pas este executat cu succes dacă funcția menționată mai sus este fără erori și răspunsul conține un cod de stare HTTP 200. După aceea, corpul răspunsului este analizat și apoi returnat. Dacă răspunsul este analizat în loc să îl redirecționeze direct, răspunsul poate fi gestionat cu o eficiență optimă. În cazul oricăror erori, acestea sunt conectate la consolă și răspunsul -1 este returnat.

Executarea Programului

Acum, executați programul rulând comanda npm start în terminalul proiectului dumneavoastră. Dacă toate funcțiile funcționează fără probleme, apăsați opțiunea /despre punctul final web și vizualizați această ieșire pe un browser web – {„nume”: „microservicii”, „versiune”: „1.0.0”}

De asemenea, apăsați opțiunea /distance endpoint și transmiteți-i niște valori prin șirul de interogare; atunci se va produce rezultatul dorit.

Aici, distanța obiectului este exportată. Controlerul este capabil să reprezinte funcțiile și instanțe concrete ale apelurilor API externe după cum se dorește. Și, în sfârșit, pentru finalizarea procesului de execuție a microserviciilor, codul este revizuit pentru detectarea oricăror greșeli de scriere în cadrul comenzii.

Acesta este un exemplu de construire a unui microserviciu pentru a găsi distanța dintre două coduri poștale.

Integrați o bază de date în arhitectura dvs

Acum, aplicația dvs. Node.js este creată și datele trebuie să fie stocate într-o bază de date. Pentru aceasta, puteți utiliza un Data API sau o bază de date. Și, pentru o interacțiune perfectă cu bazele de date din aplicația Node.js, utilizați un driver JavaScript.

Cuvinte de încheiere

Sper că această postare v-a ajutat să culegeți informații utile despre construirea de microservicii JavaScript folosind cadrul Node.js și că ați înțeles clar procesul de construire a microserviciilor.

Aveți nevoie de ajutor tehnic pentru construirea unui microserviciu JavaScript eficient? Conectați-vă cu Biz4Solutions, o companie de dezvoltare de aplicații Node.js cu înaltă experiență. Serviciile noastre au fost recunoscute drept una dintre cele mai bune de către clientela noastră globală.

Pentru a afla mai multe despre celelalte tehnologii de bază ale noastre, consultați linkurile de mai jos:

Dezvoltarea aplicației React Native

Dezvoltare rapidă a aplicațiilor

Dezvoltare aplicație PHP