ErgoFramework tarmoq ilovalarini yaratish uchun ramkaning chiqarilishi 2.2

To'liq Erlang tarmoq stekini va uning OTP kutubxonasini Go tilida amalga oshiruvchi ErgoFramework 2.2 ning navbatdagi versiyasi bo'lib o'tdi. Ramka ishlab chiquvchiga Gen.Application, gen.Supervisor va gen.Server, shuningdek, ixtisoslashgan umumiy maqsadli dizayn naqshlaridan foydalangan holda Go tilida taqsimlangan yechimlarni yaratish uchun Erlang dunyosidan moslashuvchan vositalarni taqdim etadi. Bosqich (tarqatilgan pub/sub), gen.Saga (tarqatilgan tranzaktsiyalar, SAGA dizayn namunasini amalga oshirish) va gen.Raft (Raft protokolini amalga oshirish).

Bundan tashqari, ramka Erlang/OTP va Elixir-da mavjud bo'lmagan uchdan-end shifrlash bilan proksi-server funksiyasini ta'minlaydi. Go tilida Erlang jarayonining toʻgʻridan-toʻgʻri oʻxshashi yoʻqligi sababli, ramka istisno vaziyatlarni hal qilish uchun “tiklash” oʻramiga ega gen.Server uchun asos sifatida goroutinlardan foydalanadi. Loyiha kodi MIT litsenziyasi ostida tarqatiladi.

ErgoFramework-dagi tarmoq staki Erlang protokolining DIST spetsifikatsiyasini to'liq amalga oshiradi. Bu shuni anglatadiki, ErgoFramework asosida yozilgan ilovalar Erlang yoki Elixir dasturlash tillarida yozilgan har qanday ilovalar bilan tabiiy ravishda ishlaydi (Erlang tuguni bilan o'zaro ta'sir qilish misoli). Shuni ham ta'kidlash kerakki, gen.Stage dizayn namunasi Elixir GenStage spetsifikatsiyasiga muvofiq amalga oshiriladi va unga to'liq mos keladi (amalga oshirish misoli).

Yangi nashrda:

  • Yangi shablonlar qo'shildi
    • gen.Web Web API Gateway (shuningdek, Backend For Frontend nomi bilan ham tanilgan) dizayn namunasidir. Misol.
    • gen.TCP - kod yozishda minimal kuch sarflagan holda TCP ulanish qabul qiluvchilar pulini amalga oshirish imkonini beruvchi shablon. Misol.
    • gen.UDP - gen.TCP shabloniga o'xshash, faqat UDP protokoli uchun. Misol.
  • Tugun ichidagi oddiy hodisalar avtobusini amalga oshirish bilan yangi Events funksiyasi taklif qilindi, bu sizga mahalliy jarayonlar o'rtasida hodisalarni (pub/sub) almashish mexanizmlarini yaratish imkonini beradi. Misol.
  • Turni ro'yxatdan o'tkazish uchun qo'shimcha qo'llab-quvvatlash qo'shildi, bu xabarlarni mahalliy Golang ma'lumotlar turiga avtomatik seriyalashtirish/seriyadan chiqarish imkonini beradi. Bu endi har bir qabul qilingan xabar uchun etf.TermIntoStruct dan foydalanish shart emasligini anglatadi. Ro'yxatdan o'tgan turlar avtomatik ravishda belgilangan turga o'zgartiriladi, bu esa tarqatilgan tugunlar o'rtasida xabar almashinuvini sezilarli darajada tezlashtiradi.

Manba: opennet.ru

a Izoh qo'shish