Verkostosovellusten luomiskehyksen julkaisu ErgoFramework 2.2

ErgoFramework 2.2:n seuraava julkaisu toteutettiin, ja siinä toteutettiin koko Erlang-verkkopino ja sen OTP-kirjasto Go-kielellä. Kehys tarjoaa kehittäjälle Erlangin maailmasta joustavia työkaluja Go-kielellä hajautetun ratkaisun luomiseen käyttämällä valmiita yleiskäyttöisiä suunnittelumalleja gen.Application, gen.Supervisor ja gen.Server sekä erikoistuneita - yl. Stage (hajautettu pub/sub), gen. Saga (hajautetut tapahtumat, SAGA-suunnittelumallin toteutus) ja gen.Raft (Raft-protokollan toteutus).

Lisäksi kehys tarjoaa välityspalvelintoiminnallisuuden päästä päähän -salauksella, joka ei ole saatavilla Erlang/OTP:ssä ja Elixirissä. Koska Go-kielellä ei ole suoraa analogia Erlang-prosessille, kehys käyttää gorutiineja pohjana gen.Serverille, jossa on "recover"-kääre, joka käsittelee poikkeustilanteita. Projektikoodia jaetaan MIT-lisenssillä.

ErgoFrameworkin verkkopino toteuttaa täysin Erlang-protokollan DIST-määrityksen. Tämä tarkoittaa, että ErgoFrameworkin pohjalta kirjoitetut sovellukset toimivat natiivisti kaikkien Erlang- tai Elixir-ohjelmointikielillä kirjoitettujen sovellusten kanssa (esimerkki vuorovaikutuksesta Erlang-solmun kanssa). On myös syytä huomata, että gen.Stage-suunnittelumalli on toteutettu Elixir GenStage -spesifikaatioiden mukaisesti ja on sen kanssa täysin yhteensopiva (toteutusesimerkki).

Uudessa julkaisussa:

  • Uusia malleja lisätty
    • gen.Web on Web API Gateway (tunnetaan myös nimellä Backend For Frontend) suunnittelumalli. Esimerkki.
    • gen.TCP on malli, jonka avulla voit toteuttaa joukon TCP-yhteyden hyväksyjiä pienellä vaivalla koodin kirjoittamisessa. Esimerkki.
    • gen.UDP - samanlainen kuin gen.TCP-malli, vain UDP-protokollalle. Esimerkki.
  • Uutta Events-toimintoa on ehdotettu toteuttamalla yksinkertainen tapahtumaväylä solmun sisällä, jonka avulla voit luoda mekanismeja tapahtumien vaihtamiseksi (pub/sub) paikallisten prosessien välillä. Esimerkki.
  • Lisätty tuki tyyppien rekisteröinnille, joka mahdollistaa viestien automaattisen serialisoinnin/deserialisoinnin alkuperäiseen Golang-tietotyyppiin. Tämä tarkoittaa, että sinun ei enää tarvitse käyttää etf.TermIntoStructia jokaiselle vastaanotetulle viestille. Rekisteröidyt tyypit muunnetaan määritettyyn tyyppiin automaattisesti, mikä nopeuttaa merkittävästi hajautettujen solmujen välistä sanomanvaihtoa.

Lähde: opennet.ru

Lisää kommentti