Järjestelmäsuunnittelun perusteet backend-kehittäjille · Oppitunti

Tilattomat ja tilalliset Servicet

Ymmärtäkää tilattomien ja tilallisten Servicejen erot sekä niiden vaikutukset skaalautuvuuteen ja vikasietoisuuteen.

Oppitunti 2/411 vaihetta

Tilattomat ja tilalliset Servicet on ilmainen Järjestelmäsuunnittelun perusteet backend-kehittäjille-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Järjestelmäsuunnittelun perusteet backend-kehittäjille-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Järjestelmäsuunnittelun perusteet backend-kehittäjille-kurssilla on yhteensä 4 oppituntia.

Tilaton ja tilallinen: johdanto

Järjestelmiä suunniteltaessa keskeinen päätös on se, miten palvelut käsittelevät tilaa eli tietoa aiemmista vuorovaikutustilanteista.

Palvelut voivat joko muistaa aiemmat asiakkaan pyynnöt (tilallinen) tai käsitellä jokaisen pyynnön täysin uutena (tilaton).

Tämän eron ymmärtäminen on ratkaisevan tärkeää, kun rakennetaan järjestelmiä, jotka voivat kasvaa ja palautua ongelmista.

Mikä on tilaton palvelu?

Tilaton palvelu ei tallenna tietoja aiemmista asiakkaan pyynnöistä tai istunnoista. Jokainen pyyntö käsitellään itsenäisesti.

  • Jokainen pyyntö sisältää kaikki tiedot, joita palvelin tarvitsee sen käsittelemiseen.
  • Palvelin ei hyödynnä aiemmista vuorovaikutustilanteista tallennettua tilaa.

Ajattele sitä pankkiautomaattina: asetat kortin laitteeseen, suoritat tapahtuman, eikä laite "muista" sinua seuraavalla käyntikerralla.

Tilattomien palvelujen edut

Tilattomat palvelut tarjoavat merkittäviä etuja järjestelmän skaalautuvuuden ja vikasietoisuuden kannalta:

  • Helppo skaalaus: Voit lisätä tai poistaa palvelimia vaivattomasti ilman huolta käyttäjäkohtaisien tietojen menettämisestä.
  • Hyvä vikasietoisuus: Jos yksi palvelin vikaantuu, toinen voi käsitellä seuraavan pyynnön välittömästi, koska kaatuneeseen palvelimeen ei ole sidottu ainutlaatuista tilaa.
  • Yksinkertainen kuormantasaus: Mikä tahansa palvelin voi käsitellä minkä tahansa pyynnön, mikä helpottaa liikenteen jakamista.

Esimerkki tilattomasta koodista

Tässä on yksinkertainen Java-funktio. Jokainen addNumbers-kutsu on itsenäinen; funktio ei muista aiempia summia tai käyttäjätietoja.

Kokeile suorittaa tämä esimerkki:

public class Calculator {
  public int addNumbers(int a, int b) {
    // This method performs an operation
    // without storing any state from previous calls.
    return a + b;
  }

  public static void main(String[] args) {
    Calculator calc = new Calculator();
    System.out.println("Sum of 5 and 3: " + calc.addNumbers(5, 3));
    System.out.println("Sum of 10 and 2: " + calc.addNumbers(10, 2));
  }
}

Mikä on tilallinen palvelu?

Tilallinen palvelu muistaa aiemmat vuorovaikutustilanteet ja tallentaa tilan pyyntöjen välillä.

Tila voi sisältää esimerkiksi käyttäjän istuntotietoja, ostoskorin tuotteita tai käynnissä olevan tietokantatapahtuman.

Palvelin tarvitsee nämä tallennetut tiedot käsitelläkseen saman asiakkaan myöhemmät pyynnöt oikein.

Tilallisten palvelujen haasteet

Vaikka tilalliset palvelut ovat joissakin tapauksissa välttämättömiä, ne tuovat mukanaan monimutkaisuutta:

  • Vaikeampi skaalata: Kun uusia palvelimia lisätään, on varmistettava, että oikea tila on oikean palvelimen saatavilla. Tämä edellyttää usein "tahmeita istuntoja" tai jaettua tallennustilaa.
  • Heikompi vikasietoisuus: Jos käyttäjän tilan sisältävä palvelin kaatuu, tila saattaa kadota ja keskeyttää käyttäjän toiminnan.
  • Monimutkainen hallinta: Tilan synkronointi, säilyvyys ja replikointi useiden instanssien välillä vaativat huolellista suunnittelua.

Milloin tilaa tarvitaan?

Haasteista huolimatta tilalliset palvelut ovat joskus väistämättömiä tai yksinkertaistavat suunnittelua:

  • Tietokannat: Ne ovat pohjimmiltaan tilallisia ja tallentavat sovelluksen pysyviä tietoja.
  • Käyttäjäistunnot: Käyttäjien kirjautuneena pitäminen ja heidän toimintansa seuraaminen useiden pyyntöjen ajan.
  • Reaaliaikaiset pelit: Kaikkien yhdistettyjen pelaajien nykyisen pelitilan ylläpitäminen.

Usein olennaista on hallita tilaa tehokkaasti siirtämällä se palvelun ulkopuolelle.

Esimerkki: käyttäjäistuntojen hallinta

Ajatellaan käyttäjää, joka kirjautuu verkkokauppaan. Palvelimen on muistettava, kuka käyttäjä on, jotta se voi näyttää tämän ostoskorin tai profiilin.

Tämä "istuntotila" voidaan tallentaa suoraan sovelluspalvelimelle, jolloin palvelu on tilallinen, tai skaalautuvissa järjestelmissä yleisemmin ulkoiseen ja jaettuun tilavarastoon, kuten Redis-järjestelmään tai tietokantaan.

Tilan siirtäminen palvelun ulkopuolelle mahdollistaa sovelluspalvelinten pitämisen tilattomina ja parantaa skaalautuvuutta.

Tilaton ja tilallinen: yhteenveto

  • Tilaton: Ei muista aiempia pyyntöjä. Jokainen pyyntö on täydellinen ja itsenäinen. Erittäin skaalautuva ja vikasietoinen.
  • Tilallinen: Muistaa aiemmat vuorovaikutustilanteet. Perustuu tallennettuun kontekstiin. Vaikeampi skaalata horisontaalisesti ja vähemmän vikasietoinen yksittäisten palvelinten vikaantuessa ilman monimutkaista tilanhallintaa.

Valinta vaikuttaa siihen, miten suunnittelet skaalautuvuuden, luotettavuuden ja tietojen säilyvyyden.

Pikatesti: skaalaus

Suunnittelet uutta mikropalvelua, jonka on käsiteltävä valtava ja vaihteleva määrä pyyntöjä. Se suorittaa itsenäisiä laskutoimituksia eikä tarvitse tietoja aiemmista pyynnöistä.

Minkä suunnitteluperiaatteen asettaisit tämän palvelun etusijalle, jotta sen skaalautuvuus ja vikasietoisuus olisivat mahdollisimman hyvät?

Kertaus: tilaton ja tilallinen

Tässä oppitunnissa tarkastelimme tilattomien ja tilallisten palvelujen keskeistä eroa:

  • Tilattomat palvelut käsittelevät jokaisen pyynnön itsenäisesti, mikä tarjoaa erinomaisen skaalautuvuuden ja vikasietoisuuden.
  • Tilalliset palvelut säilyttävät tietoja pyyntöjen välillä. Tämä voi olla tarpeen, mutta tuo mukanaan skaalauksen ja hallinnan haasteita.

Usein tila siirretään ulkoisiin, tarkoitukseen varattuihin tilallisiin varastoihin, kuten tietokantoihin tai välimuisteihin, jotta itse sovelluspalvelimet pysyvät tilattomina ja molempien lähestymistapojen parhaat puolet voidaan yhdistää.

Aloita maksutta

Opi Järjestelmäsuunnittelun perusteet backend-kehittäjille tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Tilattomat ja tilalliset Servicet” ilmainen?

Kyllä – oppitunnin ”Tilattomat ja tilalliset Servicet” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Järjestelmäsuunnittelun perusteet backend-kehittäjille-kurssin, päivitä CoddyKit PROhon. Järjestelmäsuunnittelun perusteet backend-kehittäjille-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Tilattomat ja tilalliset Servicet”?

Ymmärtäkää tilattomien ja tilallisten Servicejen erot sekä niiden vaikutukset skaalautuvuuteen ja vikasietoisuuteen. Harjoittelet Järjestelmäsuunnittelun perusteet backend-kehittäjille-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Järjestelmäsuunnittelun perusteet backend-kehittäjille-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Järjestelmäsuunnittelun perusteet backend-kehittäjille-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Tilattomat ja tilalliset Servicet”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Järjestelmäsuunnittelun perusteet backend-kehittäjille-oppitunnilla?

Kyllä. Jokainen Järjestelmäsuunnittelun perusteet backend-kehittäjille-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Vertikaalinen ja horisontaalinen skaalaus
  2. Tilattomat ja tilalliset Servicet
  3. Hajautettujen järjestelmien perusteet
  4. Kuormantasausstrategiat
← Takaisin: Järjestelmäsuunnittelun perusteet backend-kehittäjille