paint-brush
በተከፋፈለ ስርዓቶች ውስጥ አስተማማኝ መልእክት@fairday
37,393 ንባቦች
37,393 ንባቦች

በተከፋፈለ ስርዓቶች ውስጥ አስተማማኝ መልእክት

Aleksei8m2024/03/18
Read on Terminal Reader
Read this story w/o Javascript

በጣም ረጅም፤ ማንበብ

አስተማማኝ፣ ከፍተኛ የሚገኝ፣ ሊሰፋ የሚችል የተከፋፈለ ሥርዓት መገንባት የተወሰኑ ቴክኒኮችን፣ መርሆችን እና ቅጦችን ማክበርን ይጠይቃል።
featured image - በተከፋፈለ ስርዓቶች ውስጥ አስተማማኝ መልእክት
Aleksei HackerNoon profile picture

ድርብ የመፃፍ ችግር

አስተማማኝ፣ ከፍተኛ የሚገኝ፣ ሊሰፋ የሚችል የተከፋፈለ ሥርዓት መገንባት የተወሰኑ ቴክኒኮችን፣ መርሆችን እና ቅጦችን ማክበርን ይጠይቃል። የእንደዚህ አይነት ስርዓቶች ንድፍ እጅግ በጣም ብዙ ችግሮችን መፍታትን ያካትታል. በጣም ከተለመዱት እና መሰረታዊ ጉዳዮች መካከል ድርብ የመፃፍ ችግር ነው።


"ድርብ የመጻፍ ችግር" በተከፋፈሉ ስርዓቶች ውስጥ የሚነሳ ፈታኝ ነው, በተለይም ከበርካታ የመረጃ ምንጮች ወይም የውሂብ ጎታዎች ጋር ሲገናኙ ማመሳሰል አለባቸው. እንደ የመረጃ ቋቶች ወይም መሸጎጫዎች ያሉ እንደ የውሂብ አለመመጣጠን፣ ግጭቶች ወይም የአፈጻጸም ማነቆዎች ያሉ ጉዳዮችን ሳያስተዋውቅ የውሂብ ለውጦች በተከታታይ ወደ ተለያዩ የውሂብ ማከማቻዎች መፃፋቸውን የማረጋገጥ ችግርን ይመለከታል።


የማይክሮ ሰርቪስ አርክቴክቸር እና የስርዓተ-ጥለት ዳታቤዝ በአንድ አገልግሎት ብዙ ጥቅሞችን ያስገኝልዎታል፣ ለምሳሌ ገለልተኛ ማሰማራት እና ማመጣጠን፣ የተለዩ ውድቀቶች እና የእድገት ፍጥነት መጨመር። ይሁን እንጂ ኦፕሬሽኖች በበርካታ ማይክሮ ሰርቪስ ውስጥ ለውጦችን ይፈልጋሉ, ይህንን ችግር ለመቅረፍ አስተማማኝ መፍትሄ እንዲያስቡ ያስገድድዎታል.

እውነተኛ ምሳሌ ማለት ይቻላል።

የእኛ ጎራ የብድር ማመልከቻዎችን መቀበልን፣ መገምገምን እና ከዚያም ለደንበኞች የማሳወቂያ ማንቂያዎችን መላክን የሚያካትት ሁኔታን እንመልከት።


በነጠላ የኃላፊነት መርህ፣ በኮንዌይ ህግ እና በጎራ-ተኮር የንድፍ አቀራረብ መንፈስ፣ ከበርካታ የክስተት-አውሎ ነፋሶች ክፍለ ጊዜዎች በኋላ፣ ሙሉው ጎራ ወደ ሶስት ንዑስ ጎራዎች ተከፍሏል፣ የተወሰኑ የተገደቡ አውዶች ግልጽ የሆኑ ወሰኖች፣ የጎራ ሞዴሎች እና በሁሉም ቦታ የሚገኝ ቋንቋ።


የመጀመሪያው አዲስ የብድር ማመልከቻዎችን በማሳፈር እና በማጠናቀር ላይ ነው. ሁለተኛው ስርዓት እነዚህን አፕሊኬሽኖች ይገመግመዋል እና በቀረበው መረጃ መሰረት ውሳኔዎችን ያደርጋል. ይህ የግምገማ ሂደት፣ KYC/KYB፣ ፀረ-ማጭበርበር እና የክሬዲት ስጋት ፍተሻዎችን ጨምሮ ብዙ ጊዜ የሚወስድ ሲሆን በሺዎች የሚቆጠሩ መተግበሪያዎችን በአንድ ጊዜ የማስተናገድ ችሎታን ይጠይቃል። ስለዚህ፣ ይህ ተግባር ራሱን የቻለ ልኬት እንዲኖር የሚያስችል የራሱ የውሂብ ጎታ ላለው ልዩ ማይክሮ አገልግሎት ተሰጥቷል።

በተጨማሪም እነዚህ ንዑስ ስርዓቶች የሚተዳደሩት በሁለት የተለያዩ ቡድኖች ሲሆን እያንዳንዳቸው የየራሳቸው የመልቀቂያ ዑደቶች፣ የአገልግሎት ደረጃ ስምምነቶች (SLA) እና የመጠን ችሎታ መስፈርቶች አሏቸው።


በመጨረሻ ፣ ለደንበኞች ማንቂያዎችን ለመላክ ልዩ የማሳወቂያ አገልግሎት አለ።



የስርዓቱ ዋና አጠቃቀም ጉዳይ የጠራ መግለጫ እዚህ አለ፡-

  1. ደንበኛ የብድር ማመልከቻ ያቀርባል.
  2. የብድር ማመልከቻ አገልግሎት አዲሱን ማመልከቻ በ "በመጠባበቅ ላይ" ሁኔታ ይመዘግባል እና ማመልከቻውን ወደ ግምገማ አገልግሎት በማስተላለፍ የግምገማ ሂደቱን ይጀምራል.
  3. የግምገማ አገልግሎቱ የመጪውን የብድር ማመልከቻ ይገመግማል እና በመቀጠል ውሳኔውን ለብድር ማመልከቻ አገልግሎት ያሳውቃል።
  4. ውሳኔውን ከተቀበለ በኋላ የብድር ማመልከቻ አገልግሎት የብድር ማመልከቻ ሁኔታን በዚሁ መሠረት ያሻሽላል እና ውጤቱን ለደንበኛው ለማሳወቅ የማሳወቂያ አገልግሎቱን ያስነሳል።
  5. የማሳወቂያ አገልግሎቱ ይህንን ጥያቄ በማስተናገድ በኢሜል፣ በኤስኤምኤስ ወይም በሌላ በተመረጡ የመገናኛ ዘዴዎች ለደንበኛው ማሳወቂያዎችን በደንበኛው መቼት ይልካል።


በቅድመ-እይታ በጣም ቀላል እና ጥንታዊ ስርዓት ነው፣ ግን የብድር ማመልከቻ አገልግሎቱ የብድር ማመልከቻ ትዕዛዝን እንዴት እንደሚያስኬድ ወደ ውስጥ እንዝለቅ።


ለአገልግሎት መስተጋብር ሁለት መንገዶችን ግምት ውስጥ ማስገባት እንችላለን-

  1. መጀመሪያ-አካባቢያዊ-አስገዳጅ-ከዚያ-አትም- በዚህ አቀራረብ አገልግሎቱ የአካባቢያዊ ዳታቤዝ መረጃን ያሻሽላል (ያደርጋል) እና ከዚያም አንድ ክስተት ወይም መልእክት ለሌሎች አገልግሎቶች ያትማል።

  2. በመጀመሪያ-አትም-ከዚያም-አካባቢ-አስገድድ- በተቃራኒው ይህ ዘዴ በአካባቢያዊ የውሂብ ጎታ ላይ ለውጦችን ከማድረግዎ በፊት አንድ ክስተት ወይም መልእክት ማተምን ያካትታል።


ሁለቱም ዘዴዎች የራሳቸው ድክመቶች አሏቸው እና በተከፋፈሉ ስርዓቶች ውስጥ ለግንኙነት ደህንነቱ የተጠበቀው በከፊል ብቻ ናቸው።


ይህ የመጀመሪያውን አቀራረብ የመተግበር ቅደም ተከተል ንድፍ ነው.


መጀመሪያ-አካባቢያዊ-ቁርጠኝነት-ከዚያ-ማተም


በዚህ ሁኔታ የብድር ማመልከቻ አገልግሎት መጀመሪያ ግብይት የሚፈጽምበት እና ከዚያም ወደ ሌላ ስርዓት ማሳወቂያ ለመላክ የሚሞክርበትን የመጀመሪያ-አካባቢያዊ-ቁርጠኝነት-ከዛ-የህትመት አቀራረብን ይጠቀማል። ነገር ግን፣ ይህ ሂደት ለምሳሌ የአውታረ መረብ ችግሮች ካሉ፣ የግምገማ አገልግሎቱ የማይገኝ ከሆነ ወይም የብድር ማመልከቻ አገልግሎት ከማህደረ ትውስታ ውጪ (OOM) ስህተት ካጋጠመው እና ከተበላሽ ይህ ሂደት ለመሳካት የተጋለጠ ነው። በእንደዚህ ዓይነት ሁኔታዎች, ተጨማሪ እርምጃዎች ካልተተገበሩ, ግምገማው አዲሱን የብድር ማመልከቻ ሳያስታውቅ መልእክቱ ይጠፋል.


እና ሁለተኛው።

መጀመሪያ-አትም-ከዚያም-አካባቢያዊ-ቁርጠኝነት
በመጀመሪያ - አትም - ከዚያም - አካባቢያዊ - ቃል ኪዳን ሁኔታ ውስጥ የብድር ማመልከቻ አገልግሎት የበለጠ ጉልህ አደጋዎች ይጋፈጣሉ። ስለ አዲስ መተግበሪያ የግምገማ አገልግሎቱን ሊያሳውቅ ይችላል ነገር ግን እንደ የውሂብ ጎታ ችግሮች፣ የማስታወሻ ስህተቶች ወይም የኮድ ስህተቶች ባሉ ችግሮች ምክንያት ይህን ዝመና በአካባቢው ማስቀመጥ አልቻለም። የብድር ክለሳ አገልግሎት ገቢ ማመልከቻዎችን እንዴት እንደሚይዝ ላይ በመመስረት ይህ አቀራረብ በመረጃ ውስጥ ጉልህ አለመግባባቶችን ያስከትላል ፣ ይህም ከባድ ችግሮች ያስከትላል።


ስለዚህ, ክስተቶችን ለውጭ ተጠቃሚዎች ለማተም ጠንካራ ዘዴን የሚያቀርብ መፍትሄ መለየት አለብን. ነገር ግን ወደ ሊሆኑ የሚችሉ መፍትሄዎች ከመመርመራችን በፊት በመጀመሪያ በተከፋፈሉ ስርዓቶች ውስጥ ሊገኙ የሚችሉ የመልእክት አሰጣጥ ዋስትና ዓይነቶችን ማብራራት አለብን።

የመልእክት መላኪያ ዋስትናዎች

ልናገኛቸው የምንችላቸው አራት አይነት ዋስትናዎች አሉ።

  1. ምንም ዋስትናዎች የሉም
    መልእክቱ ወደ መድረሻው ለመድረሱ ምንም ዋስትና የለም. የመጀመሪያው-አካባቢያዊ-ቁርጠኝነት-ከዚያ-ማተም አካሄድ በትክክል በዚህ ላይ ነው። ሸማቾች አንድ ጊዜ፣ ብዙ ጊዜ፣ ወይም በጭራሽ መልዕክቶችን ሊቀበሉ ይችላሉ።

  2. ቢበዛ አንዴ ማድረስ
    ቢበዛ አንድ ጊዜ ማድረስ ማለት መልእክቱ ቢበዛ 1 ጊዜ ወደ መድረሻው ይደርሳል ማለት ነው። የመጀመርያ-አካባቢያዊ-አስገዳጅ-ከዛ-ማተም አካሄድ በዚህ መንገድ እንዲሁም ከዋጋ አንድ ጋር እንደገና በመሞከር ፖሊሲ ሊተገበር ይችላል።

  3. ቢያንስ አንድ ጊዜ ማድረስ ሸማቾች እያንዳንዱን መልእክት ይቀበላሉ እና ያስተናግዳሉ ነገር ግን ከአንድ ጊዜ በላይ ተመሳሳይ መልእክት ሊቀበሉ ይችላሉ።

  4. ልክ አንድ ጊዜ ማድረስ\ በትክክል አንድ ጊዜ ማድረስ ማለት ሸማቹ መልዕክቱን አንድ ጊዜ በብቃት ይቀበላል ማለት ነው።
    በቴክኒክ፣ በካፍካ ግብይቶች እና በልዩ አቅም ያለው የአምራች እና ሸማች ትግበራ ማሳካት ይቻላል።


በአብዛኛዎቹ አጋጣሚዎች፣ 'ቢያንስ አንድ ጊዜ' የማድረስ ዋስትናዎች ቢያንስ አንድ ጊዜ መልዕክቶች መድረሳቸውን በማረጋገጥ ብዙ ጉዳዮችን ይፈታል፣ ነገር ግን ሸማቾች ጠንካሮች መሆን አለባቸው። ነገር ግን፣ ከማይቀረው የአውታረ መረብ ብልሽቶች አንፃር፣ የአምራቹ ዋስትና ምንም ይሁን ምን፣ ሁሉም የሸማቾች አመክንዮ የተባዙ መልዕክቶችን ከማስኬድ ለመዳን ጠንከር ያለ መሆን አለበት። ስለዚህ፣ ይህ መስፈርት እውነታውን የሚያንፀባርቅ በመሆኑ ብዙ እንቅፋት አይደለም።

መፍትሄዎች

ለዚህ ችግር ብዙ መፍትሄዎች አሉ, እነሱም ጥቅሞች እና ጉዳቶች አሏቸው.

ባለ ሁለት-ደረጃ ቁርጠኝነት

እንደ ዊኪፔዲያ፣ ባለሁለት ደረጃ ቁርጠኝነት (2PC) የተከፋፈለ ግብይቶችን ወጥነት እና አስተማማኝነት ለማረጋገጥ በኮምፒዩተር ሳይንስ እና የውሂብ ጎታ አስተዳደር ስርዓቶች ውስጥ ጥቅም ላይ የሚውል የተሰራጨ የግብይት ፕሮቶኮል ነው። በአንድ ግብይት ውስጥ በርካታ ግብዓቶች (ለምሳሌ፣ ዳታቤዝ) ለመሳተፍ ለሚፈልጉ ሁኔታዎች የተነደፈ ነው፣ እና ሁሉም ግብይቱን እንዲፈጽሙ ወይም ሁሉም እንዲሰረዙ ያረጋግጣል፣ በዚህም የውሂብ ወጥነት እንዲኖረው ያደርጋል። በትክክል የምንፈልገውን ይመስላል፣ ነገር ግን ባለሁለት-ደረጃ ቁርጠኝነት በርካታ ድክመቶች አሉት።

  • አንድ ተሳታፊ ሃብት ምላሽ የማይሰጥ ከሆነ ወይም ውድቀት ካጋጠመው፣ ችግሩ እስኪፈታ ድረስ አጠቃላይ ሂደቱ ሊታገድ ይችላል። ይህ ወደ እምቅ አፈጻጸም እና የተገኝነት ችግሮች ሊያስከትል ይችላል.
  • ባለሁለት-ደረጃ ቁርጠኝነት አብሮገነብ የስህተት መቻቻል ዘዴዎችን አይሰጥም። ውድቀቶችን ለመቆጣጠር በውጫዊ ዘዴዎች ወይም በእጅ ጣልቃገብነት ላይ የተመሰረተ ነው.
  • ሁሉም ዘመናዊ የመረጃ ቋቶች ባለሁለት ደረጃ ቁርጠኝነትን አይደግፉም።

የተጋራ የውሂብ ጎታ

ለማይክሮ ሰርቪስ አርክቴክቸር በጣም ግልፅ የሆነው መፍትሄ ስርዓተ-ጥለት (ወይም አንዳንዴም ፀረ-ስርዓተ-ጥለት) መተግበር ነው - የጋራ ዳታቤዝ። በተለያዩ የመረጃ ቋቶች ውስጥ ባሉ በርካታ ሰንጠረዦች ላይ የግብይት ወጥነት ካስፈለገዎት ይህ አካሄድ በጣም ሊታወቅ የሚችል ነው፣ ለእነዚህ ማይክሮ አገልግሎቶች አንድ የጋራ ዳታቤዝ ብቻ ይጠቀሙ።


የዚህ አሰራር መሰናክሎች አንድን የውድቀት ነጥብ ማስተዋወቅ፣ ገለልተኛ የውሂብ ጎታ መመዘን መከልከል እና ለተወሰኑ መስፈርቶች እና አጠቃቀም ጉዳዮች በጣም ተስማሚ የሆኑ የተለያዩ የውሂብ ጎታ መፍትሄዎችን የመጠቀም ችሎታን መገደብ ያካትታሉ። በተጨማሪም፣ ይህን የመሰለ የተከፋፈለ ግብይት ለመደገፍ በማይክሮ ሰርቪስ ኮድ ቤዝ ላይ ማሻሻያ አስፈላጊ ይሆናል።

የግብይት ሳጥን

የ‹ transportal outbox › አስተማማኝ የመልእክት ስርጭትን ለማረጋገጥ በተከፋፈሉ ስርዓቶች ውስጥ ጥቅም ላይ የሚውል የንድፍ ንድፍ ነው፣ አስተማማኝ የመልእክት መላላኪያ ሲስተሞችም ቢኖሩም። እንደ ኦፕሬሽኑ በራሱ ተመሳሳይ ግብይት ውስጥ ክስተቶችን በተሰየመ 'OutboxEvents' ሠንጠረዥ ውስጥ ማከማቸትን ያካትታል። ይህ አካሄድ ከኤሲአይዲ የግንኙነት ዳታቤዝ ባህሪዎች ጋር በጥሩ ሁኔታ ይጣጣማል። በአንጻሩ፣ ብዙ የNo-SQL ዳታቤዝ የኤሲአይዲ ንብረቶችን ሙሉ በሙሉ አይደግፉም፣ በምትኩ የCAP theorem እና BASE ፍልስፍናን መርሆች መርጠዋል፣ ይህም ከጠንካራ ወጥነት ይልቅ ተገኝነትን እና በመጨረሻም ወጥነትን ያስቀድማል።


የግብይት ገቢ ሳጥን ቢያንስ አንድ ጊዜ ዋስትና ይሰጣል እና በብዙ መንገዶች ሊተገበር ይችላል፡-

  1. የግብይት ምዝግብ ማስታወሻ

  2. የምርጫ አታሚ


የግብይት ምዝግብ ማስታወሻ አቀራረብ አቀራረብ እንደ ሲዲሲ (የውሂብ ቀረጻ ለውጥ) ያሉ የውሂብ ጎታ-ተኮር መፍትሄዎችን መጠቀምን ያመለክታል። የዚህ ዘዴ ዋና ጉዳቶች-

  • የውሂብ ጎታ ልዩ መፍትሄዎች

  • በሲዲሲ አተገባበር ልዩ ምክንያት መዘግየት ጨምሯል።


ሌላው ዘዴ የውጪ ሳጥን ሠንጠረዥን በድምጽ መስጫ ሳጥን መጫንን የሚያመቻች የምርጫ አታሚ ነው። የዚህ አቀራረብ ቀዳሚ መሰናክል ከፍተኛ ወጪን ሊያስከትል የሚችል የውሂብ ጎታ ጭነት መጨመር ነው. በተጨማሪም፣ ሁሉም የNo-SQL ዳታቤዝ ለተወሰኑ የሰነድ ክፍሎች ቀልጣፋ መጠይቅን አይደግፉም። ሙሉ ሰነዶችን ማውጣት, ስለዚህ, የአፈፃፀም ውድቀትን ሊያስከትል ይችላል.


እንዴት እንደሚሰራ የሚያብራራ ትንሽ ተከታታይ ንድፍ ይኸውና.


እራስዎን ያዳምጡ

የ Transactional Outbox ጥለት ዋናው ፈተና በመረጃ ቋት ACID ንብረቶች ላይ ባለው ጥገኝነት ላይ ነው። በተለመደው የOLTP ዳታቤዝ ውስጥ ቀላል ሊሆን ይችላል ነገር ግን በNoSQL ግዛት ውስጥ ፈተናዎችን ይፈጥራል። ይህንን ለመቅረፍ የጥያቄ ሂደትን ከመጀመር ጀምሮ አባሪ ሎግ (ለምሳሌ ካፍካ) መጠቀም ነው።


የብድር ማመልከቻውን በቀጥታ ከማስኬድ ይልቅ ወዲያውኑ ወደ ውስጣዊ የካፍካ ርዕስ እንልካለን እና ከዚያ 'የተቀበለውን' ውጤት ለደንበኛው እንመልሳለን። ሆኖም ትዕዛዙ አሁንም መከናወን ያለበት የመሆኑ እድሉ ከፍተኛ በመሆኑ ውጤቱን ወዲያውኑ ለደንበኛው ማሳወቅ አንችልም። ይህንን ውሎ አድሮ ወጥነት ለማስተዳደር፣ እንደ ረጅም ድምጽ መስጠት፣ በደንበኛ የተጀመረ የሕዝብ አስተያየት መስጫ፣ ብሩህ አመለካከት ያለው የተጠቃሚ በይነገጽ ማሻሻያ፣ ወይም WebSockets ወይም Server-የተላኩ ክስተቶችን ለማሳወቂያዎች በመጠቀም ቴክኒኮችን ልንጠቀም እንችላለን። ሆኖም፣ ይህ በአጠቃላይ የተለየ ርዕስ ነው፣ ስለዚህ ወደ መጀመሪያው ርዕሰ ጉዳያችን እንመለስ።


መልእክቱን የላክነው በውስጣዊ የካፍካ ርዕስ ላይ ነው። የብድር ማመልከቻ አገልግሎት ይህንን መልእክት - ከደንበኛው የተቀበለውን ተመሳሳይ ትዕዛዝ ይበላዋል እና ማካሄድ ይጀምራል። በመጀመሪያ, አንዳንድ የንግድ ሎጂክ ያስፈጽማል; ይህ አመክንዮ በተሳካ ሁኔታ ከተፈጸመ እና ውጤቱም ከቀጠለ በኋላ ብቻ አዳዲስ መልዕክቶችን በይፋዊ የካፍካ ርዕስ ላይ ያትማል።


እስቲ ጥቂት የውሸት ኮድ እንመልከት።


 public async Task HandleAsync(SubmitLoanApplicationCommand command, ...) { //First, process business logic var loanApplication = await _loanApplicationService.HandleCommandAsync(command, ...); //Then, send new events to public Kafka topic producer.Send(new LoanApplicationSubmittedEvent(loanApplication.Id)); //Then, commit offset consumer.Commit(); }


የቢዝነስ አመክንዮ ሂደት ካልተሳካስ? ምንም አትጨነቅ፣ ማካካሻው ገና ስላልተሰራ፣ መልእክቱ እንደገና ይሞከራል።


አዲስ ክስተቶችን ወደ ካፍ መላክ ካልተሳካስ? ምንም አይጨነቁ፣ የንግዱ አመክንዮ ኃይለኛ ስለሆነ፣ የተባዛ የብድር ማመልከቻ አይፈጥርም። ይልቁንስ ለህዝብ የካፍ ርዕስ መልዕክቶችን እንደገና ለመላክ ይሞክራል።


መልእክቶች ወደ ካፍካ ቢላኩ፣ ነገር ግን የማካካሻ ድርጊቱ ካልተሳካስ? ምንም አይጨነቁ፣ የቢዝነስ አመክንዮ አቅም ያለው ስለሆነ፣ የተባዛ የብድር ማመልከቻ አይፈጥርም። ይልቁንስ ለሕዝብ የካፍካ ርዕስ መልእክቶችን ያስተላልፋል እና በዚህ ጊዜ የማካካሻ ድርጊቱ ይሳካል ብሎ ተስፋ ያደርጋል።


የዚህ አሰራር ዋና መሰናክሎች ከአዲሱ የፕሮግራም አወጣጥ ዘይቤ ጋር የተቆራኘውን ተጨማሪ ውስብስብነት ፣ በመጨረሻም ወጥነት (ደንበኛው ወዲያውኑ ውጤቱን ስለማያውቅ) እና ሁሉም የንግድ ሥራ አመክንዮዎች ጠንካራ እንዲሆኑ መሟላት አለባቸው።

የክስተት ምንጭ

የክስተት ምንጭ ምንድን ነው፣ እና እንዴት እዚህ ሊተገበር ይችላል? የክስተት ምንጭ ሁሉንም ለውጦች እንደ ተከታታይ የማይለዋወጡ ክስተቶች በመያዝ የስርዓቱን ሁኔታ ለመቅረጽ የሚያገለግል የሶፍትዌር አርክቴክቸር ንድፍ ነው። እነዚህ ክስተቶች እውነታዎችን ወይም የመንግስት ሽግግሮችን ይወክላሉ እና ለስርዓቱ ወቅታዊ ሁኔታ እንደ ነጠላ የእውነት ምንጭ ሆነው ያገለግላሉ። ስለዚህ፣ በቴክኒካል፣ የክስተት ምንጭ ስርዓትን በመተግበር፣ ሁሉም ዝግጅቶች በ EventStore ውስጥ አሉን፣ እና ይህ EventStore ስለተፈጠረው ነገር እንደ አንድ የእውነት ምንጭ በተጠቃሚዎች ሊጠቀሙበት ይችላሉ። ስለ ማዘዝ ሁሉንም ለውጦች ወይም ስጋቶች ለመከታተል የተለየ የውሂብ ጎታ መፍትሄ አያስፈልግም ፣ ብቸኛው ችግር ከንባብ ጎን መቀመጥ ነው ፣ ምክንያቱም ትክክለኛ የአካል ሁኔታን ለማግኘት ሁሉንም ክስተቶች እንደገና ማጫወት ያስፈልጋል።

ማጠቃለያ

በዚህ ጽሑፍ ውስጥ በተከፋፈሉ ስርዓቶች ውስጥ አስተማማኝ የመልእክት ልውውጥን ለመገንባት በርካታ አቀራረቦችን ገምግመናል። ከእነዚህ ባህሪያት ጋር ስርዓቶችን በምንገነባበት ጊዜ ልንመለከታቸው የምንችላቸው በርካታ ምክሮች አሉ

  1. የአውታረ መረብ ብልሽት የማይቀር ስለሆነ ሁል ጊዜ እምቅ ሸማቾችን ያሳድጉ።
  2. የዋስትና መስፈርቶችን በግልፅ በመረዳት የመጀመሪያውን-አካባቢያዊ-ቁርጠኝነት-ከዛ-ማተምን በጥንቃቄ ይጠቀሙ።
  3. በስርዓትዎ ውስጥ ወደ ከፍተኛ የውሂብ አለመመጣጠን ሊያመራ ስለሚችል መጀመሪያ-አትም-ከዚያ-አካባቢ-አስገድዶ መድህን በጭራሽ አይጠቀሙ።
  4. አሁን ያለው የውሂብ ጎታ ምርጫ ውሳኔ ሊለወጥ የሚችል ከሆነ ወይም ቴክኒካል ስትራቴጂ ለችግሩ ምርጡን የማከማቻ መፍትሄ መምረጥን የሚያመለክት ከሆነ - እንደ ሲዲሲ ካሉ የውሂብ ጎታ መፍትሄዎች ጋር በማያያዝ የጋራ ቤተ-መጽሐፍትን አትገንቡ።
  5. ቢያንስ አንድ ጊዜ ዋስትናዎችን ለማግኘት የ Transactional Outbox አቀራረብን እንደ መደበኛ መፍትሄ ይጠቀሙ።
  6. No-SQL የውሂብ ጎታዎች ጥቅም ላይ በሚውሉበት ጊዜ እራስዎን ያዳምጡ የሚለውን ዘዴ ለመጠቀም ያስቡበት።


በሚቀጥለው ጊዜ፣ የግብይት ወጪ ሳጥንን የመተግበር የበለጠ ተግባራዊ ምሳሌን እንመለከታለን። ተመልከት

አንተ!