Erlang OTP: hajautettujen ja vikasietoisten järjestelmien ohjelmointi · Oppitunti

Solmujen välinen viestintä ja määritys

Opitte määrittämään ja yhdistämään useita Erlang-solmuja sekä ymmärtämään niiden taustalla olevan jakeluprotokollan ja suojausmekanismit.

Oppitunti 1/411 vaihetta

Solmujen välinen viestintä ja määritys on ilmainen Erlang OTP: hajautettujen ja vikasietoisten järjestelmien ohjelmointi-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Erlang OTP: hajautettujen ja vikasietoisten järjestelmien ohjelmointi-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Erlang OTP: hajautettujen ja vikasietoisten järjestelmien ohjelmointi-kurssilla on yhteensä 4 oppituntia.

Tervetuloa hajautettuun Erlangiin

Erlang on parhaimmillaan hajautettujen järjestelmien rakentamisessa! Sen avulla useat Erlangin virtuaalikoneet (VM:t), joita kutsutaan solmuiksi, voivat viestiä saumattomasti keskenään.

Tässä oppitunnissa opitte määrittämään nämä solmut ja yhdistämään ne toisiinsa. Tämä muodostaa perustan vikasietoisille ja skaalautuville sovelluksille.

Erlang-solmujen nimien ymmärtäminen

Jokainen Erlang-solmu tarvitsee yksilöllisen nimen tunnistamista varten hajautetussa järjestelmässä. Nimiä on kahta tyyppiä:

  • Lyhyet nimet (esim. mynode): Käytetään samalla paikallisella koneella tai saman verkon segmentissä oleville solmuille. Käynnistetään valitsimella -sname.
  • Pitkät nimet (esim. node1@example.com): Välttämättömiä eri isäntäkoneille ja verkkoihin hajautetuille solmuille. Edellyttävät täydellistä toimialuenimeä (FQDN), ja ne käynnistetään valitsimella -name.

Käytämme paikallisissa esimerkeissä pääasiassa lyhyitä nimiä.

Erlang-eväste: jaettu salaisuus

Jotta kaksi Erlang-solmua voi viestiä keskenään, niillä on oltava yhteinen salainen avain, jota kutsutaan nimellä Erlang-eväste. Voitte ajatella sitä salasanana solmujen väliseen todentamiseen.

  • Jos solmuilla on eri evästeet, ne eivät voi muodostaa yhteyttä.
  • Eväste on merkkijono (esim. mysecretcookie).
  • Se on tärkeä tietoturvan kannalta: pitäkää evästeet salaisina ja luokaa vahvoja evästeitä!

Ensimmäisen solmun käynnistäminen

Käynnistetään Erlang-solmu lyhyellä nimellä ja evästeellä. Avatkaa pääte ja suorittakaa seuraava komento:

erl -sname alpha -setcookie myappsecret

Kun Erlang-kuori on latautunut, voitte tarkistaa solmun nimen ja evästeen:

  • node(). (näyttää solmun täydellisen nimen)
  • erlang:get_cookie(). (näyttää evästeen)

EPMD: porttien yhdistämispalvelu

Kun Erlang-solmu käynnistyy, se rekisteröityy paikalliseen prosessiin nimeltä EPMD (Erlang Port Mapper Daemon).

EPMD:n tehtävänä on seurata, mitkä Erlang-solmut ovat käynnissä paikallisella isäntäkoneella ja missä TCP-porteissa ne kuuntelevat. Kun yksi solmu haluaa muodostaa yhteyden toiseen samalla koneella olevaan solmuun, se pyytää EPMD:ltä kohdesolmun porttinumeron.

Voitte tarkastella rekisteröityjä solmuja komennolla epmd -names erillisessä päätteessä.

Kahden paikallisen solmun yhdistäminen

Käynnistäkää nyt toinen solmu toisessa päätteessä. Varmistakaa, että käytätte samaa evästettä:

erl -sname beta -setcookie myappsecret

Kokeilkaa pingata beta-solmua alpha-solmun kuoresta:

net_adm:ping(beta@~s).

Korvatkaa ~s koneenne isäntänimellä (esim. net_adm:ping(beta@localhost).). Jos tuloksena on pong, solmut on yhdistetty! Yhdistetyt solmut voi tarkistaa myös komennolla nodes().

Solmun identiteetin esittely

Tämä yksinkertainen Erlang-moduuli auttaa tunnistamaan nykyisen solmun. Se on kokonainen ohjelma, joka ilmoittaa oman solmunimensä.

Tallentakaa tämä tiedostoon node_id.erl, kääntäkää se Erlang-kuoressa (c(node_id).) ja kutsukaa sitten node_id:print_name(). nähdäksenne tulosteen.

-module(node_id).
-export([print_name/0]).

print_name() ->
    io:format("Current node name: ~p~n", [node()]).

Pitkät solmunimet etäisännille

Kun yhdistätte eri fyysisillä koneilla tai eri verkoissa olevia solmuja, teidän on käytettävä pitkiä solmunimiä ja -name-valitsinta. Tällöin on käytettävä solmun täydellistä toimialuenimeä (FQDN) tai IP-osoitetta.

Esimerkki: erl -name node1@server.example.com -setcookie myappsecret

pitkien nimien käyttö varmistaa, että solmut voidaan tunnistaa yksiselitteisesti ja niihin voidaan muodostaa yhteys laajemman verkon yli.

Tietoturvan perusnäkökohdat

Vaikka Erlang-eväste tarjoaa perustason todennuksen, huomioikaa seuraavat seikat:

  • Vahvat evästeet: Käyttäkää tuotantoympäristöissä pitkiä, satunnaisia merkkijonoja.
  • Palomuurisäännöt: Määrittäkää palomuurit sallimaan EPMD:n (portti 4369) ja dynaamisten Erlang-solmuporttien välinen liikenne vain luotettujen isäntäkoneiden välillä.
  • TLS: Käyttäkää arkaluonteisille tiedoille tai epäluotettavissa verkoissa Transport Layer Securityä (TLS) salattuun viestintään. Tätä käsitellään myöhemmässä oppitunnissa.

Solmun määrityksen pikatarkistus

Olette oppineet Erlang-solmuista, nimistä, evästeistä ja EPMD:stä. Testataan ymmärrystänne!

Kertaus: solmujen välisen viestinnän perusteet

Olette ottaneet ensimmäisen askeleen hajautetun Erlangin parissa! Käsittelimme seuraavat aiheet:

  • Erlang-solmut: Erilliset Erlangin virtuaalikoneet, jotka voivat viestiä keskenään.
  • Solmujen nimet: -sname paikallisiin ja -name etäsolmuihin (FQDN).
  • Erlang-eväste: Jaettu salaisuus solmujen todentamista varten.
  • EPMD: Paikallisten solmujen etsinnästä vastaava daemon.
  • Solmujen yhdistäminen: Viestintä muodostetaan komennolla net_adm:ping/1.

Seuraavaksi tutkimme, miten nämä yhdistetyt solmut voivat todella viestiä keskenään!

Aloita maksutta

Opi Erlang 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 ”Solmujen välinen viestintä ja määritys” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Erlang OTP: hajautettujen ja vikasietoisten järjestelmien ohjelmointi-oppimispolun 3 oppituntia, myös oppitunnin “Solmujen välinen viestintä ja määritys”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Erlang OTP: hajautettujen ja vikasietoisten järjestelmien ohjelmointi-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Solmujen välinen viestintä ja määritys”?

Opitte määrittämään ja yhdistämään useita Erlang-solmuja sekä ymmärtämään niiden taustalla olevan jakeluprotokollan ja suojausmekanismit. Harjoittelet Erlang OTP: hajautettujen ja vikasietoisten järjestelmien ohjelmointi-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Erlang OTP: hajautettujen ja vikasietoisten järjestelmien ohjelmointi-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Erlang OTP: hajautettujen ja vikasietoisten järjestelmien ohjelmointi-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Solmujen välinen viestintä ja määritys”-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ä Erlang OTP: hajautettujen ja vikasietoisten järjestelmien ohjelmointi-oppitunnilla?

Kyllä. Jokainen Erlang OTP: hajautettujen ja vikasietoisten järjestelmien ohjelmointi-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. Solmujen välinen viestintä ja määritys
  2. Etäproseduurikutsut (RPC)
  3. Globaalien prosessien rekisteröinti
  4. Hajautuksen suojaus ja cookiet
← Takaisin: Erlang OTP: hajautettujen ja vikasietoisten järjestelmien ohjelmointi