Mikropalveluiden viestintämallit (Saga, Circuit Breaker) · Oppitunti

Puoliavoimen tilan tarkoitus

Ymmärtäkää puoliavoimen tilan merkitys: sen avulla rajallinen määrä pyyntöjä voi testata, onko vikaantunut palvelu palautunut.

Oppitunti 3/412 vaihetta

Puoliavoimen tilan tarkoitus on ilmainen Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-oppitunti CoddyKitissä. Tämä on oppitunti 3/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 Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-kurssilla on yhteensä 4 oppituntia.

Miksi HALF-OPEN-tila?

Kuvitellaan, että käyttämänne palvelu lakkaa yllättäen toimimasta. Piirin katkaisija avautuu nopeasti ja estää uusia pyyntöjä päätymästä vikaantuneelle palvelulle.

Mutta mistä tiedätte, milloin palvelu on palautunut ja sitä on jälleen turvallista kutsua? Piiriä ei voida pitää avoinna ikuisesti!

Kertaus: OPEN-tila

Kun piirin katkaisija on Open-tilassa, se estää aktiivisesti kaikki vikaantuneelle palvelulle lähetettävät pyynnöt. Sen sijaan se epäonnistuu nopeasti ja palauttaa usein virheen tai varavastauksen välittömästi.

Tämä suojaa vikaantunutta palvelua ylikuormitukselta ja estää sovellusta odottamasta vastausta loputtomasti.

Palautumisen testaamisen tarve

Kun palvelu on ollut jonkin aikaa poissa käytöstä (ja piiri on avoinna), tarvitsemme tavan tarkistaa, onko se taas verkossa ilman riskiä siitä, että lähetämme suuren määrän pyyntöjä ja kaadamme palvelun uudelleen.

Tässä kohtaa Half-Open-tila tulee käyttöön. Se on varovainen testausvaihe.

Siirtyminen HALF-OPEN-tilaan

Piirin katkaisija ei pysy avoinna loputtomasti. Määritetyn nollauksen aikakatkaisun jälkeen (esimerkiksi 5 sekuntia tai 1 minuutti) se siirtyy automaattisesti Open-tilasta Half-Open-tilaan.

Tämä aikakatkaisu antaa vikaantuneelle palvelulle mahdollisuuden palautua ennen kuin yritämme lähettää pyyntöjä uudelleen.

Rajoitetut testipyynnöt

Half-Open-tilassa piirin katkaisija sallii vain rajoitetun määrän pyyntöjä kulkea mahdollisesti palautuneelle palvelulle.

  • Määrä on yleensä pieni ja määritettävissä (esimerkiksi 1–5 pyyntöä).
  • Näillä testipyynnöillä arvioidaan palvelun toimintakykyä.

HALF-OPEN-logiikan simulointi

Tämä yksinkertainen koodikatkelma näyttää, miten Half-Open-tila voi sallia rajoitetun määrän pyyntöjä palvelun palautumisen testaamiseksi:

public class HalfOpenTest {
  public static void main(String[] args) {
    boolean isHalfOpen = true; // Assume we are in Half-Open state
    int allowedTestRequests = 2;
    int currentTestRequests = 0;

    System.out.println("Circuit is in HALF-OPEN state.");

    while (isHalfOpen && currentTestRequests < allowedTestRequests) {
      currentTestRequests++;
      System.out.println("Attempt " + currentTestRequests + ": Sending a test request...");
      // In a real CB, the service call would happen here.
      // Its success/failure determines the next state.
    }

    if (currentTestRequests >= allowedTestRequests) {
      System.out.println("Reached max test requests for this cycle.");
    }
  }
}

Onnistuminen: takaisin CLOSED-tilaan

Jos kaikki (tai määrityksestä riippuen enemmistö) Half-Open-tilassa lähetetyistä testipyynnöistä onnistuu, piirin katkaisija olettaa palvelun palautuneen.

Sen jälkeen se siirtyy takaisin Closed-tilaan, jolloin kaikki seuraavat pyynnöt pääsevät normaalisti läpi.

Epäonnistuminen: takaisin OPEN-tilaan

Jos Half-Open-tilassa lähetetyt testipyynnöt epäonnistuvat (esimerkiksi aiheuttavat poikkeuksen tai aikakatkaisun), palvelu ei ole vielä toimintakunnossa.

Piirin katkaisija siirtyy heti takaisin Open-tilaan ja käynnistää nollauksen aikakatkaisun uudelleen, jotta palvelulla on enemmän aikaa palautua.

HALF-OPEN-tilan hyödyt

Half-Open-tila on tärkeä seuraavista syistä:

  • Hallitun palautumisen mahdollistaminen: Palvelut voivat palautua hallitusti ilman äkillisen pyyntöryöpyn aiheuttamaa ylikuormitusta.
  • Ylikuormituksen estäminen: Osittain palautunutta tai edelleen vikaantunutta palvelua ei kuormiteta jatkuvilla pyynnöillä.
  • Oikea-aikainen uudelleenyhdistäminen: Sovellus voi yhdistää uudelleen toimintakunnossa olevaan palveluun mahdollisimman pian.

Toimintakulun hahmottaminen

Ajattele piirin katkaisijan tiloja kiertona:

  • Closed: Kaikki toimii.
  • Open: Palvelu on vikaantunut ja pyynnöt estetään.
  • Half-Open: Aikakatkaisun jälkeen palvelua testataan varovasti.
  • Jos testit onnistuvat, siirrytään takaisin Closed-tilaan.
  • Jos testit epäonnistuvat, siirrytään takaisin Open-tilaan (ja aikakatkaisu käynnistetään uudelleen).

HALF-OPEN-tilan tarkistus

Olette oppineet Half-Open-tilasta. Testataan nyt ymmärrystänne!

Oppitunnin yhteenveto

Half-Open-tila on tärkeä osa piirin katkaisijan suunnittelumallia, sillä se toimii vikaantuneen palvelun ja sen mahdollisen palautumisen välisenä siltana.

Se mahdollistaa palvelun toimintakyvyn hallitun ja varovaisen uudelleenarvioinnin. Näin sovellus voi jatkaa normaalia toimintaansa nopeasti, kun palvelu on jälleen käytettävissä, aiheuttamatta lisää epävakautta.

Aloita maksutta

Opi Mikropalveluiden viestintämallit (Saga, Circuit Breaker) 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 ”Puoliavoimen tilan tarkoitus” ilmainen?

Kyllä – oppitunnin ”Puoliavoimen tilan tarkoitus” 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 Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-kurssin, päivitä CoddyKit PROhon. Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Puoliavoimen tilan tarkoitus”?

Ymmärtäkää puoliavoimen tilan merkitys: sen avulla rajallinen määrä pyyntöjä voi testata, onko vikaantunut palvelu palautunut. Harjoittelet Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Puoliavoimen tilan tarkoitus”-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ä Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-oppitunnilla?

Kyllä. Jokainen Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-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. Piirin katkaisijan tilojen ymmärtäminen
  2. Määritykset ja kynnysarvot
  3. Puoliavoimen tilan tarkoitus
  4. Circuit breakereiden valvonta ja säätäminen
← Takaisin: Mikropalveluiden viestintämallit (Saga, Circuit Breaker)