Ցանցային հավելվածների ստեղծման շրջանակի թողարկում ErgoFramework 2.2

Տեղի ունեցավ ErgoFramework 2.2-ի հաջորդ թողարկումը՝ ներդրելով Erlang ցանցի ամբողջական փաթեթը և դրա OTP գրադարանը Go լեզվով: Շրջանակը մշակողին տրամադրում է ճկուն գործիքներ Erlang աշխարհից՝ Go լեզվով բաշխված լուծումներ ստեղծելու համար՝ օգտագործելով պատրաստի ընդհանուր նշանակության նախագծման նախշեր gen.Application, gen.Supervisor և gen.Server, ինչպես նաև մասնագիտացված՝ gen. Stage (բաշխված փաբ/ենթահանձնաժողով), gen. Saga (բաշխված գործարքներ, SAGA-ի դիզայնի օրինաչափության իրականացում) և gen.Raft (Raft արձանագրության իրականացում):

Բացի այդ, շրջանակն ապահովում է վստահված անձի գործառույթ՝ ծայրից ծայր կոդավորումով, որը հասանելի չէ Erlang/OTP-ում և Elixir-ում: Քանի որ Go լեզուն չունի Erlang գործընթացի անմիջական անալոգը, շրջանակն օգտագործում է goroutines որպես հիմք gen.Server-ի հետ «վերականգնող» փաթաթան՝ բացառության իրավիճակները կարգավորելու համար: Ծրագրի կոդը բաշխվում է MIT լիցենզիայի ներքո:

ErgoFramework-ի ցանցային կույտը լիովին իրականացնում է Erlang արձանագրության DIST ճշգրտումը: Սա նշանակում է, որ ErgoFramework-ի հիման վրա գրված հավելվածները բնականաբար աշխատում են Erlang կամ Elixir ծրագրավորման լեզուներով գրված ցանկացած հավելվածի հետ (Erlang հանգույցի հետ փոխգործակցության օրինակ): Հարկ է նաև նշել, որ gen.Stage դիզայնի օրինաչափությունն իրականացվել է Elixir GenStage-ի մասնագրերի համաձայն և լիովին համատեղելի է դրա հետ (իրականացման օրինակ):

Նոր թողարկումում.

  • Ավելացվեցին նոր կաղապարներ
    • gen.Web-ը Web API Gateway-ն է (հայտնի է նաև որպես Backend For Frontend) նախագծման օրինակ: Օրինակ.
    • gen.TCP-ն ձևանմուշ է, որը թույլ է տալիս իրականացնել TCP կապի ընդունիչների մի խումբ՝ նվազագույն ջանքերով կոդը գրելու համար: Օրինակ.
    • gen.UDP - նման է gen.TCP կաղապարին, միայն UDP արձանագրության համար: Օրինակ.
  • Առաջարկվել է Իրադարձությունների նոր գործառույթ՝ հանգույցի ներսում պարզ իրադարձությունների ավտոբուսի ներդրմամբ, որը թույլ է տալիս ստեղծել մեխանիզմներ՝ իրադարձությունների փոխանակման համար (pub/sub) տեղական գործընթացների միջև: Օրինակ.
  • Ավելացվել է տիպի գրանցման աջակցություն, որը թույլ է տալիս հաղորդագրությունների ավտոմատ սերիալիզացիան/ապասերիալիզացիան բնիկ Գոլանգի տվյալների տիպի մեջ: Սա նշանակում է, որ դուք այլևս կարիք չեք ունենա օգտագործելու etf.TermIntoStruct յուրաքանչյուր ստացված հաղորդագրության համար: Գրանցված տեսակները ավտոմատ կերպով կվերածվեն նշված տեսակի, ինչը զգալիորեն արագացնում է բաշխված հանգույցների միջև հաղորդագրությունների փոխանակման կատարումը:

Source: opennet.ru

Добавить комментарий