Release van het raamwerk voor het maken van netwerkapplicaties ErgoFramework 2.2

De volgende release van ErgoFramework 2.2 vond plaats, waarbij de volledige Erlang-netwerkstack en de bijbehorende OTP-bibliotheek in de Go-taal werden geïmplementeerd. Het raamwerk biedt de ontwikkelaar flexibele tools uit de wereld van Erlang voor het creëren van gedistribueerde oplossingen in de Go-taal met behulp van kant-en-klare algemene ontwerppatronen gen.Application, gen.Supervisor en gen.Server, evenals gespecialiseerde - gen. Stage (gedistribueerde pub/sub), generaal Saga (gedistribueerde transacties, een implementatie van het SAGA-ontwerppatroon) en generaal Raft (een implementatie van het Raft-protocol).

Bovendien biedt het raamwerk proxyfunctionaliteit met end-to-end-encryptie, wat niet beschikbaar is in Erlang/OTP en Elixir. Omdat de Go-taal geen directe analogie heeft met het Erlang-proces, gebruikt het raamwerk goroutines als basis voor gen.Server met een “recover”-wrapper om uitzonderingssituaties af te handelen. De projectcode wordt gedistribueerd onder de MIT-licentie.

De netwerkstack in ErgoFramework implementeert de DIST-specificatie van het Erlang-protocol volledig. Dit betekent dat applicaties die zijn geschreven op basis van ErgoFramework native werken met alle applicaties die zijn geschreven in de programmeertalen Erlang of Elixir (een voorbeeld van interactie met een Erlang-node). Het is ook vermeldenswaard dat het gen.Stage-ontwerppatroon is geïmplementeerd volgens de Elixir GenStage-specificatie en er volledig compatibel mee is (implementatievoorbeeld).

In de nieuwe uitgave:

  • Nieuwe sjablonen toegevoegd
    • gen.Web is een Web API Gateway-ontwerppatroon (ook bekend als Backend For Frontend). Voorbeeld.
    • gen.TCP is een sjabloon waarmee u een groep TCP-verbindingsacceptoren kunt implementeren met minimale inspanning bij het schrijven van code. Voorbeeld.
    • gen.UDP - vergelijkbaar met de gen.TCP-sjabloon, alleen voor het UDP-protocol. Voorbeeld.
  • Er is een nieuwe evenementenfunctionaliteit voorgesteld met de implementatie van een eenvoudige gebeurtenisbus binnen een knooppunt, waarmee u mechanismen kunt creëren voor het uitwisselen van gebeurtenissen (pub/sub) tussen lokale processen. Voorbeeld.
  • Ondersteuning toegevoegd voor typeregistratie, waardoor automatische serialisatie/deserialisatie van berichten naar een native Golang-gegevenstype mogelijk is. Dit betekent dat u etf.TermIntoStruct niet langer voor elk ontvangen bericht hoeft te gebruiken. Geregistreerde typen worden automatisch getransformeerd naar het opgegeven type, waardoor de prestaties van de berichtenuitwisseling tussen gedistribueerde knooppunten aanzienlijk worden versneld.

Bron: opennet.ru

Voeg een reactie