ජාල යෙදුම් නිර්මාණය කිරීම සඳහා රාමුව මුදා හැරීම ErgoFramework 2.2

ErgoFramework 2.2 හි මීළඟ නිකුතුව සිදු වූයේ, සම්පූර්ණ Erlang ජාල තොගය සහ එහි OTP පුස්තකාලය Go භාෂාවෙන් ක්‍රියාවට නංවමිනි. සැකසූ පොදු කාර්ය සැලසුම් රටා gen.Application, gen.Supervisor සහ gen.Server, මෙන්ම විශේෂිත ඒවා - gen භාවිතා කරමින් Go භාෂාවෙන් බෙදා හරින ලද විසඳුම් නිර්මාණය කිරීම සඳහා Erlang ලෝකයෙන් සංවර්ධකයාට නම්‍යශීලී මෙවලම් රාමුව මඟින් සපයයි. අදියර (බෙදා හරින ලද පබ්/උප), gen. Saga (බෙදාහැරුණු ගනුදෙනු, SAGA සැලසුම් රටාව ක්‍රියාත්මක කිරීම) සහ gen.Raft (රාෆ්ට් ප්‍රොටෝකෝලය ක්‍රියාත්මක කිරීම).

මීට අමතරව, රාමුව Erlang/OTP සහ Elixir හි නොමැති අන්තයේ සිට අග සංකේතනය සමඟ ප්‍රොක්සි ක්‍රියාකාරීත්වය සපයයි. Go භාෂාවට Erlang ක්‍රියාවලියේ සෘජු ප්‍රතිසමයක් නොමැති බැවින්, ව්‍යතිරේක තත්වයන් හැසිරවීමට "ප්‍රතිසාධන" එතුම සහිත gen.Server සඳහා පදනම ලෙස රාමුව goroutines භාවිතා කරයි. ව්යාපෘති කේතය MIT බලපත්රය යටතේ බෙදා හරිනු ලැබේ.

ErgoFramework හි ජාල තොගය Erlang ප්‍රොටෝකෝලයේ DIST පිරිවිතර සම්පූර්ණයෙන්ම ක්‍රියාත්මක කරයි. මෙයින් අදහස් කරන්නේ ErgoFramework පදනම මත ලියන ලද යෙදුම් Erlang හෝ Elixir ක්‍රමලේඛන භාෂාවෙන් ලියා ඇති ඕනෑම යෙදුම් සමඟ ස්වදේශීයව ක්‍රියා කරන බවයි (Erlang node එකක් සමඟ අන්තර්ක්‍රියා කිරීමේ උදාහරණයක්). gen.Stage සැලසුම් රටාව Elixir GenStage පිරිවිතරයන්ට අනුව ක්‍රියාත්මක කර ඇති අතර එය සමඟ සම්පුර්ණයෙන්ම අනුකූල වන බව සඳහන් කිරීම වටී (ක්‍රියාත්මක කිරීමේ උදාහරණය).

නව නිකුතුවේ:

  • නව සැකිලි එකතු කරන ලදී
    • gen.Web යනු Web API ද්වාර (Backend For Frontend ලෙසද හැඳින්වේ) මෝස්තර රටාවකි. උදාහරණයක්.
    • gen.TCP යනු කේතය ලිවීමේදී අවම උත්සාහයකින් TCP සම්බන්ධතා පිළිගැනීමේ සංචිතයක් ක්‍රියාත්මක කිරීමට ඔබට ඉඩ සලසන අච්චුවකි. උදාහරණයක්.
    • gen.UDP - gen.TCP අච්චුවට සමාන, UDP ප්‍රොටෝකෝලය සඳහා පමණි. උදාහරණයක්.
  • නෝඩයක් තුළ සරල සිදුවීම් බස් රථයක් ක්‍රියාත්මක කිරීමත් සමඟ නව සිදුවීම් ක්‍රියාකාරීත්වයක් යෝජනා කර ඇත, එමඟින් දේශීය ක්‍රියාවලීන් අතර සිදුවීම් (පබ්/උප) හුවමාරු කර ගැනීමේ යාන්ත්‍රණ නිර්මාණය කිරීමට ඔබට ඉඩ සලසයි. උදාහරණයක්.
  • ස්වදේශික Golang දත්ත වර්ගයකට පණිවිඩ ස්වයංක්‍රීයව අනුක්‍රමිකකරණයට/පරිවර්තනය කිරීමට ඉඩ සලසන, වර්ග ලියාපදිංචිය සඳහා සහය එක් කරන ලදී. මෙයින් අදහස් කරන්නේ ඔබට ලැබෙන සෑම පණිවිඩයක් සඳහාම etf.TermIntoStruct භාවිතා කිරීමට අවශ්‍ය නොවන බවයි. ලියාපදිංචි වර්ග ස්වයංක්‍රීයව නිශ්චිත වර්ගයට පරිවර්තනය වනු ඇත, එමඟින් බෙදා හරින ලද නෝඩ් අතර පණිවිඩ හුවමාරුවේ ක්‍රියාකාරිත්වය සැලකිය යුතු ලෙස වේගවත් කරයි.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න