Paglabas ng balangkas para sa paglikha ng mga aplikasyon sa network na ErgoFramework 2.2

Ang susunod na release ng ErgoFramework 2.2 ay naganap, na ipinatupad ang kumpletong Erlang network stack at ang OTP library nito sa Go language. Ang framework ay nagbibigay sa developer ng mga naiaangkop na tool mula sa mundo ng Erlang para sa paglikha ng mga ipinamahagi na solusyon sa wikang Go gamit ang mga yari na pangkalahatang layunin na mga pattern ng disenyo gen.Application, gen.Supervisor at gen.Server, pati na rin ang mga dalubhasa - gen. Stage (naipamahagi na pub/sub), gen. Saga (mga ipinamahagi na transaksyon, isang pagpapatupad ng pattern ng disenyo ng SAGA) at gen.Raft (isang pagpapatupad ng Raft protocol).

Bilang karagdagan, ang framework ay nagbibigay ng proxy functionality na may end-to-end encryption, na hindi available sa Erlang/OTP at Elixir. Dahil ang wikang Go ay walang direktang analogue ng proseso ng Erlang, ang framework ay gumagamit ng mga goroutine bilang batayan para sa gen.Server na may "recover" na wrapper upang pangasiwaan ang mga sitwasyon ng exception. Ang code ng proyekto ay ipinamahagi sa ilalim ng lisensya ng MIT.

Ang network stack sa ErgoFramework ay ganap na nagpapatupad ng DIST na detalye ng Erlang protocol. Nangangahulugan ito na ang mga application na nakasulat sa batayan ng ErgoFramework ay katutubong gumagana sa anumang mga application na nakasulat sa Erlang o Elixir programming language (isang halimbawa ng pakikipag-ugnayan sa isang Erlang node). Dapat ding tandaan na ang pattern ng disenyo ng gen.Stage ay ipinatupad ayon sa espesipikasyon ng Elixir GenStage at ganap na katugma dito (halimbawa ng pagpapatupad).

Sa bagong release:

  • Nagdagdag ng mga bagong template
    • Ang gen.Web ay isang Web API Gateway (kilala rin bilang Backend For Frontend) na pattern ng disenyo. Halimbawa.
    • Ang gen.TCP ay isang template na nagbibigay-daan sa iyong magpatupad ng isang grupo ng mga tumatanggap ng koneksyon sa TCP na may kaunting pagsisikap sa pagsulat ng code. Halimbawa.
    • gen.UDP - katulad ng gen.TCP template, para lang sa UDP protocol. Halimbawa.
  • Ang isang bagong paggana ng Mga Kaganapan ay iminungkahi sa pagpapatupad ng isang simpleng bus ng kaganapan sa loob ng isang node, na nagbibigay-daan sa iyong lumikha ng mga mekanismo para sa pagpapalitan ng mga kaganapan (pub/sub) sa mga lokal na proseso. Halimbawa.
  • Nagdagdag ng suporta para sa pagpaparehistro ng uri, na nagbibigay-daan sa awtomatikong serialization/deserialization ng mga mensahe sa isang katutubong uri ng data ng Golang. Nangangahulugan ito na hindi mo na kailangang gumamit ng etf.TermIntoStruct para sa bawat mensaheng natanggap. Ang mga nakarehistrong uri ay awtomatikong babaguhin sa tinukoy na uri, na makabuluhang nagpapabilis sa pagganap ng pagpapalitan ng mensahe sa pagitan ng mga ibinahagi na node.

Pinagmulan: opennet.ru

Magdagdag ng komento