API: n on toimittava mahdollisimman nopeasti palvellakseen mahdollisesti suurta määrää asiakkaita. Käytä näitä vinkkejä virittääksesi sovellusliittymäsi maksimaaliseen nopeuteen.
Mikropalveluarkkitehtuurin nopea käyttöönotto on vahvistanut API: iden roolia modernin kehityksen ensisijaisena viestintävälineenä. API: t tarjoavat tehokkaan tiedonvaihdon asiakkaiden ja palvelinpuolen sovellusten välillä sekä eri taustajärjestelmien välillä.
Express.js tarjoaa tyylikkään ratkaisun RESTful API: iden rakentamiseen. Mutta on tärkeää priorisoida suorituskykymittaukset koko kehitystyön ajan.
Tämä takaa, että sovellusliittymäsi eivät ainoastaan toimi tehokkaasti, vaan myös optimaalisesti. Loppujen lopuksi hyvin toimiva verkkosovellus parantaa käyttökokemusta ja lisää menestymismahdollisuuksia.
Express.js REST -sovellusliittymien suorituskyvyn optimointi
Express.js käyttää Node.js: n asynkronista luonnetta ja tapahtumalähtöistä arkkitehtuuria saavuttaakseen poikkeuksellisen nopeuden ja suorituskyvyn.
Siitä huolimatta Express.js: n optimointi REST-sovellusliittymät voi tuottaa vielä suurempia etuja. Näitä ovat merkittävästi parannetut vasteajat, parannettu luotettavuus ja sovellustesi tehokkuus, mikä johtaa saumattomiin ja mukaansatempaaviin käyttökokemuksiin.
Priorisoimalla sovellusliittymiesi suorituskyvyn tasoittelet tietä koko ohjelmistosi menestykselle.
Tässä on joitain vinkkejä, joiden avulla voit parantaa REST-sovellusliittymiesi suorituskykyä.
1. Optimoi tietokantakyselyt
Tehokas tietojen hakeminen ja käsitteleminen tietokannasta voi vaikuttaa merkittävästi REST API: iden suorituskykyyn.
Tietokantakyselyitä optimoimalla voit lyhentää merkittävästi kyselyn suoritusaikaa ja vähentää resurssien kulutusta. Tämä parantaa lopulta Express.js-sovelluksesi suorituskykyä kokonaisuudessaan.
Tässä on joitain hyödyllisiä vinkkejä tietokantakyselyjen optimointiin.
- Käyttää tietokannan indeksit. Tunnista kyselyissä usein käytetyt sarakkeet ja luo niille sopivat indeksit. Tämän ansiosta tietokantamoottori voi nopeasti paikantaa ja hakea tarvittavat tiedot, mikä johtaa nopeampaan kyselyn suorittamiseen.
- Toteuta sivutus. Kun käsittelet suuria tietojoukkoja, käytä sivutusta. Sen sijaan, että noutaisit kaikki tiedot kerralla, rajoita kussakin kyselyssä palautettavien tietojen määrää.
- Vältä turhia kyselyjä. Analysoi koodisi, tunnista ja jätä pois kaikki tarpeettomat kyselyt. Kyselyjen muokkaaminen uudelleen vastaavasti voi johtaa merkittäviin suorituskyvyn parannuksiin.
2. Käytä välimuistia koko sovelluksessasi
Välimuisti on tekniikka, jota käytetään usein käytettyjen tietojen tallentamiseen välimuistiin, väliaikaiseen tallennusjärjestelmään. Yksinkertaisesti sanottuna, kun asiakas pyytää tietoja, palvelin tarkistaa ensin välimuistinsa sen sijaan, että tekisi kyselyjä suoraan tietokannasta.
Jos se löytää pyydetyt tiedot välimuistista, se palauttaa ne välittömästi, ohittaen jatkokäsittelyn tai varsinaisen tietokannan käytön. Tämä parantaa merkittävästi API: iden suorituskykyä lyhentämällä vasteaikoja ja minimoimalla sovelluksen kuormituksen erityisesti käsiteltäessä useita kyselyitä.
Tässä on yksinkertainen koodiesimerkki, joka havainnollistaa välimuistin toteuttamista.
konst express = vaatia('ilmaista');
konst NodeCache = vaatia("solmuvälimuisti");konst välimuisti = Uusi NodeCache();
konst sovellus = express();app.get('/api/data', (req, res) => {
konst cacheKey = 'data';
konst cachedData = cache.get (cacheKey);
jos (!cachedData) {
konst fetchedData = haeDataFromDatabase();
cache.set (cacheKey, fetchedData);
cachedData = fetchedData;
}res.json (cachedData);
});
toimintofetchDataFromDatabase() {
//... tiedonhakulogiikka menee tänne...
palata tiedot;
}
Yllä oleva koodi osoittaa, kuinka välimuisti toimii solmuvälimuistikirjastoa käyttämällä. Aluksi se tarkistaa, ovatko pyydetyt tiedot jo tallennettu välimuistiin. Jos tietoja ei ole, se laukaisee toiminnon tietojen hakemiseksi tietokannasta ja tallentaa sitten haetut tiedot välimuistiin. Lopuksi palauttaa pyydetyt tiedot asiakkaalle JSON-vastauksena.
3. Ota HTTP-pakkaus käyttöön
HTTP-pakkaus on tekniikka, jonka avulla voit pienentää asiakkaan ja palvelimen välillä siirrettävien tietojen kokoa. Se sisältää API-vastausten pakkaamisen palvelinpuolella ja niiden purkamisen asiakaspuolella.
Ottamalla HTTP-pakkauksen käyttöön vastaushyötykuormien kokoa voidaan pienentää merkittävästi, mikä johtaa nopeampiin vasteaikoihin.
Tässä on esimerkkikoodi, joka osoittaa, kuinka HTTP-pakkaus otetaan käyttöön käyttämällä puristus väliohjelmisto.
express = vaatia('ilmaista');
konst pakkaus = vaatia('puristus');konst sovellus = express();
app.use (pakkaus());
app.get('/api/data', (req, res) => {
// Käsittele API-logiikkaasi
});
Tämä koodinpätkä käyttää väliohjelmistoa API-vastausten pakkaamiseen ennen kuin se palauttaa ne asiakkaalle.
4. Toteuta rinnakkaiskäsittely Promise.all: n avulla
Rinnakkaiskäsittely käyttäen Lupaa kaikki menetelmä on tekniikka, jota käytetään parantamaan API: iden suorituskykyä suorittamalla useita asynkronisia tehtäviä samanaikaisesti.
Hyödyntämällä JavaScript-lupausten tehoa, Promise.all antaa sinun toteuttaa joukon lupauksia samanaikaisesti sen sijaan, että odotat jokaisen lupauksen toteutumista peräkkäin.
Tämä tekniikka on erityisen hyödyllinen, kun sinulla on itsenäisiä tehtäviä, joita voidaan suorittaa samanaikaisesti, kuten useiden toisiinsa liittyvien API-pyyntöjen tekeminen eri päätepisteisiin. Suorittamalla nämä tehtävät rinnakkain voit lyhentää huomattavasti kokonaissuoritusaikaa ja parantaa API: si reagointikykyä.
Tässä on yksinkertainen koodiesimerkki, joka havainnollistaa rinnakkaisen käsittelyn toteuttamista Promise.all: n avulla.
konst express = vaatia('ilmaista');
konst aksiot = vaatia("aksiot");konst sovellus = express();
app.get('/api/data', asynk (req, res) => {
yrittää {
konst request1 = axios.get(' https://api.example.com/endpoint1');
konst request2 = axios.get(' https://api.example.com/endpoint2');
konst request3 = axios.get(' https://api.example.com/endpoint3');konst [vastaus1, vastaus2, vastaus3] = odottaaLupaus.kaikki([
pyyntö1,
pyyntö2,
pyyntö 3
]);
// Käsittele vastaukset tarpeen mukaan
} ottaa kiinni (virhe) {
res.status(500).json({ virhe: 'virhe' });
}
});
Tässä esimerkissä koodi tekee API-pyynnöt kolmeen eri päätepisteeseen. Käyttämällä Promise.all-funktiota ja välittämällä joukon lupauksia koodi odottaa niiden kaikkien päättymistä ennen kuin palauttaa vastaukset taulukossa.
Kun olet saanut kaikki vastaukset, voit käsitellä niitä tarpeen mukaan. Sinun tulee kuitenkin olla varovainen tämän lähestymistavan kanssa ja välttää liiallista käyttöä, koska se voi ylikuormittaa palvelinta ja aiheuttaa API-vastausten pullonkauloja.
5. Käytä tietokantayhteyksien yhdistämistä
Tietokantayhteyksien yhdistäminen on menetelmä, jossa luodaan uudelleenkäytettävien tietokantayhteyksien pooli, jotta voidaan käsitellä useita asiakaspyyntöjä tehokkaasti.
Sen sijaan, että sovellus muodostaisi uuden yhteyden jokaiselle pyynnölle, se käyttää uudelleen olemassa olevia yhteyksiä pooli, mikä vähentää uusien yhteyksien luomiseen liittyviä kuluja, mikä johtaa nopeampaan ja tehokkaampaan kyselyyn teloitus.
Tässä on lyhyt koodiesimerkki, joka havainnollistaa tietokantayhteyksien yhdistämisen käyttöä Mongoose Express.js-sovelluksessa.
konst mangusti = vaatia('mungo');
konst { yhteys } = vaatia('mungo');konst yhteysasetukset = {
altaan koko: 10,
useNewUrlParser: totta,
käytä UnifiedTopologya: totta
};
mangoose.connect("mongodb://localhost/mydatabase", yhteysasetukset);
Tässä esimerkissä yhteysvarannon koko -ominaisuuden arvo on 10 – tämä määrittää poolin yhteyksien enimmäismäärän.
Asettamalla tämän määrityksen API voi käyttää yhteyksiä uudelleen, mikä parantaa API-suorituskykyä vähentämällä uusien yhteyksien luomista jokaiselle pyynnölle.
Sovellusliittymän suorituskyvyn priorisointi voittoa varten
Voit optimoida Express.js-sovellusliittymiesi suorituskyvyn useilla vaiheilla. API: t pelaavat a ratkaiseva rooli, joten on tärkeää, että keskityt heidän suoritukseensa, jotta voit taata kokonaismenestyksen ohjelmisto.