Event-Driven Architecture ዘመናዊ መተግበሪያዎች በጣም አስፈላጊ የሆነ የግንባታ አካል ሆኗል። ይህ ብሎግ ጽሁፍ Event-Driven Architecture ምን እንደሆነ፣ ከመልእክት የቅርጸ ሰንደቅ አካላት ጋር ያለውን ግንኙነትና ለምን መረጠው አሳሳቢ ነው በሚል አዲስ መልኩ ያየውን በዝርዝር ያንዳንዱ አገልጋይ ስለሚያስደግፋቸው ይተያያይዛል። የመልእክት ቅርጸ ሰንደቅ አይነቶችና አጠቃቀም፣ ከዓለም ሀብት ልክ ተግባራዊ ምሳሌዎች ጋር የሚሰጠው ነው። ወደ Event-Driven Architecture ስር ለሚደረገው ማሻሻያ ሂደት ስለሚገባውን፣ ሙሉ ምሳሌዎችና የማዕከል እርምጃዎች አስቸኳይ ምሳሌዎች በኢተከኞች ተደርጓል። የማዕከሉን ብቃትና የሚያሳይ ስጦታ የሚገልጽ ነው። በፍተናዎችና በአጥፍተናዎቹ ተያይዞ፣ የመተግበሪያዎችን የሚያያዝ እርምጃዎች በመጨረሻ ክፍል ማጠቃለያ ይቀርባል። በአንድ ነገር ወደ Event-Driven Architecture ዙሪያ ዘርፍ ያንዳንዱ ወይም የሚያሳያ ምንጭ ይጠቅማል።
Event-Driven Architecture ምንድን ነው?
Event-Driven Architecture (EDA) በክስተቶች (event) እንዲታወቁ፣ ይሰርሙና መጠሪያ ላይ የሚያደርጉ ስርዓት ላይ የተመሰረተ የሶፍትዌር ባህሪ ነው። በዚህ ማዕከል፣ መተግበሪያዎች ክስተት አምራቾች (event producers) እና ክስተት ተጠቃሚዎች (event consumers) በየተለያዩ ክፍሎች ይከፈላሉ። አምራቾች ክስተቶችን ይተላለፉ፣ ተጠቃሚዎችም በዚህ ክስተት ላይ የሚታደጉ በመሆን ተያያዥ እሴቶችን ይወጣሉ። ይህ አቀራረብ ስርዓቶችን ከፍተኛ ብቃት፣ የሚስፋፋ እና በእውነተኛው ጊዜ እህልነት ያላቸው አድርጎት ያደርጋቸዋል።
| አስተያየት | መግለጫ | የሚያገለግሉ ጥቅሞች |
|---|---|---|
| ክስ በክስ ተመሰረተ | ሁሉም ነገር በአንድ ክስ ዙሪያ ይተሳሰባል። | በሚኖርበት ውስጥ ጊዜ የሚሰጥ ምላሽ፣ ቀላል ለማገጃገጥ። |
| በቀላሉ የተጋጠሙ ልዩ ክፍሎች | አገልግሎቶች ሁሉም ከእርስዎ በተንቀሳቃሽ መሆን ይችላሉ። | በቀላሉ ልክ ለማድረግ፣ አንድ አካል በራሱ የሚስራ መች. |
| የአሰንክሮን አግኝት | ክሶች በአሰንክሮን መነሳት ይከታተላሉ። | የውጤት ጥራት ጨምሮ፣ አይታገድም። |
| የማደረግ ትልቅነት | ሲስተም በቀላሉ ልክ ሊሆን ይችላል። | በተጨማሪ ነጥቦች ምርቃ እንኳን በትክክል ይሰራ። |
በEvent-Driven አስተዳደር ውስጥ፣ ክሶች ብዙ ጊዜ በ መላኪያ ደረሰኝ (message queue) ይተላለፋሉ። እነዚህ ደረሰኞች ክሶች በተረጋጋ መንገድ እንዲደርሱና በተቀባዮች ይሰራሉ። የመላኪያ ደረሰኞች ክሶች እንዳይጠፉ ያደርጋሉ እና ተቀባዮች በትውልድ ካሉም አንዳንድ ጊዜ እንኳን ክሶች እንዲጠብቁ ያረጋግጣሉ። በዚህ መንገድ የሲስተሞች ታመነኝነትና ተረጋጋነት ይታጠቃሉ።
- Event-Driven አስተዳደር ባህሪዎች
- በቀላሉ የተጋጠሙ ልዩነት (Loose Coupling): አገልግሎቶች እርስ በእርስ ከፍተኛ ልዩነት ይሰራሉ።
- የአሰንክሮን አግኝት: አገልግሎቶች አንድን ሊሆኑ በአሰንክሮን ይነጋግራሉ።
- የማደረግ ትልቅነት (Scalability): ሲስተም በተጨማሪ ነጥቦች ይቀየር ይችላል።
- የተግባራዊ አጥናት (Fault Tolerance): በአንድ አገልግሎት ቀስተ ስራ ሌሎችን ማቅረብ አይችልም።
- የበዓሉ ውስጥ ምላሽ (Real-time Response): ክሶች በውስጥ ጊዜ አግኝት ይችላሉ።
- ቀላል ለማገጃገጥ (Flexibility): አዲስ አሳባት በቀላሉ ሊጨመሩ ይችላሉ እና ያሉት ባህሪዎች በቀላሉ ሊያስተካክሉ ይችላሉ።
ይህ አስተዳደር በተግባራዊ እና ትልቅ ሲስተሞች ውስጥ ትልቅ ብዙ ጥቅሞች ይሰጣል። ሚክሮሰርቪስ አስተዳደር ጋር ተጠቃሚ ስለሆነ አገልግሎቶች መካከል ቀላል እንዲነጋግሩ ያደርጋል እና አንዱ እራሱን በቀላሉ ማደርግ ያቃለማል። ከዚህም በላይ፣ IoT (እቃዎች ኢንተርኔት) መተግበሪያዎች፣ ፋይናንስ ሲስተሞች እና ኢ-ንተርኔት መድረኮች እንደ በዓሉ ውስጥ ውህድ ድርጅት ስለሚያስፈልጉት በእጥረት ይቀዋል።
Event-Driven Architecture በዘመናዊ ሶፍትዌር ልማት ማሰሪያዎች ውስጥ አስፈላጊ ቦታ አለው፣ ለድርጅት የተወሰነ ትብብር ያስጨምራል። በትክክል ተደርጓል ብቻ ሲሆን፣ ሲስተሞች የቶክክል፣ የቀላሉ እና የታመነኝነት ደረጃ እንዲያደርጉ ይደርሳሉ። በሚቀጥለው ክፍል፣ የመላኪያ ደረሰኞች የሲስተሞችን ዝርዝር እና ይህ አስተዳደር የታከለ አካል እንዴት እንደሆን እንመለከታለን።
መልእክት አብራሪ ስርዓቶች ውስጥ መግባት
መልእክት አብራሪ ስርዓቶች፣ Event-Driven Architecture (EDA) አቀማመጥ የስርዓቱ ተመሳሳይ ምናባት ናቸው። እነዚህ ስርዓቶች፣ ከፍተኛ ፍጹም እና የታመነ ተስማሚነትን በመፍጠር የልዩ ውጤት ያመጡ። ዋናው ትኩረት፣ መልእክት አብራሪ በሚልከው አፕሊኬሽን መልእክቱን በቀጥታ ወደ ተቀባይ አፕሊኬሽን አያልክም፣ ነገር ግን በድህረ አጋሪ (message broker) ያቀርባል። በዚህ ምክንያት፣ የሚልከው አፕሊኬሽን ተቀባይ አፕሊኬሽን ከመስመር ላይ እንዳለ ወይም መታወቂያ አለው ወይም መመለሻው መቼ እንደሚመጣ አይውቅ።
| ባህሪ | መግለጫ | ጥቅሞች |
|---|---|---|
| አስንክሮን ግናኘት | አፕሊኬሽኖች ከሌላ አፕሊኬሽን የተለየ መልእክት ይልካሉ እና ይቀበላሉ። | በጣም እናቀርባለንና አመልካችነት መጠን የተጨመረ። |
| የታመነነት | መልእክቶች በደህና ይታያሉ፣ እና እስከሚያቅርቡበት ድረስ አይጠፋም። | የውሂብ ጥፋትን ይከላከላል እና የግናኘት ተጠናቋይነትን ያረጋጋል። |
| መስፋፋት ችሎታ | ስርዓቱ በተጨመረ ችሎታ ውስጥም አፈጻጸሙን ሊጠብቅ ይችላል። | የተጨመረ ተጠቃሚ ቁጥርን እና የውጤት ጥራትን ይደግፋል። |
| እንቅስቃሴ | በተለያዩ ቴክኖሎጂዎች እና ፕላትፎርሞች መካከል የእርስ ቅርብነት አድርግ ያስችላል። | ከልዩ ስርዓቶች ጋር የሚመጣ ብለው ማሰራር ችሎታ። |
መልእክት አብራሪዎች በተለይ በሚክሮሰርቪስ አሽከርካሪ ውስጥ አስፈላጊ ሚና ያጫውቃሉ። በሚክሮሰርቪሶች መካከል ግናኘትን ማስተናገድ፣ ሰርቪሶች በተለየ ሁኔታ ይሰራሉ እና ይተከላሉ። ይህም የስርዓቱን እንቅስቃሴና ፈጠነነት በጠንካራነት ያሳድጋል። ከዚህ ጋር መልእክት አብራሪዎች የስርዓቱን ስህተት አባሳቹነትን ያሳድጋሉ፣ አንድ ሰርቪስ የተጎዳ በሚሆንበት ጊዜ ሌላው ሰርቪስ አይታወቅም። መልእክቶቹ በአብራሪ ይቀመጣሉ እና ተጎዳው ሰርቪስ ሲመለስ እንደገና ይከናወናሉ።
- የመልእክት አብራሪ ስርዓቶች ጥቅሞች
- በአፕሊኬሽኖች መካከል በታላቅ እንቅስቃሴ ልዩነት (loose coupling) ያሳያል።
- ስርዓቶች የመስፋፋት ችሎታን አሳድጋይም ይሆናሉ።
- ስህተት አባሳቹነትን ያሳድጋል።
- አስንክሮን ግናኘትን ይደግፋል።
- የውሂብ ጥፋትን ይከላከላል።
- በውህደባዊ ስርዓቶች ውስጥ ማደራጃን ያሳልጋል።
መልእክት አብራሪዎች የውሂብ ፍሰትን ለመቆጣጠርና ለመስተናገድም የሚረከት ውድቀት ነው። ለምሳሌ በኤ-ቲክስት ድር ላይ፣ የትዕዛዝ ሂደት፣ የቅርፀ ዝርዝር ዘዴና የተላለፉ የታደጁ የተዛወሩ ውሂብ ደብዳቤዎች እንደ ተመጣጣኝ በመልእክት አብራሪዎች በአስንክሮን መንገድ ይከናወናሉ። በዚህ ምክንያት፣ ተጠቃሚዎች እንደ ትዕዛዙ እርስ በርስ አይቆዩም፣ ስርዓቱም በኋላ ሂደቶቹን ያቅርባል። ይህም የተጠቃሚ ተሞክሮን በጅምላ ያሳድጋል። ከዚህ ጋር መልእክት አብራሪዎች ከተለያዩ ምንጮች የሚመጡ ውሂብን በማቀናበር፣ የውሂብ ትክክልነትና የሪፖርት ሂደቶችንም ያሳስባል።
የመልእክት አብራሪ ስርዓቶች የታመነነት በጣም አስፈላጊ ነው። እነዚህ ስርዓቶች መልእክቶች አይጠፋም በሚለው የልዩ መንገዶችን ይጠቀማሉ። ለምሳሌ መልእክቶቹ በዲስክ ላይ ይታያሉ፣ እና አንዳንድ ጊዜ ከዚህ በላይ ቅጂዎች ይደረጋሉ። ድጋፍ ይደረጋል የተረጋግጠው የማቅረብ ፍጹምነት ለመረዳት፣ የአልችሉ ግናኘቶችን ወደገና አካል ይይዛሉ። በዚህ መንገድ፣ የስርዓቱን ትክክለኛነትና ግናኘትን ያረጋጋል። መልእክት አብራሪዎች በዘመናዊ ሶፍትዌር አሽከርካሪዎች ውስጥ አስፈላጊ ሚና አለው፣ አፕሊኬሽኖች የታመነ ፍጥነት፣ የተቀናበለነትና የመስፋፋትን ችሎታ ያበረታታሉ።
ለምን Event-Driven Mimarisi ትመርጣለህ?
Event-Driven Architecture (EDA) በዘመናዊ የሶፍትዌር ልማት ዓለም ውስጥ የተጨማሪ ዝቅተኛ ታዋቂነት እየተጨመረ ይገኛል። ይህን ማህበረሰብ ለሚያደርገው ዋና ምክንያት የዚህ ማህደር የሚሰጠው ተስማሚነት፣ የመጠን ምቹነት እና ፈጣነት ያሉት ጥቅሞች ናቸው። የሞኖሊትክ አፕሊኬሽኖች ውስታዊ ውስብስብነትና የአቀራረብ ችግኝነት የሚታየው ሲሆን፣ የክስተት ተመሳሳሊ ማህደር ስርዓቶቹን በተያያዥ በርካታ፣ ሌላን በቀላሉ አይታሰቡም እና ይህም የሚታየውን ጥቅሞች እና በተቻለ ጉዳይ ተሞክሮ የሚገኙ ቅንጅቶችን ይሰጣል። በኢሱን ባለመግኘት በስራ ሂደቶች ውስጥ የሚከሰቱ ለውጦችን በፍጥነት ለማጣራትና በተለያይ ስርዓቶች መካከል የሚደርሰውን የውስብስብ የውህድ ስርዓት የተሸከሙ ጥቅሞች ከፍተኛ ሆነው EDA’ን አብረው የተመሰጠ አማራጭ ያደርጉት ይሆናል።
Event-Driven Architecture‘ የሚሰጠውን ጥቅሞች ለማስተዋል በተለምዶ የሚሰጣቸውን ማህደር በእያንዳንዱ አይነት ማህደር የሚፈጥሩበትን ልዩነት ማየት አስፈላጊ ነው። ለምሳሌ በኢሌክትሮኒክ ንግድ አፕሊኬሽን ውስጥ ትእዛዝ ሲሰጥ የሚነሱ ተያያዥ ሂደቶችን አስቡ፤ የክፍያ ማረጋገጫ፣ የእቃ አዳኝ ቅዱም፣ የቸክካል ማሳወቂያ እና የተያያዥ ሂደቶች። በተለምዶ አህዮ ማህደረ በዚህ ሂደት ሂደቶቹ በጣም የተጣጣሙ ሊሆኑ ይችላሉ፣ EDA’ው ውስጥ እያንዳንዱ የትእዛዝ ተያያዥ ችግኝና (ትእዛዝ ሲሰጥ) በተገናኘ አገልጋዮች በበይነገም ይታያል። ይህም በአንድ አገልጋይ የተረጋጋ ችግር ሌላን አይዳካም እና በሁሉም ስርዓት ከፍተኛ ታማኝነት ይሆናል።
- ለመምረጥ የሚሆኑ አሳሳቢዎች
- ከፍተኛ የምቹነት ዲሴንትራልስዩ: እያንዳንዱ አገልጋይ በበይነገም ይምዋባል፣ ይህም ማህደረቱን በተቻለ፣ አገልጋዮች ከፍተኛ ተጠቃሚነት እንዲቀርብ ያያው።
- በፈጣነት የተጨበት ችሎታ: አዳዲስ ባህሪያት ማከናወን ወይም የነበሩትን ባህሪያት ማሻሻል በቀላሉ ይቻላል፣ ይህም ማህደረቱን መካከለኛ ልውውጦች እንዲቀርቡ የተሶናወት ያያው።
- የታማኝነት ከፍተኛ ጥራት: በአንድ አገልጋይ የተነሳ ችግር ሌላን አገልጋዮች አይዳካም፣ ይህም ትምክህት በሁሉም ስርዓት ላይ ከፍተኛ የስራ ጊዜ ያስጨመረዋል።
- የባህሪ በቀጠና ጊዜ ማስተካከው: ክስተቶች ድንገት ይቀረቡ፣ ይህም ስርዓቶቹ በቀጠና ጊዜ ሊስተላለፉ ያያው።
- የልዩነት የማቀራበት ችሎታ: በተለያይ ቴክኖሎጂያትና ፓላቶፎርምዎች የሚነሱ አገልጋዮች በቀላሉ ይቀረቡባቸዋል።
- የተመሳሳል ወጪዎች: ትምክህቱን በቀና የሚገናኘውና የልማት ሂደቶች በፍጥነት እንደሚከናወኑ ከፍተኛ የወጪ ቅናሽ ይሰጣል።
የታች ያለው ሰንጠረዥ Event-Driven Architecture‘ የተለያዩ የምርጫ ጥቅሞችን እና ከተለመዱ አፍላዎች ጋር የሚደርሰውን ግንዛቤ ያቀርባል፦
| ባህሪ | Event-Driven Architecture | ተለመዱ ማህደረቶች |
|---|---|---|
| ግንኙነት | አስተላላሊ | ታጣሚ |
| የምቹነት ዲሴንትራልስዩ | ከፍተኛ | ዝቅተኛ |
| ፈጣነት | ከፍተኛ | ዝቅተኛ |
| ታማኝነት | ከፍተኛ | ዝቅተኛ |
| በቀጠና ጊዜ ማስተካከው | አዎ | ገደብ ያለው |
Event-Driven Architecture የታዋቂ ዘመናዊ አፕሊኬሽኖች ተደርሶ የሚመከረውን ችግኝኑን ያወጣል። በዝቅተኛ ወጪ፣ የምቹነት፣ ፈጣነትና ታማኝነት እንደሚያስጨመሩ ምንጮች የጨምሮ በተወዳዳሪነት የተለያዩ የተጠቃሚ አጠቃቀም ይሰጣል። ነገር ግን፣ የዚህ ማህደር ውስታዊ ውስብስብነትና ማስተዳደር ችግኝነት ማስታወቅ ይኖርበታል። በትክክለኛ መሣሪያዎችና የስርዓት ዴዲያቶች መጠቀም ላይ፣ Event-Driven Architecture አፕሊኬሽኖችዎን በተስማሚነት፣ የምቹነት፣ እና የታማኝነት ችሎታ ቀልጣፋ እንዲያደርጉ ይችላሉ።
Event-Driven Architecture ፍሉይነትና መጠንአይነት
Event-Driven Architecture (EDA) በዘመናዊ የሶፍትዌር እድገት ሂደቶች ውስጥ እየሸለቀ የሚታወቀ ተግባራዊ አቀማመጥ ነው። ይህ አስተዳደር በሲስተም አካላት በክስተቶች በኩል እንዲሰራ በማድረግ የሚያሳደገው የተለዋዋጭ፣ የሚከናወን፣ የሚሰፋና ዘንድ የሚሆን መተግበሪያ ማሳደግ ነው። ነገር ግን፣ እንደ ማንኛውም ቴክኖሎጂና፣ EDA ራሱም ፍሉይነታቱና መጠንአይነታቱን አለው። በዚህ ክፍል ፣ በEDA የሚሰጡት ጥቅሞችና የሚያገኙት እንደሆነ ችግኞችን በጥልቅ በሆነ መልኩ እንመርምር።
የEDA ዋና መሠረተ ልማዶች አንዱ ፣ ሰርቪሶቹ ከእርስዎ በርትተኛ ልማድ እንዲሰሩ ነው። ይህም በሲስተም ውስጥ አንድ ሰርቪስ ከተሰናከለ ሌሎቹ ሰርቪሶች እንዳልተጋለጡ ያደርገዋል። ከዚህ በስተቀር፣ አዲስ ባህሪያት በመጨመር ወይም ያሉትን ባህሪያት በማደስ ላይ፣ ሌሎቹ ሰርቪሶችን እንደገና በማስጀመር ፈልገው አይደለም። ይህም የሶፍትዌር እድገትን የሚቃና አድርጎ፣ የሲስተም አጠቃላይ የቆይታን ያሳደጋል።
| መወዳደሪያ | Event-Driven Architecture | የተለመደ ፍርና |
|---|---|---|
| ተያያዥነት | ክብደት የለውም ተያያዥነት | ከተዛባ ተያያዥነት |
| እንደ ፍክክል ኃይል | ከፍተኛ ክክክል ኃይል | የተወሰነ እንደ ፍክክል ኃይል |
| ተለዋዋጭነት | ከፍተኛ ተለዋዋጭነት | ዝቅተኛ ተለዋዋጭነት |
| ውስብስብነት | የሚጨምር ውስብስብነት | ዝቅተኛ ውስብስብነት |
አሁን፣ Event-Driven Architecture የሚሰጠውን ፍሉይነትና ማሕበራዊ መጠንአይነታቱን በደንብ እንመርምር። ይህ እየታየ፣ EDAን በፕሮጀክቶችዎ ውስጥ መተግበር ይፈቀዱ ወይም አይፈቀዱ በዚህ ላይ ንቁ ውሳኔ ማድረግ የሚረዳችሁ ይሆናል።
ፍሉይነታቱ
Event-Driven Architecture በጣም የታወቀው ፍሉይነታቱ አንዱ፣ ሲስተሞችን የተለዋዋጭና የሚከናወንነት የሚያስችል ግንዛቤ ነው። የክስተት ትንሳፋፋ አካላት በተለዋዋጭነት እንዲንቀሳቀሱና እንዲዘምኑ ይረዳቸዋል። ይህም ቶሎ የሚበዛና ውስብስብ ሲስተሞችን በቀላሉ በመቆጣጠርና በማደስ ያስችላል።
- ክብደት የለውም ተያያዥነት: አካላት የእርስዎ በርትተኛ ይሰራሉ፣ ይህም ሲስተም የተደጋጋሚነትን ያደርጋል።
- እንደ ፍክክል ኃይል: የሲስተም አካላት በርትተኛ ልማድ ሊዘምኑ ይችላሉ፣ ይህም የምንጭ ተጠቃሚነትን የታተበ ያደርጋል።
- የተለዋዋጭነት: አዲስ ባህሪያትን በመጨመርና ያሉትን ባህሪያትን በማደስ በፍጥነትና በቀላሉ ይሰራዋል።
- በትክክል በዕድሳት የውሂብ አደራ: ክስተቶች ወደ ትክክል በግዜ ይሰራሉ፣ ይህም ለበዕድሳት ስራዎች ፍጹም ሆኗል።
- በቁጥጥር ላይ ይቆያል: አንድ መሰናከል ሰርቪስ ሌሎቹን አይሰናከልም፣ ይህም አጠቃላይ የሲስተም ቆሚነትን ያሳደጋል።
መጠንአይነታቱ
የተለዋዋጭነትና የሚያደርጉ ልዩ ጥቅሞች ቢኖሩ፣ Event-Driven Architecture ምንጭ ያላቸው መጠንአይነታት አሉ። በበዛች ውስብስብ ሲስተሞች ውስጥ የክስተት አደራና ትንሳፋፋ መከታተል ይበታተናል። የበርትተኛ ችግኞችን አየል ስራዎችም ውስብስብ አላቸው። ስለዚህ፣ EDAን ሲጠቀሙ በጥንቃቄ መያዘና ቱንክ መሳሪያዎችን ማጠቃለያ አስፈላጊ ነው።
አንድ ሌላ አስፈላጊ መጠንአይነት የክስተቶች ቅደም-ተከተል መያዝ አይደለም። በአንዳንድ ሁኔታዎች፣ ክስተቶችን በቅድመ ተከተል መሰራት ያስፈልጋል። በዚህ ሁኔታ፣ ተጨማሪ የሚያደርጉ መሣሪያዎችን በመጠቀም ቅድመ-ተከተል ያድርጉት ይችላሉ። ካልተተከለ፣ ያልተገኘ ውጤቶች ሊገኙ ይችላሉ።
የመልእክት ተሰባሰብ አይነቶች እና የእንቅስቃሴ መስክዎች
Event-Driven Architecture (ክስተት ጋር የታያቸው ሠርግ) ዓለም ውስጥ፣ የመልእክት ተሰባሰቦች በተለያዩ ስርዓቶች እና አገልግሎቶች መካከል የተአምራት እና የሚያስተላለፉ የእንቅስቃሴ ዓይነት አግናኛ ዕድል ይሰጣሉ። በዚህ ማዕከላዊ በስርዓት ውስጥ፣ የመልእክት ተሰባሰቦች ልዩ የእንቅስቃሴዎችን (events) ከመንገዶች ወደ ተቀባዮች ለማስተላለፍ ይጠቀሙበታል። ለተለያዩ እና የብዙ የአጠቃቀም ሴኖተሪዎች ምቹ የሆኑ በተለያዩ ስርዓቶች ያሉ የመልእክት ተሰባሰቦች አሉ። በዚህ ክፍል፣ ከሁሉም የታወቀው የመልእክት ተሰባሰብ አይነቶችን እና የእነዚህ የተለመዱ የተጠቃሚ መስክዎችን እንመለከታለን።
የመልእክት ተሰባሰቦች፣ አሰንክሮን ግናናኘነትን በመደገፍ ስርዓቶች እንዲበረታና እንዲቆም አድርጋቸዋል። አንድ አገልግሎት ክስተት ሲያመነው፣ ይህን ክስተት ወደ መልእክት ተሰባሰብ ይላካል፣ የተቀባዮች አገልግሎቶችም ከዚህ ተሰባሰብ ውስጥ መልእክቱን ይቀበላሉ እና ይሰራሉ። ይህ ሂደት አገልግሎቶቹ በቀጥታ አሳየቦታ ያልተገናኙ ይግናኛሉ። ከዚህ በታች የታወቀውን የመልእክት ተሰባሰብ አይነቶችን መልከት ትችላለህ፦
- የታወቀው የመልእክት ተሰባሰብ አይነቶች
- RabbitMQ: ክፍት ምንጭ፣ ገጽታ በላይ የታወቀ መልእክት ተሰባሰብ መፍትሄ ነው፣ እና አስደናቂ ማህበረሰብ ያለው።
- Kafka: ለሙሉ ህመት የሆኑ የውሂብ ስፍራዎች ሲያደርገው የታዘዘ ሰፊ ተዘዋዋሪ መልእክት ፈልቋው አውድ ይሁን።
- ActiveMQ: ብዙ ፕሮቶኮሎችን የሚደግፍ፣ በJava የተገነባ መልእክት ተሰባሰብ ዓይነት ነው።
- Redis: ብዙ፣ በምስተባበል ምንጭ ጊዜ የሚጠቀም ቢሆንም፣ ቀላል የመልእክት ተሰባሰብ ድርድር ይሰጣል።
- Amazon SQS: በAmazon Web Services (AWS) የቀረበ ሊገመድ የሚችልና የተቻቻለ የመልእክት ተሰባሰብ አገልግሎት ነው።
በታች ባለው ታቦል፣ ልዩ የመልእክት ተሰባሰብ ስርዓቶችን መአከባቢነታቸውን እና ምጣኔዎችን የሚያሳይ ትምህርት ታቦል አለ። ይህ ታቦል ለፕሮጀክትዎ ተስተናጋጅ የመልእክት ተሰባሰብ መርጠት እንዲችሉ ይረዳዎታል።
| የመልእክት ተሰባሰብ ስርዓት | መአከባቢነት | የተደገፋ ፕሮቶኮሎች | የተለመዱ የአጠቃቀም መስክዎች |
|---|---|---|---|
| RabbitMQ | ገጽታ በላይ መርማሪነት፣ AMQP ፕሮቶኮል፣ ሰፊ የማህበረሰብ ድጋፍ | AMQP, MQTT, STOMP | ማዕከላዊ አገልግሎቶች፣ ተግባራዊ ተሰባሰቦች፣ ክስተት ጋር የታያቸው ስርዓቶች |
| Kafka | ሙሉ ህመት የውሂብ ፈልቅ፣ የተዘዋዋሪ መዋቅር፣ የህብረት አሟግ | Kafka ፕሮቶኮል | ውሂብ ፍሉጥ አሰሳ፣ ቅድሚያ ቁልፍ ማስተናገድ፣ ክስተት ቅናት |
| ActiveMQ | የብዙ ፕሮቶኮሎች ድጋፍ፣ JMS ተስተናጋጅነት | AMQP, MQTT, STOMP, JMS, OpenWire | የፋይዎች ውስጥ አባላት ያለው አንዳንድ የተወሰኑ አገልግሎቶች፣በአሮፍ ያለውን መስዋዕት ስርዓቶች ጋር የሚዛመድ |
| Amazon SQS | ሊገመድ የሚችል፣ የተቻቻለ አገልግሎት፣ ቀላል አስተናጋጅነት | HTTP, AWS SDK | የተዘዋዋሪ ስርዓቶች፣ የመሰረታዊ መተግበሪያዎች፣ ተግባራዊ ተሰባሰብ |
የመልእክት ተሰባሰብ መምረጥ በመተግበሪያዎ የሚያስፈልጉት፣ የአስተሳሰብ ሽፋን ፍላጎትዎች እና ያለዎት መስሪያ እቅድ ይመዘዋል። ለምሳሌ፣ በጣም ስፋት ላይ የውሂብ ፍሉጥ እንዲደርስበት የሚፈልጉ መተግበሪያ ካለዎት Kafka ተስተናጋጅ ሊሆን ይችላል፤ ቀጣዩ የተበለየ የፕሮቶኮል ድጋፍ የሚፈልጉት መተግበሪያ ከሆነ RabbitMQ ወይም ActiveMQ ይልቅ ትልቅ መረጃ ይሁናል። ትክክለኛውን የመልእክት ተሰባሰብ ስርዓት ምረጣችሁ የመተግበሪያዎን ውጤትና የአሳየቦታን ብዙ ሀቅ ማድረግ ይችላል።
RabbitMQ
RabbitMQ ክፍት ምንጭና ከሁሉም ታዋቂ የመልእክት ተሰባሰብ ስርዓቶች አንዱ ነው። AMQP (Advanced Message Queuing Protocol) ፕሮቶኮልን ይደግፋልና የተለያዩ ግንና ከውቅ የማስተናጋጅነትን መንገዶች ይሰጣል። በማዕከላዊ አገልግሎት ሠርግ ይሰጠዋልና አበቅቶ አስተላለፍ የሚፈልጉ የአውት አስፈላጊ ማስተናጋጅነቶችን ይከፍላል።
Kafka
Kafka በበላይ ህመት የውሂብ ፍሉጥ ስራ የተዘዋዋሪ መልእክት ተሰባሰብ ዓይነት ለመሆን ታዘዘ። ውሂብን ለጊዜ ማህበረሰብ ይቆራረጣል እና በአንድ ጊዜ ከተቀባዮች በላይ ውሂብ ፍሉጥን ይያዙ። ቁልፍ የውሂብ አንደኛ ትንታኔ፣ ቅድሚያ ሁነታ ማስተናገድ እና ክስተት ሳይክዎች የሚጠቀሙበት ተስተናጋጅ ነው።
ActiveMQ
ActiveMQ በJava ላይ የተመሰረተ እና በርካታ ፕሮቶኮሎች የሚደገፉ የመልዕክት ቅድሚያ ስርዓት ነው። በJMS (Java Message Service) ተስማሚነት ምክንያት የJava መተግበሪያዎች ጋር ቀላል እና በቅርብ የሚተዳደሩ እንዲሆኑ ያደርጋል። በኩርንያል ሲስተም የኢንተግሬሽን ፕሮጀክቶች እና በቅናት የተሟሟ ስርዓቶች ላይ ማቀናበል ያስፈልጋል፣ ስለዚህ እጅግ ብዙ ጊዜ ይመረጣል።
የመልዕክት ቅድሚያ ስርዓቶች በዘመናዊ የሶፍትዌር ማዕከላዊነት ውስጥ አስፈላጊ ሚና ያጋጠማሉ። የመሟሟችሁን ፈለግን የሚያሟሟ የመልዕክት ቅድሚያ ስርዓት በመምረጥ፣ የመተግበሪያዎቻችሁን አፈጻጸም፣ ተገላጋሊነት እና ታመናቸውን በግልፅ ሁኔታ ማሳደግ ትችላላችሁ።
በአግባብ እና በተደረገ ቦታ የተነሳ ስርዓት ልምዶች፣ Event-Driven Architecture

Event-Driven Architecture (EDA) በዘመናዊ የሶፍትዌር ልምዶች ማቅረብ ስርዓት ላይ ከቅድሚያ ጊዜ በላይ አክብሮት ያገናው። ይህ ማዕከላዊ የስርዓት ተሳትፎ አቅራቢ በአካላት በክስተቶች በሚነሳሳው እና በክስተት የሚስጥ በመድረሻዎች የተላከ ያደርጋል፣ ሲስተሞች ለተገላጋጋዊነት፣ ለተስተካከልነት፣ ለተገደብነት ያደርጋል። ትዕዛዞችን እና አስፈላጊ የማስታወቂያ ምሳሌዎችን መረዳት ጠቃሚ ነው፣ ነገር ግን በእውነት ዓለም የተፈጠሩ ምሳሌዎች እና የስራ ውጤቶች በEDA በሚተካየው በቸኩለ ገደብ የሚነሱትን አጠቃቀም እንዲበሉ ያግዳሉ። በዚህ ክፍል በሚስተዋል ዘርፎች ላይ EDA በመልኩ የሚተካየውን በተደጋጋሚ ምሳሌዎች እና ውጤቶች እንዴት እንደሚተገበር እናየዋለን።
Event-Driven Architecture የተጠቃሚ ዘርፎች በጣም ሰፊ ነው፣ በተለያዩ የዓለም አቀፍ ስራዎች በሚጠቀሙት የመተግበሪያ አይነቶች ውስጥ ሊገኝ ይችላል። በተለይም በከፍተኛ ትራፊክ ያለውና በቀደም በተቀየረ መፈለግ ያላት ስርዓት ላይ EDA የሚያሟሟው በግልፅ ነው። እነዚህ ምሳሌዎች ናቸው፦
- ኢ-ንግድ: ትዕዛዝ አስተዳደር፣ የእቃ ቅናት እና የደንበኞች ማስታወቂያዎች።
- ፋይናንስ: በቀላል ቅድሚያ የሚደርስ የግንኙነት ተከታታይ፣ የቅብዐት ማመስከርና የሪስክ አስተዳደር።
- ጤና: የታከለ የሕክምና ችሎታለት መዝገቦችን ዝርዝር፣ ከህክምና አሳሳበ የትክክለኛ መረጃ ማከል፣ የአስቸኳይ ምሳሌዎች እና መረጃዎች።
- IoT (የነገሩ ኢንተርኔት): የሴንሰር መረጃዎችን ማነት፣ የመሳሪያ ቁጥጥር እና የብሔራዊ ቤት ስርዓት።
- ጨዋታ ልምድ: የተጫዋቾች ወቅታዊ ተግባራት፣ የጨዋታ ምሳሌዎች እና በእውነት ጊዜ የምሳሌ ዝርዝር።
በታች የተቀመጠው አሰስጠኝ ሰነድ በተለያዩ ዘርፎች Event-Driven Architecture በሚተገበር ስርዓቶች ምሳሌዎችን እና የዚህ ስርዓት የሚሰጠውን ውጤቶች ታየዋለት።
| ዘርፍ | የመተግበሪያ ምሳሌ | የሚሰጠው አግኝታዊ አገዳዶች |
|---|---|---|
| ኢ-ንግድ | ትዕዛዝ ፍጥነት በማስፈን | በቅድሚያ ማስታወቂያዎች፣ ፍጥነት የእቃ ቅናት ዝርዝር፣ የተሻሻለ የደንበኛ ልምድ |
| ፋይናንስ | በእውነት ጊዜ የግንኙነት ቅድሚያ | የቅብዐት ማመስከር፣ በቅድሚያ እርዳታ፣ የታመነ አሳሳበ |
| ጤና | የሕክምና መዝገቦችን ማዘመን | የመረጃ በስተትነት፣ ቅድሚያ አግኝታዊነት፣ የተሻሻለ የሕክምና ካህዳይ |
| IoT | መረጃ ሴንሰርን ማነት | በቅድሚያ ትንተኛን አነሳሳዎች፣ አውቶማቲክ ቅድሚያዎች፣ የማዘናጋት አግኝት ስርዓት |
እነዚህ ምሳሌዎች Event-Driven Architecture እንደት በተለያዩ ዘርፎች የሚያሟሟ እና በተስፋላበው ተግባር በተሻሻለ አገዳዎች የሚያበረታታ ስርዓት እንደሆነ ያሳያሉ። እያንዳንዱ ምሳሌ ስርዓቶቹ በቅድሚያ ያስተጋብራል፣ በተገላጋጋዊነት ይስተካከላሉ፣ በተስተካከልነት እና በተስፋይ ገደብ አገዳዎች የታበረዋል። አሁን ደግሞ በእውነት ዓለም የተፈጠሩ ምሳሌዎች እና የስራ ውጤቶችን በቅርብ እንመለከት።
የእውነት ዓለም ምሳሌዎች
ብዙ ትልቅ ድርጅቶች Event-Driven Architecture በመጠቀም የንግድ ሂደታቸውን ኖርታዊነት አስመጡ እና የተስተካከለ ውድድርን በማግኘት ተሸከሙ። ለምሳሌ፣ አንድ ሚያነጋግረው የቅርበት ንግድ ኢምፕስ የማህደረ እቃዎቹን በእውነት ጊዜ በመቅዳት የጥያቄዎቹን በተሻሻለ እንዲያሟሟ አደረገ። በዚህ እንደሆነ የምሳሌ እቃዎች በቅድሚያ አጉራ ሲፈጸሙ ደንበኛ ህልው አመጣ።
ታላቅ ስኬት ታሪኮች
በፋይናንስ ክፍል፣ አንድ ባንክ የማሳገብ ስርዓቱን Event-Driven Architecture ላይ በመገንባት ጊዜ፣ ምጥጥ የሆኑ ግብዓቶችን ወደፊት በአንፃፃፋዊነት የሚታዩና የሚከሱ ችሎታውን በጣም አሳታችው። በዚህ መንገድ፣ የደንበኞቹ እና የባንኩ ፋይናንሱን ደህንነት ማሻሻል ተቻለ። በሌላ ምሳሌ፣ አንድ የሎጅስቲክስ ኩባንያ የካርጎ እንቅስቃሴን በEDA በመያዣ ለደንበኞቹ በውክልና ውስጥ አድማዎችን እና አስተዳደሩን በግልፅነት ማሻሻል ችሏል።
እነዚህ የስኬት ታሪኮች Event-Driven Architecture የኤሲያን ጥናት ብቻ ሳይሆን፣ በተደናጉ እና በሥራ ማሳሰቢያ ላይም የተስተናገዱ ጥቅሞችን የሚሳየውን የተገለጠ ምሳሌዎች ናቸው። በትክክል ከተደረገ ጊዜ፣ EDA ስርዓቶችዎን የበለጠ ብልህ፣ ፈጣን እና ታመኙ አደረጋችሁ ይችላሉ።
በቀየር ሂደት ወቅት የሚጠበቁ ነገሮች
Event-Driven Architecture (EDA) ወደሚለው በመቀየር ጊዜ የተደጋጋሚ ዕቅድ ማቅረብና የደረጃ ማውጣት ዘዴ መምረጥ ለተስተናጋጅ ዕቅድ ግምጃ አስፈላጊ ነው። ልዩ የቆዩ ስርዓትና የሥራ ሂደቶችን በዝርዝር በመተከል የሚያስችሉትን ክፍሎች ወደ event-driven ማስተናገድ ልዩነትና የሚገባውን በተሳሳተ ሂደት መውጣትን ማወቅ አስፈላጊ ነው። በዚህ ሂደት፣ የውሂብ መጠንማማትን ለማኑነት እና የአሰማማት ስህተቶችን ለማሳካት ዘዴዎችን ማቆም በጣም አስፈላጊ ነው።
የEDA ወደ ስርዓት ላይ በፍጹም ሂደት ይከናወናልና የሚያቀርቡ ችግሮችን በቅድሚያ መገመትና አስተዋጽኦን ማድረግ ለሂደቱ በተስፋ ከሆነ መንገድ የሚያደርጉ ያለዎትን ችግርን ከቅድሚያ ያገለግላል። ለምሳሌ፣ የመልእክት ቅድሚያ ስርዓቶች በተደረገ ቅርጸ አቀራረብ ብኩ አይተደረግም ከሆነ መልእክት ማጠፋት ወይም አብዛኛውን ማስደግ የሚችሉ ይሆናሉ። ለዚህ ምክንያት፣ ስርዓቱን ማዕከላዊ የሚገኘውን የፈተና አየትና የአደጋ አድማ ማቆም ችግሮቹን በጊዜ ቀደም በመረዳት ያደርጋል። ከዚህም በሻጨረ፣ የደህንነት አድማዎችን የወንጀል አምጣዎችና ለተቆጣጣሪ ዳያዎች መሰረታዊ ቁጥጥር ማድረግዎት ለተስፋ የሚያበረታታው ነው።
| ደረጃ | መግለጫ | የሚደርሱ እሴቶች |
|---|---|---|
| ትንተና | የሚገኘው የቆይ ስርዓትና ሥራ ሂደቶችን በዝርዝር መረዳት። | የተቀመጡትን ስፋት መውሰድ፣ ቀላል ቴክኖሎጅዎች መምረጥ። |
| ዕቅድ ማዘጋጀት | የቀየር እሴቶችና የአድማ ሜክት፣ የሚያመቻቸውን ተግባራት መቁጠር። | የደረጃዎችን ማወቅ፣ ሀብቶችን ማዘጋጀት። |
| አተገባበር | Event-driven ማዕከላዊነስ በአዋቂነት ማድረግ። | በፈተና አካባቢ ሞክር፣ ቀደም የሚሆነውን እየቀደሙ መቅረፅ። |
| ማሻሻል | የስርዓቱን ቅርብ እና ደህንነት ማሻሻል። | ግንዛቤ ማቅረብ፣ ግልጽ ማሻሻል ተግባራትን ማካተት። |
በቀየር ሂደት ውስጥ የቡድኑ ማስተላለፊያ ትልቅ ክፍል ይወጣል። በEvent-driven ማቅረብና የመልእክት ቅድሚያ ስርዓቶች በቂ ማውጣት ካልቻሉ መተከል ቸግኝና አይገባም ወይም መስክ ያቀርባሉ። ለዚህም የዲያሎት ቡድኑን በቂ ስርዓት በመስተላለፊያና በቅንጅት ማድረግ የተስፋ ስርዓት የመረጃ ማእከላዊነስ ማድረግ ከባድ አሰፋፋፋ። ከዚህም በሻጨረ፣ በቀየር ሂደት ማስውቅና ጫናን በቅድሚያ መወደድ የወደፊት ፕሮጀክቶች ለስፋት ማንገባባት ይሆናል።
ቀየር ሂደቱን በትንሹ ምሳሌዎች መቃኝና በእያንዳንዱ ደረጃ ግንዛቤ መቀበል ችግሮችን ለመጠበቅ ይችላል። ትልቁና በውጣዊ ስርዓት በአንድ ጊዜ የevent-driven ማእከላዊነስ ማስተላለፊያ ከሆነው በስተቀር፣ ትንሽና የሚቆጣጠሩ ክፍሎች በተለየ አዳዲስ እንዴት እንደሚቀርቡና በቀድሞው ማዳበሪያቸው ማድረግ ማስኪያል የሚያደርጋሉ። በዚህ መንገድ፣ ችግሮችን በቀድሞ ቀደም ማግኘት እና አቅምዎትን በተቆጣጣሪ መንገድ መቆናኘት ይችላሉ።
- የቀየር የደረጃ የመወዳደር እሴቶች
- ጥናቱ የቆዩ ስርዓትና ሥራ ሂደቶችን በዝርዝር መረዳት።
- የevent-driven ማእከላዊነስ ውስጥ ምሳሌዎችን መወዳደር።
- የመልእክት ቅድሚያ ስርዓትና ሌሎች ቴክኖሎጅዎች ምረጥ።
- የቀየር እሴቶችና የአድማ ሜክት መዘጋጀት።
- ማዳበሪያ አተገባበርና የፈተና ሂደቶች አስቀድሞ መተካት።
- የቡድኑ ማስተላለፊያና መንግስት ማውጣት።
- የቅርብ እና ማሻሻል ማረጋገጫ።
መልእክት ተደራሽ ስርዓቶች ለማድረግ በጥሩ መንገዶች
Event-Driven Architecture (EDA) በመጠቀም ጊዜ ከመልእክት ተደራሽ ስርዓቶች የተሻለ ትርፍ ለመጨምር ሊታወቁ የሚገባው ብዙ አስፈላጊ ነገሮች አሉ። እነዚህ መተግበሪያዎች የስርዓቱን አፈጻጸም እንዲበረታ፣ የታመነነት እንዲሁም እንዲቀዳድ ያደርጉ በጣም አስፈላጊ ናቸው። በትክክለኛ ስትራቴጂዎች መልእክት ተደራሾች የመተግበሪያዎ አስፈላጊ እና በሚያንስ የሚሰራ አካል ሊሆኑ ይችላሉ።
| በጥሩ መንገድ መተግበሪያ | መግለጫ | ጥቅሞች |
|---|---|---|
| የመልእክት መጠንን ማሻሻያ | የመልእክቶችን መጠን በአነስተኛ ያስቀርበው አፈጻጸምን ያበረታል። | ፈጣን ማስተላለፊያ፣ አነስተኛ ባንድዊድ ጥቅም |
| ተገቢ ተደራሽ መምረጥ | ለውስጥ ፍላጎቶዎች ተስማሚ የተደራሽ አይነት (FIFO, ቅድሚያ) ይምረጡ። | የዕድም ጉባኤ ጥቅም፣ ቅድሚያ ያላቸው እጥረቶች በፈጣን ይፈጸማሉ |
| የተጉዳድ አስተካካይነትና የእንደገና ሞክር | እንደገና ሞክሮችን ለመቀጠል እና ተጉዳዶችን ለማሳወቅ ሂደቶችን ያስተካካቹ። | የውሂብ አጣብነት እንዳይፈጸም፣ የጥሩ ውስጥ ተመንክልነት ናቸው |
| እንቅስቃሴን መከታተልና ወደ ምእመናዊ ማስገኛ | የተደራሽ አፈጻጸምን ያስተካተት፣ ሂደቶችን ወደ ማስገኛ ይወስዱ። | ፈጣን ጉዳይ መወያየት፣ የአፈጻጸም ትንተና |
የመልእክት ተደራሽ ስርዓቶች ውጤት በትክክለኛ ደረጃ የተዘጋጁ እና የተጠባበቁ ስርዓቶች ላይ የተያያዘ ነው። ለምሳሌ፣ መልእክትን በትክክል መሰርዓዊነትና በትክክል አከፋፋፉ የውሂብ ቅንነትን ሲጠብቅ አፈጻጸምንም ያሳድጋል። እንዲሁም የተደራሽ አቅምን የመከታተልና በአስፈላጊ ጊዜ ማሳሰቢያ የተጨባበሩ ክብደቶቸን ያከላከላሉ፣ ስርዓቶችንም በቋሚነትና በመልካምነት አፈጻጸም ያመራሉ።
አመራረት ለሚሰጥበት ምክሮች
- የመልእክት ሥሩ ይሰጥ: ለመልእክቶችዎ ግልጽና ጠንካራ የመልእክት ሥሩ ይግለጹ፣ እንዲሁም በበለጠ አገልጋዮች መካከል ጥምቀትን ያበረታሉ።
- TTL (Time-To-Live) ይጠቀሙ: መልእክት በተደራሽ ውስጥ ለምን ጊዜ እንደሚቆይ ይቆሙ፣ አቅሞችንና የግብዓተ ነገሩን ያከላከሉ።
- Dead Letter Queue (DLQ) ያዋቅሩ: የማይተዋወቅ መልእክቶችን የተቀየሩ ተደራሾች ውስጥ በተናጋጅ መጠጥ ያቅርቡ፣ ስለሚጸለቱት ተጉዳዶች በምክር እና በማሸነፍ በመያዣም አትችሉ።
- የመልእክት ቅድሚያ ያስፈልጉ: በጠናኸል መልእክቶችን ቅድሚያ ስለሚተዋወቁ፣ ጠቃላላ ሂደቶች በሰዓት ውይይቱ ይፈጸማሉ።
- አሰንክሮን መስተላለፊያ ይደግፉ: አገልጋዮች መካከል መስተላለፊያዎችን አሰንክሮን በማድረግ፣ አፈጻጸምን ያበረታሉ፣ ተመክሮችንም ያቅርቡ።
- የ ደንቦች መከተል ይወጡ: ወደ መልእክት ተደራሽ ስርዓቶች መግባትን በደንቢ ያስተካቹ፣ የውሂብ ግድያንና ቅድሚያን ያስተካይሉ።
ደንቦችም ታላቅ፣ ማይተብብም አካል ናቸው። በመልእክት ተደራሽ ስርዓቶች ውስጥ ዘውትር ዘይብነት እና መተስበስበስ አትችሉ። ፣ ተጉዳድ ውሂቶችን ለማስጠበቅ በአስፈላጊነት የይለፍ ማረፍና ማጥበሻ ማድረግ አይርሱ። እንዲሁም የተጠባበት ውሂብን ለመጠበቅ መረጃዎችን ማስጠበቅ አስፈላጊ አድርጉ። Event-Driven Architecture ኃይልን በነገሮቹን በተድረሰው በሚጠበቅ መንገድ ይጠቀምበት።
የመልእክት ተደራሽ ስርዓቶችን ማከታተልና ማሻሻያ በዘመናዊነት ላይ የሚተወው አድርጉ። የተደራሽ ቅርፅ፣ የመልእክት የጉዳይ ዝግጅትና የተጉዳድ መጠን ያከታተዉ፣ ለጊዜኛ መቅረፅና ማሻሻያቸው አያሰናዳሉ። ይህን በማድረግ፣ ስርዓቶችዎ ሁልጊዜ በጥሩ አፈጻጸም እንዲያገኙ ይረዳል።
Event-Driven Architecture በኩል የሚያስችለው ልኬት
Event-Driven Architecture (EDA) ስርዓቶች በአንድ ላይ የማይደግፉና በውስጥ የማይታመኑ መንገድ የመገናኛና አጋጣሚ ይሆናሉ። ይህም የስርዓቱን ልኬት ይጨምራል። በታዳሚ አንዳንድ ማዕከላዊ መዋቅር ላይ፣ በአንዱ አካል የሚደረጉ ለውጦች ሌሎችን ይሚያነሳሉ፤ በEDA ያካትቷቸው አካል ግን በግል ያልሆነ ፣ በነገርነገር የሚሰሩ ሲሆኑ፣ በክስተት ማግናኘት ብቻ ይገናኛሉ። ከዚህም በተነሳ፣ በስርዓቱ ውስጥ የአንዱ አካል ጫነ ከበደ ፣ ከዚህ በተቃራኒ ሌሎች አካላት አይታነሱም፣ ስርዓቱ ድርጅቱ የአጠቃላይ አፈጻጸም አይቀንስም።
- አገልግሎቶች በግል የሚሰሩበት
- እያንዳንዱ አገልግሎት የግል ሰካንዎቹን የሚሰቀል
- የክስተት የተደጋጋ አዋቂ ፣ የተቀየሰ ስብስብ ያደርጋል
- አዲስ አገልግሎት በቀላሉ የሚገናኝ ማዕከላዊነት
- የአሁኑ አገልግሎት ይቀየራሉ ፣ በቀላሉ የሚችሉ
ልኬት፣ የአንድ መረጃ የበለጠ ጭነትን የማይቀርባቸው ችሎታ ነው። EDA ይህን ችሎታውን፣ ማግናኘት ሲማታቱ አገልግሎቶች በአንዳንድ ያህል የሚተላለፍ። ምሳሌ ስጦታ የሚደርስ የአድጋዩ ስርዓት የት/ቤት መግዛት ጭነት ከበደ ፣ ነዚህ አገልግሎት በብዙ ሰርቨር ላይ የሚሰራ ይችላልና በመላው ጭነት ይቀይራል። ይህ ማለት የስርዓቱ አጠቃላይ አፈጻጸም ይጠብቃል፣ የተጠቃሚው ልምዶችም አይቀንም።
| ባህሪ | ማዕከላዊ መዋቅር | Event-Driven መዋቅር |
|---|---|---|
| ልኬት | አስቸጋሪ | ቀላል |
| ግልነት | ዝቅተኛ | ከፍተኛ |
| የስርዓት ቅጽበታ | ዝቅተኛ | ከፍተኛ |
| የልማት ፍጥነት | የሚደክም | ፈጣን |
መለኪያ ከሶስት ሰንሰለት፣ EDA የራሱ ቁልፍ አካል ሲሆን ክስተቶችን በታመነ ሁኔታ ማሳረፍ ይቻላል። አንድ አገልግሎት ክስተቱን ሲሰጥ ፣ ይህ ክስተት ወደ መለኪያ ሰንሰለት ይላካል፣ እና ተመዳበሪ አገልግሎቶች ይቀበላሉ። መለኪያ ሰንሰለት ክስተቶች አይጠፋም፣ እና እያንዳንዱ ክስተት ቢያንስ አንድ ጊዜ ይሰራል። ይህም የስርዓቱን ታመነነት ይጨምራል፣ የመረጃ ጥፋት ምክንያት ይቀንስበታል።
Event-Driven Architecture የዘመናዊ መተግበሪያዎች የልኬት ፍላጎትን ለማቅረብ የሚችል መፍትሄ ነው። ክፍት አገልግሎቶች፣ የትኛውም ግናኘኛ፣ መለኪያ ሰንሰለት በማስተጋባት፣ ስርዓቶች ሁሉ በቀይሊ ፣ የተደጋጋ እና የልኬት ማሳመን ያደርጋሉ። ይህም ድርጅቶች የሹማምነት አስተዳደር እና የደንበኞች ደስታ ይጨምራል። ይህ የመዋቅሩን ምርኬናና የተጠቃሚ አስተዳደር መአከላዊነት የገባበት ፣ ቅናቱን መለኪያ ሰንሰለት ስርዓት መምረጥና የተጀናኘውን ምርኬናን ማከት አስፈላጊ ነው።
ውሎ: መተግበሪያዎትን ለማሻሻል የሚወስዱ ደረጃዎች
Event-Driven Architecture (EDA) በዘመናዊ ሶፍትዌር ልማት ሂደቶች ውስጥ በጥያቄ ላይ የሚወጣ ተዋናኝነት አሳየ። ይህ ምናልባት መተግበሪያዎት የተካበ ፣ የሚያደግ እና የሚስተጋ አድርጎ በድርጅት ሂደቶችዎት ውስጥ ማቅረብን እንዲያከናውን ይረዳዋል። በታላቅና በውህድ ስርዓቶች ላይ በተለይ፣ ከክልሎች ጋር የተቀላቀሉ በአይነቱ ምሳሌዎች የስርዓት አባላት ግንኙነትን መቀነስ ይወዳድራል፣ በሚስተጋ ቅርፅ መፍጠርን ያችላል።
ከEDA የሚሰጠውን ጥቅም አቅርበው ለማጠቃለያ፣ ትክክለኛውን መሳሪያዎች እና አቅራቢዎችን መምረጥ አሳሳቢ ነው። የመልእክት ማደራጃ፣ በዚህ ምናልባት የማስፈንጠሪያ መሠረቶች አንዱ ነው፣ የተለያዩ የስርዓት ፍላጎቶችን መሟሟት ይችላል። ምረጥ ሲደረግ፣ የመተግበሪያዎት ፍላጎቶች፣ የምስተጋነት ፈላጎቶች፣ የደህንነት ፍላጎቶችን አጠቃቀም ይገባዋል። እንዲሁም በዕቅድ ላይ የሚወደድ የደመና መሳሪያዎች እና የክፍል ፕሮጀክቶች መተግበሪያዎትን ፈጣን እና በዋጋ ቅናሽ በማሳደግ ይረዳዋሉ።
በፍጥነት ለማስጀመር የደረጃዎች መመሪያ
- ፍላጎቶችዎን ዕወቅ፡ መተግበሪያዎት በየትኛው ክልል ትርጉም ለማድረግ እንደሚገባና እነዚህ ክህደቶች የሚያተኩኑ ሂደቶችን ግልጽ አድርጉ።
- የመልእክት ማደራጃዎችን ምረጥ፡ መተግበሪያዎት ለምስተጋነት፣ ከፍተኛ ታመነት እና የአፈጻጸም ውህደቶች በጥረት የሚስተጋ የመልእክት ማደራጃ(ምሳሌ: RabbitMQ, Kafka) ይገባዋል።
- የክህደት መለያዎችን ዕድቡ፡ ክህደቶችን የሚያስተዳድሩ የአባላት መዋቅረዎች አድርጉ። ይህ የአባላት ውህደትን በይፋ እና በቋሚነት ለማድረግ ይረዳዋል።
- የክህደት አምራችና ተወራች መተግበሪያዎችን ዕድቡ፡ ክህደቶችን የሚያስተላለፉ እና የሚያውጡ መተግበሪያዎችን ፍጠሩ። እነዚህ የመልእክት ማደራጃ ከስርዓቱ ጋር በትክክል መጎዳድ እንዳለ ያረጋግጡ።
- ሙከራና መቆጣጠሪያ መተግበሪያዎች፡ EDA መተግበሪያውን አጠቃላይ በጥርጥ ይፈትኑ፤ እና የአፈጻጸም መቆጣጠሪያ ማሳያዎችን (ምሳሌ: Prometheus, Grafana) ይዋቀሩ።
- ደህንነት ይስጡ፡ የመልእክት ማደራጃዎችን እና የክህደት እንቅስቃሴዎችን ከባለፈው ግለሰቦች ይጠብቁ፤ በመታወቂያ እና በመብት ጥናት ማደራጃ ያስተጋባው።
የሚስተጋ እና የተሳካ EDA መተግበሪያ የቀጣይ ትምህርትና የማሻሻያ ሂደት በጣም አሳሳቢ ነው። አዳዲስ ቴክኖሎጂዎችን እና አቅራቢዎችን በቀጣይ ይከታተሉ፣ የመተግበሪያዎት አፈጻጸምና ታመነት እንዲስቀመጡ ይረዳዋል። እንዲሁም ከማህበረሰብ መምከርና ከባለሞያዎች እገዛ ማግኘት የተደረገውን ችግር እንድታልፉ እና ምርጥ ተግባራትን እንድታደጉ ይረዳዋል። ልብ ያድርጉ፣ EDA ቀጣይ የሚደረግ ሂደት ነው፣ ለማሳካት ቀጣይ ትምህርት እና አደጋቹን ለመቀበል ምንም ተዘጋጅቷ መሆን ይገባዋል።
ብዙ ጊዜ የተጠየቁ ጥያቄዎች
ከተለምዶ አውድ ላይ የተተኮሰ የተግባር መስክ (Event-Driven Architecture) የሚጠቀሙበት ዋና ልዩነት ምንድን ነው፣ እና እንዴት ጥቅም ይሰጣል?
በተለምዶ አውድ ውስጥ አገልግሎቶች ብዙውን ጊዜ በቀጥታ እርስ በርሳቸው ይጠራሉ፤ የተግባር መስክ አውድ ውስጥ አገልግሎቶች በተግባር (event) እንዲሆን አንድን በሌላው ያልኩሉበት በዘንድና በተግባሩ ይገናኛሉ። አንድ አገልግሎት ተግባርን ይታገብ፤ አካባቢዎቹ ያሳየውን አገልግሎቶች በተግባሩ ይቅዋም። ይህ አካል በስርዓቶች መካከል ግንኙነትን ያቀናል፣ ዐላማውንም አገልግሎት ሁሉ በሌላው በትኩረት እንዳይወቅ የሚያደርገውን ያሳያል፤ በዚህም ውጤት የሚቀየር እና በመስክ መጠን ሚዛናና ማዋቀር ይችላል።
መልእክት ተረጋጋ ስርዓቶች (Message Queue) በተግባር መስክ አውድ ውስጥ ምን አሳሳቢ አካል ናቸው፣ በስርዓቶቹም ዋና ስራ ምንድን ነው?
መልእክት ተረጋጋ ስርዓቶች ተግባሮችን በአገልግሎቶች መካከል ማስተላለፍ በትክክል ይደረግ በማድረግ ያስችላሉ። አምራች (producer) አገልግሎቶች ተግባርን በተረጋጋው ያስገባሉ፤ ተሸጋገር (consumer) አገልግሎቶች በተረጋጋው ውስጥ ያገኙትን ተግባር ያደርጋሉ። በዚህም በመስክ አገልግሎቶች መካከል ዝግጅት ያደርጋሉ፤ አገልግሎት ስርአት በከፍተኛ ተግባር የሚያነሳሳ አቀናያ እንዳይደርስ የሚያደርገው ይህ ያበረታቸዋል። ተረጋጋው ተግባሮችን በትክክል እንደሚገናኙ አላማ ይያዛል፣ የትዕይናቸው አገልግሎቶች አስተዋውነት እንዳይኖር ይችላል፣በጉዳት የተግባሮቹ እንዳይበሉ ያስገኛል።
መስክ ላይ ማቀናበር ምን ጊዜ ይመከራል፣ በዚህም ሂደት ውስጥ ሊወጣ የሚችሉ እንቅስቃሴዎች ምንድን ናቸው?
በተግባር መስክ አውድ ማቀናበር ፣ በተለይም የተያያዙ፣ የተወሰኑ ችግሮች፣ ከፍተኛ ህይወት እና ቀደምት የመጠን እድሉ ያላቸው የስርዓት ጥያቄዎች የቦታው እንደማ፣ እና የሚያደርሱ ግጥሞች በዘወትር ይገኛሉ። ከነበር ማቅረብ ዙሪያ የሚከሰቱት፣ የሚሁኑት የቀድሞው ስርዓት እንደገና ማቀናበር፣ ተግባሮችን በትክክል መትክክርና ማዳረሻ፣ የውሂብ ቅነሳነትን ማስጠንጠን፣ እና የአዲሱ አውድ ተስተናጋቢ ማስተዋወቅና ሁሉንም ህይወት እንዲቀናበር የሚያደርጉ የእይታ እና ስርዓት መቃናበር ያሉበት ናቸው።
የተለያዩ መልእክት ተረጋጋ ስርዓቶች (ለምሳሌ RabbitMQ, Kafka) ከነበር ዋና ልዩነት ምንድን ናቸው፣ የተፈለገው ፕሮጀክት ምን ስርዓት ይጠቀማል?
RabbitMQ ከነበር ውስጥ መልእክትን በቅድሚያ በትክክል መስተዋወቅ እና አውስና በቅነሳነት የሚያደርጉ የሀኪም/ስራዎች ላይ በተለይ ይረቃል። Kafka ደግሞ፣ ለከፍተኛ ሥራ ፍላጎት፣ ለስርዓት እና በአወዛኝ መስክ ውሂብ የሚያከት የሚፈለግ የስራ ማስተዋወቅ ጥያቄዎች የሚያከት ተብሎ ይበል። አካል የፕሮጀክቱ ልዩ ውሀብ፣ የተጠቀሰ የትክክል ስርዓት እና የውሂብ ቅነሳነት የሚፈለግ ሁኔታ ፈላጊ በመሆኑ ይጠበቅ አድርጋል።
በተግባር መስክ ሙዚቃ ላይ ተግባሮችን ሲያቀናበሩ ስህተቶች ከኖሩ፣ እነዚህን ስህተቶች እንዴት ይቅድት ያደርጋሉ፣ ስርዓቱንም ቅነሳነት እንዴት ይጠብቃሉ?
በተግባር መስክ አውድ ላይ በስህተት አከባቢ የዞሪያ ተረጋጋ (dead-letter queue) መጠቀም፣ የእንደገና ለውጥ ዘዴዎች እና የተጠየቀ አካል ሂደት ማከናወን የሚችሉ የስህተት አዳነት ዘዴዎች አሉ። የዞሪያ ተረጋጋ የማይተዳደር ተግባሮችን ለቅስ የሚያዝ ተረጋጋ ነው። የእንደገና ለውጥ ዘዴዎች ተግባሮችን በሁለት ወይም በአንድ ጊዜ እንደገና ማከናወን ይችላሉ። የተጠየቀ አካል ሂደቶች ስህተቱ ከነበር ተግባር በኋላ የስርዓቱ አባላትን ማነሳት ማስተውወኛ ነው። ይህ ሁሉ ዘዴዎች ስርዓቱን ቅነሳነትን ያጠባቀማሉ።
መደበኛ አገልግሎቶች (microservices) አውድና ተግባር መስክ አውድ መካከላቸው ግንኙነት ምንድን ነው፣ እነዚህ ሁለቱ አውድ እንዴት በአንድ ይጠቀማሉ?
ተግባር መስክ አውድ በብዙውን ጊዜ በመደበኛ አገልግሎቶች መካከል ማስተላለፍ የሚያደርጋቸው ተደርጎ ይጠቀማል። እያንዳንዱ መደበኛ አገልግሎት ተወላጅ ስራዎችን ይሰጣል፤ ከአካባቢው አገልግሎት ጋር በተግባር ያካትታል። ይህ አካል መካከላቸው ግንኙነትን ያቀናል፣ በመሆኑም የስርዓቱ ስራ የተቆላዩ እና የሚያቀናበር አዋች ይሆናል። ተግባር መስክ አውድ መደበኛ አገልግሎቶች አካል በአንድ በኪንበርና ማቅረት ውስጥ እንዲሰጡ የሚያድርግ አቃቂ ይሰጣል።
ተግባር መስክ አውድ የትክክልናን በእንዴት ያተከላል፣ በከፍተኛ ተግባር ሁኔታዎች ስርዓቱን እንዴት ማሳያያውን ይችላል?
ተግባር መስክ አውድ፣ አገልግሎቶቹ በነዚህ መያዣ ውስጥ አንድ አንድ በራሳቸው እንዲቆሰለት ያስችላሉ፤ ስርዓቱን በምንድን ልዩነት የተቆላዩና የተስተናጋቹ ያደርሳል። እያንዳንዱ አገልግሎት ከፍ የሚያሳይ እና አንዳንዱ በትእዛዝ እንዳይሰጣቸው ይችላል። መልእክት ተረጋጋ ስርዓቶችም በከፍተኛ ተግባር ሁኔታዎች ተግባሮችን ይቅርብ ያደርጋሉ፤ አገልግሎቶቹ በብዙዎቹ ይህንን አካል ያትሞናሉ፣ ስርዓቱም በትክክል ሥራ ይሰጣል።
ከውስጥ ትኩረት ላይ የሚገኙ ክህደቶችን ለማሳያ እና ለስህተት ምርመራ የሚከደዱ መሳሪያዎችና መንገዶች ምንድን ናቸው?
ከውስጥ ትኩረት ላይ የሚገኙ ክህደቶችን ለማሳያ እና ለስህተት ምርመራ፣ በተበተነ አከባበር (distributed tracing) ሥርዓቶች፣ log መከታተያና የምርመራ መሳሪያዎች (ለምሳሌ ELK Stack)፣ እና ክህደት ውጤት መድረኮች ይጠቀማሉ። በተበተነ አከባበር የሚያገኙ አንድ ክህድት በሁሉም አገልግሎቶች መካከል ያደርገውን ተጉዞ ለማከታተል ይረዳል። Log መከታተያና የምርመራ መሳሪያዎች የአገልግሎቶቹን log በቀዳሚ ቦታ ይሰብሰባሉ፤ ስህተቶችን ለማውቀትና ችግኝነቶችን ለማስተካከል ያስቀምጣሉ። ክህድት ውጤት መድረኮችም ክህዶችን በምስክር ጊዜ እንዲታዩ እና እንዲተረጋገጡ ያደርጋሉ።