Ohjelmointi

Kuinka pääset alkuun Akka.Net-palvelun kanssa

Akka.Net on avoimen lähdekoodin hajautettu tietokonekehys, jonka on rakentanut Petabridge. Akka.Net antaa sinun luoda skaalautuvia, joustavia, samanaikaisia, tapahtumapohjaisia ​​sovelluksia näyttelijämallin avulla. Tässä artikkelissa esitän Akka.Net-sivuston tärkeät käsitteet, keskustelen siitä, miksi se on hyödyllistä, ja autan sinua aloittamaan työskentelyn Akka.Netin kanssa C #: ssä.

Näyttelijämalli on ohjelmointiparadigma, joka perustuu asynkroniseen, viestiohjattuun arkkitehtuuriin. Tässä paradigmassa toteutuksen perusyksikkö on näyttelijä. Tämä ohjelmointiparadigma sopii rakentamaan laajamittaisia, monimutkaisia, hajautettuja sovelluksia, jotka ovat erittäin luotettavia, mutta joilla voi olla arvaamaton viive.

Objektikeskeinen ohjelmointitapa käyttää luokkia ja objekteja ongelmalohkon mallintamiseen. Kun työskentelet Akka.Netissä, mallinnat ongelmasi näyttelijöiden ja viestien avulla. Akka.Netissä näyttelijä on esine, jolla on tiettyä käyttäytymistä. Vaikka näyttelijöillä on sisäinen tila, heillä ei ole yhteistä muuttuvaa tilaa. Hakemuksessasi voi olla useita samanaikaisia ​​toimijoita, joista jokainen käsittelee toimintoja itsenäisesti. Näyttelijät tunnistetaan osoitteiden perusteella. Ne ovat peräisin ActorBase-luokalta ja voivat puolestaan ​​luoda lapsinäyttelijöitä.

Näyttelijät kommunikoivat keskenään välittämällä viestejä asynkronisesti. Pohjimmiltaan näyttelijä vastaanottaa viestin ja sitten reagoi siihen joko käsittelemällä sen tai välittämällä toisen viestin toiselle näyttelijälle työn suorittamiseksi. Huomaa, että Akka.Netissä olevat viestit käsitellään peräkkäin, yksi kerrallaan, siinä järjestyksessä kuin ne saapuvat. Koska toimijat voivat toimia paikallisesti tai etäpalvelimella, tarvitaan yhteinen viestinvaihtomuoto. Akka.Net-viestit ovat muuttumattomia. Ne voivat olla merkkijonon, kokonaisluvun tai jopa mukautetun luokan esiintymiä.

Katsotaanpa, kuinka voimme rakentaa yksinkertaisen näyttelijäluokan ja työskennellä viestien kanssa. Ensinnäkin, sinun on asennettava Akka.Net NuGetistä. Voit tehdä tämän kirjoittamalla seuraavan komennon NuGet-komentokehotteeseen.

Asennuspaketti Akka

Vaihtoehtoisesti voit asentaa Akka.Net-sovelluksen Visual Studio IDE: n NuGet-paketinhallintaikkunasta.

Huomaa, että Akka.Netissä mukautettujen näyttelijäluokkien tulisi olla peräisin Kirjoittamaton näyttelijä luokka, joka laajentaa NäyttelijäBase luokka Akka.Net-kehyksestä. Näin mukautetun näyttelijäluokan rakenteen tulisi näyttää Akka.Netissä.

public class ThisIsACustomActor: UntypedActor

    {

suojattu ohitus void PreStart ()

        {

// Voit kirjoittaa minkä tahansa alustuskoodin tähän

        }

suojattu ohitus void PreRestart (Poikkeuksen syy, objektiviesti)

        {

        }

suojattu ohitus void OnReceive (objektiviesti)

        {         

// Tätä menetelmää käytetään viestien käsittelyyn

        }

suojattu ohittaa mitätön PostStop ()

        {

// Tässä voit kirjoittaa puhdistuskoodin.

// Tätä menetelmää kutsutaan, kun näyttelijä on pysähtynyt eikä saa enää viestejä

        }

suojattu ohitus tyhjä PostRestart (poikkeuksen syy)

        {

        }

    }

Sinun ei tarvitse ohittaa kaikkia näitä menetelmiä. Yksinkertaisuuden vuoksi ohitamme vain Vastaanota tapa rakentaa mukautettu näyttelijäluokka minimaalisella toiminnallisuudella. Seuraava koodinpätkä luo mukautetun näyttelijäluokan nimeltä BasicActor.

public class BasicActor: UntypedActor

    {

suojattu ohitus void OnReceive (objektiviesti)

        {

if (viesti on merkkijono)

            {

var msg = viesti merkkijonona;

Console.WriteLine (viesti);

            }

        }

    }

Voit luoda näyttelijän esiintymän hyödyntämällä Akka.Actor.ActorSystem luokassa. An ActorSystem voidaan määritellä hierarkkiseksi kokoelmaksi toimijoista, joilla on identtinen kokoonpano. Seuraava koodinpätkä osoittaa, kuinka voit luoda ilmentymämme BasicActor luokassa ja välittää sitten viestit sille.

staattinen void Main (merkkijono [] args)

        {

var actorSystem = ActorSystem.Create ("ActorSystem");

var basicActor = toimijaSysteemi.ActorOf ();

basicActor.Tell (“Hei maailma!”);

Console.ReadLine ();

        }

Tässä on huomattava, että kun lähetät viestin näyttelijälle, viesti toimitetaan postilaatikkoon, joka on lajiteltu FIFO-järjestyksessä (ensin sisään, ensin ulos). Postilaatikko välittää viestin edelleen Vastaanota menetelmää vain, kun toimija on käytettävissä sen käsittelyyn.

Tässä on täydellinen koodiluettelo viitteellesi.

Akka.Actorin avulla;

käyttämällä järjestelmää;

nimitila AkkaDemo

{

luokan ohjelma

    {

staattinen void Main (merkkijono [] args)

        {

var actorSystem = ActorSystem.Create ("ActorSystem");

var basicActor = toimijaSysteemi.ActorOf ();

basicActor.Tell (“Hei maailma!”);

Console.ReadLine ();

        }

    }

public class BasicActor: UntypedActor

    {

suojattu ohitus void OnReceive (objektiviesti)

        {

if (viesti on merkkijono)

            {

var msg = viesti merkkijonona;

Console.WriteLine (viesti);

            }

        }

    }

}

Kun suoritat yllä olevan ohjelman, viesti "Hei maailma!" näkyy konsoli-ikkunassa.

Akka.Net on loistava valinta, kun tarvitset samanaikaisuutta ja hajautettua laskentaa, koska sen avulla voit työskennellä korkean tason abstraktioiden kanssa säikeiden ja rinnakkaisrutiinien sijaan. Se on rakenteeltaan joustava ja tukee mukautuvaa kuormituksen tasapainottamista, osiointia, reititystä ja kokoonpanoon perustuvaa etäohjausta.

Palaan Akka.Netiin tulevissa viesteissä täällä. Siihen asti voit oppia lisää Akka.Netistä ja näyttelijämallista tutustumalla Petabridgen Akka.Net-käynnistyskampanjassa olevaan sisältöön.

$config[zx-auto] not found$config[zx-overlay] not found