የአገልግሎት ፍርግርግ ማቀጣጠል - ዳግም አስነሳ

እ.ኤ.አ. Apache Ignite. በዚህ ማህበረሰብ ሕይወት ውስጥ አንድ አስፈላጊ ክስተት የክፍሉን እንደገና ማዋቀር ነበር። የአገልግሎት ፍርግርግ ማቀጣጠልብጁ ማይክሮ አገልግሎቶችን በቀጥታ ወደ ኢግኒት ክላስተር ለማሰማራት የሚያስችል ነው። በስብሰባው ላይ ስለዚህ አስቸጋሪ ሂደት ተናግሯል Vyacheslav ዳራዱር፣ የሶፍትዌር መሐንዲስ እና Apache Ignite አበርካች ከሁለት ዓመት በላይ።

የአገልግሎት ፍርግርግ ማቀጣጠል - ዳግም አስነሳ

Apache Ignite በአጠቃላይ ምን እንደሆነ እንጀምር። ይህ ለSQL፣ ግብይት እና መሸጎጫ ድጋፍ ያለው የተከፋፈለ የቁልፍ/እሴት ማከማቻ የውሂብ ጎታ ነው። በተጨማሪም, Ignite ብጁ አገልግሎቶችን በቀጥታ ወደ Ignite ክላስተር እንዲያሰማሩ ይፈቅድልዎታል. ገንቢው Ignite የሚያቀርባቸውን ሁሉንም መሳሪያዎች ማግኘት ይችላል - የተከፋፈሉ የውሂብ አወቃቀሮች፣ መልእክት መላኪያ፣ ዥረት፣ ስሌት እና የውሂብ ግሪድ። ለምሳሌ፣ ዳታ ግሪድን በሚጠቀሙበት ጊዜ፣ ለመረጃ ማከማቻ የተለየ መሠረተ ልማት የማስተዳደር ችግር እና በውጤቱም፣ የሚመነጨው ትርፍ ወጪ ይጠፋል።

የአገልግሎት ፍርግርግ ማቀጣጠል - ዳግም አስነሳ

የService Grid APIን በመጠቀም፣ የማሰማራቱን እቅድ በቀላሉ በመግለጽ አገልግሎቱን ማሰማራት ትችላለህ እና በዚህ መሰረት አገልግሎቱን በራሱ ውቅረት ውስጥ።

በተለምዶ፣ የማሰማራት እቅድ በክላስተር ኖዶች ላይ መሰማራት ያለባቸውን የሁኔታዎች ብዛት አመላካች ነው። ሁለት የተለመዱ የማሰማራት መርሃግብሮች አሉ. የመጀመሪያው ክላስተር ነጠላቶን ነው፡ በማንኛውም ጊዜ የተጠቃሚ አገልግሎት አንድ ምሳሌ በክላስተር ውስጥ መገኘቱ የተረጋገጠ ነው። ሁለተኛው ኖድ ነጠላቶን ነው፡ የአገልግሎቱ አንድ ምሳሌ በእያንዳንዱ ክላስተር መስቀለኛ መንገድ ላይ ተዘርግቷል።

የአገልግሎት ፍርግርግ ማቀጣጠል - ዳግም አስነሳ

እንዲሁም ተጠቃሚው በአጠቃላይ ክላስተር ውስጥ ያሉትን የአገልግሎት አጋጣሚዎች ብዛት መግለጽ እና ተስማሚ አንጓዎችን ለማጣራት ተሳቢ መግለጽ ይችላል። በዚህ ሁኔታ፣ ሰርቪስ ግሪድ ራሱ አገልግሎቶችን ለማሰማራት በጣም ጥሩውን ስርጭት ያሰላል።

በተጨማሪም, እንደ Affinity Service ያለ ባህሪ አለ. አፊኒቲ (Affinity) የቁልፎችን ግንኙነት ወደ ክፍልፋዮች እና በቶፖሎጂ ውስጥ ያሉ ወገኖች ከአንጓዎች ጋር ያላቸውን ግንኙነት የሚገልጽ ተግባር ነው። ቁልፉን በመጠቀም ውሂቡ የተከማቸበትን ዋና መስቀለኛ መንገድ መወሰን ይችላሉ። በዚህ መንገድ የእራስዎን አገልግሎት ከቁልፍ እና ተያያዥነት ተግባር መሸጎጫ ጋር ማያያዝ ይችላሉ። የዝምድና ተግባር ከተቀየረ፣ አውቶማቲክ ዳግም ማሰማራት ይከሰታል። በዚህ መንገድ አገልግሎቱ ሁል ጊዜ ለማቀናበር ከሚያስፈልገው መረጃ አጠገብ የሚገኝ ይሆናል፣ እና በዚህ መሰረት፣ መረጃን የማግኘት ከፍተኛ ወጪን ይቀንሳል። ይህ እቅድ የተቀናጀ የኮምፒዩተር ዓይነት ተብሎ ሊጠራ ይችላል።

አሁን የአገልግሎት ፍርግርግ ውበት ምን እንደሆነ አውቀናል, ስለ ልማት ታሪኩ እንነጋገር.

ከዚህ በፊት የሆነው

የቀደመው የሰርቪስ ግሪድ አተገባበር በኢግኒት ግብይት የተባዛ ስርዓት መሸጎጫ ላይ የተመሰረተ ነው። Ignite ውስጥ ያለው "መሸጎጫ" የሚለው ቃል ማከማቻን ያመለክታል። ያም ማለት እርስዎ እንደሚያስቡት ይህ ጊዜያዊ አይደለም. ምንም እንኳን መሸጎጫው የተደገመ እና እያንዳንዱ መስቀለኛ መንገድ ሙሉውን የውሂብ ስብስብ ቢይዝም, በመሸጎጫው ውስጥ የተከፋፈለ ውክልና አለው. ይህ በማከማቻ ማመቻቸት ምክንያት ነው።

የአገልግሎት ፍርግርግ ማቀጣጠል - ዳግም አስነሳ

ተጠቃሚው አገልግሎቱን ማሰማራት ሲፈልግ ምን ሆነ?

  • በክላስተር ውስጥ ያሉ ሁሉም አንጓዎች አብሮ የተሰራውን ቀጣይነት ያለው መጠይቅ ዘዴ በመጠቀም በማከማቻው ውስጥ ያለውን መረጃ ለማዘመን ተመዝግበዋል።
  • የማስጀመሪያው መስቀለኛ መንገድ፣ በተነባቢ የተፈጸመ ግብይት ስር፣ የተከታታይ ምሳሌን ጨምሮ የአገልግሎት ውቅርን በያዘ የውሂብ ጎታ ውስጥ መዝግቧል።
  • ስለ አዲስ ግቤት ሲነገረው አስተባባሪው በማዋቀሩ ላይ በመመስረት ስርጭቱን ያሰላል። የተገኘው ነገር ወደ ዳታቤዝ ተመልሶ ተጽፏል።
  • መስቀለኛ መንገድ የስርጭቱ አካል ከሆነ አስተባባሪው ማሰማራት ነበረበት።

የማይስማማን ነገር

በአንድ ወቅት መደምደሚያ ላይ ደርሰናል-ይህ ከአገልግሎቶች ጋር አብሮ ለመስራት መንገድ አይደለም. በርካታ ምክንያቶች ነበሩ.

በማሰማራት ጊዜ አንዳንድ ስህተቶች ከተከሰቱ ፣ ከዚያ ሁሉም ነገር በተከሰተበት የመስቀለኛ ምዝግብ ማስታወሻዎች ብቻ ሊገኝ ይችላል። ያልተመሳሰለ ማሰማራት ብቻ ነበር፣ ስለዚህ መቆጣጠሪያውን ከአሰራር ዘዴው ወደ ተጠቃሚው ከተመለሰ በኋላ አገልግሎቱን ለመጀመር የተወሰነ ተጨማሪ ጊዜ ያስፈልጋል - እና በዚህ ጊዜ ተጠቃሚው ምንም ነገር መቆጣጠር አልቻለም። የአገልግሎቱን ፍርግርግ የበለጠ ለማዳበር፣ አዲስ ባህሪያትን ለመፍጠር፣ አዲስ ተጠቃሚዎችን ለመሳብ እና የሁሉንም ሰው ህይወት ቀላል ለማድረግ አንድ ነገር መለወጥ አለበት።

አዲሱን የአገልግሎት ፍርግርግ ስንቀርጽ በመጀመሪያ የተመሳሰለ ማሰማራት ዋስትና ለመስጠት እንፈልጋለን፡ ተጠቃሚው ከኤፒአይ ቁጥጥር እንደተመለሰ ወዲያውኑ አገልግሎቶቹን መጠቀም ይችላል። እንዲሁም የማስጀመሪያ ስህተቶችን የማስተናገድ ችሎታ ለጀማሪው መስጠት ፈልጌ ነበር።

በተጨማሪም, አተገባበሩን ለማቃለል ፈልጌ ነበር, ማለትም, ከግብይቶች እና መልሶ ማመጣጠን. ምንም እንኳን መሸጎጫው የተደገመ እና ምንም ማመጣጠን ባይኖርም, ብዙ አንጓዎች ባሉበት ትልቅ ማሰማራት ላይ ችግሮች ተፈጠሩ. ቶፖሎጂ ሲቀየር፣ አንጓዎች መረጃ መለዋወጥ ያስፈልጋቸዋል፣ እና በትልቅ ልኬት፣ ይህ መረጃ ብዙ ሊመዝን ይችላል።

ቶፖሎጂ ባልተረጋጋበት ጊዜ አስተባባሪው የአገልግሎቶቹን ስርጭት እንደገና ማስላት አስፈልጎት ነበር። እና በአጠቃላይ, ባልተረጋጋ ቶፖሎጂ ላይ ከግብይቶች ጋር መስራት ሲኖርብዎት, ይህ ለመተንበይ አስቸጋሪ የሆኑ ስህተቶችን ሊያስከትል ይችላል.

ችግሮች

አጃቢ ችግሮች ሳይኖሩ ዓለም አቀፍ ለውጦች ምንድን ናቸው? ከእነዚህ ውስጥ የመጀመሪያው የቶፖሎጂ ለውጥ ነው። በማንኛውም ጊዜ፣ በአገልግሎት በሚሰማሩበት ጊዜ እንኳን፣ መስቀለኛ መንገድ ወደ ክላስተር ሊገባ ወይም ሊወጣ እንደሚችል መረዳት አለቦት። ከዚህም በላይ በተዘረጋበት ጊዜ መስቀለኛ መንገድ ክላስተር ከተቀላቀለ ስለ አገልግሎቶቹ ሁሉንም መረጃዎች በተከታታይ ወደ አዲሱ መስቀለኛ መንገድ ማስተላለፍ አስፈላጊ ይሆናል. እና እየተነጋገርን ያለነው ቀደም ሲል ስለተዘረጋው ብቻ ሳይሆን ስለአሁኑ እና ስለወደፊቱ ማሰማራት ነው.

ይህ በተለየ ዝርዝር ውስጥ ሊሰበሰቡ ከሚችሉት ችግሮች ውስጥ አንዱ ነው.

  • በመስቀለኛ መንገድ ጅምር ላይ በስታቲስቲክስ የተዋቀሩ አገልግሎቶችን እንዴት ማሰማራት ይቻላል?
  • አንድ መስቀለኛ መንገድ ከጥቅሉ ውስጥ መተው - መስቀለኛ መንገዱ አገልግሎቶችን ካስተናገደ ምን ማድረግ አለበት?
  • አስተባባሪው ከተለወጠ ምን ማድረግ አለበት?
  • ደንበኛው ወደ ክላስተር እንደገና ከተገናኘ ምን ማድረግ አለበት?
  • የማግበር/የማቦዘን ጥያቄዎች መስተናገድ አለባቸው እና እንዴት?
  • መሸጎጫ እንዲጠፋ ቢጠሩ እና እኛ ከእሱ ጋር የተቆራኙ አገልግሎቶች ካሉን?

ያ ብቻም አይደለም።

ዉሳኔ

እንደ ኢላማ፣ መልዕክቶችን በመጠቀም የሂደት ግንኙነትን ከመተግበሩ ጋር የ Event Driven አካሄድን መርጠናል። Ignite ኖዶች በመካከላቸው መልእክቶችን እንዲያስተላልፉ የሚፈቅዱ ሁለት አካላትን አስቀድሞ ተግባራዊ ያደርጋል - ኮሙኒኬሽን-ስፒ እና ግኝት-ስፒ።

የአገልግሎት ፍርግርግ ማቀጣጠል - ዳግም አስነሳ

Communication-spi አንጓዎች በቀጥታ እንዲገናኙ እና መልዕክቶችን እንዲያስተላልፉ ያስችላቸዋል። ብዙ መጠን ያለው ውሂብ ለመላክ በጣም ተስማሚ ነው። Discovery-spi በክላስተር ውስጥ ላሉ ሁሉም አንጓዎች መልእክት እንዲልኩ ያስችልዎታል። በመደበኛ አተገባበር, ይህ የቀለበት ቶፖሎጂን በመጠቀም ነው. በተጨማሪም ከ Zookeeper ጋር ውህደት አለ, በዚህ ጉዳይ ላይ ኮከብ ቶፖሎጂ ጥቅም ላይ ይውላል. ሌላው ሊታወቅ የሚገባው ጠቃሚ ነጥብ ግኝት-spi መልእክቱ በእርግጠኝነት ለሁሉም አንጓዎች በትክክለኛው ቅደም ተከተል እንዲደርስ ዋስትና ይሰጣል.

የማሰማራት ፕሮቶኮሉን እንመልከት። ሁሉም የተጠቃሚዎች የመሰማራት እና የመሰማራት ጥያቄዎች በ discovery-spi በኩል ይላካሉ። ይህ የሚከተለውን ይሰጣል ዋስትናዎች:

  • ጥያቄው በክላስተር ውስጥ ባሉ ሁሉም አንጓዎች ይቀበላል። ይህ አስተባባሪው ሲቀየር ጥያቄው ሂደቱን እንዲቀጥል ያስችለዋል። ይህ ማለት በአንድ መልእክት ውስጥ እያንዳንዱ መስቀለኛ መንገድ እንደ የአገልግሎት ውቅር እና ተከታታይነት ያለው ምሳሌ ያሉ ሁሉም አስፈላጊ ዲበዳታ ይኖረዋል ማለት ነው።
  • የመልእክት ማድረስ ጥብቅ ቅደም ተከተል የውቅረት ግጭቶችን እና ተፎካካሪ ጥያቄዎችን ለመፍታት ይረዳል።
  • የመስቀለኛ መንገድ ወደ ቶፖሎጂ መግባቱ እንዲሁ በ ግኝት-spi በኩል ስለሚሰራ፣ አዲሱ መስቀለኛ መንገድ ከአገልግሎቶች ጋር ለመስራት አስፈላጊ የሆኑትን ሁሉንም መረጃዎች ይቀበላል።

ጥያቄ ሲደርሰው በክላስተር ውስጥ ያሉ አንጓዎች ያረጋግጣሉ እና የማቀናበር ስራዎችን ይፈጥራሉ። እነዚህ ተግባራት ተሰልፈው ከዚያ በተለየ ሰራተኛ በሌላ ክር ውስጥ ይከናወናሉ. በዚህ መንገድ ተተግብሯል ምክንያቱም ማሰማራት ብዙ ጊዜ ሊወስድ እና ውድ የሆነውን የግኝት ፍሰት ሊዘገይ ስለሚችል።

ሁሉም ከወረፋው የሚመጡ ጥያቄዎች የሚስተናገዱት በስምሪት አስተዳዳሪ ነው። አንድን ተግባር ከዚህ ወረፋ አውጥቶ ማሰማራት እንዲጀምር የሚያስጀምር ልዩ ሰራተኛ አለው። ከዚህ በኋላ የሚከተሉት ድርጊቶች ይከሰታሉ.

  1. ለአዲስ የመወሰን ተግባር ምስጋና ይግባውና እያንዳንዱ አንጓ በተናጥል ስርጭቱን ያሰላል።
  2. አንጓዎች ከተሰማሩበት ውጤት ጋር መልእክት ያመነጫሉ እና ወደ አስተባባሪው ይላኩት።
  3. አስተባባሪው ሁሉንም መልእክቶች ያዋህዳል እና አጠቃላይ የማሰማራት ሂደት ውጤቱን ያመነጫል፣ ይህም በክላስተር ውስጥ ላሉ ሁሉም አንጓዎች በ discovery-spi ይላካል።
  4. ውጤቱ ሲደርሰው, የማሰማራት ሂደቱ ያበቃል, ከዚያ በኋላ ስራው ከወረፋው ይወገዳል.

የአገልግሎት ፍርግርግ ማቀጣጠል - ዳግም አስነሳ
አዲስ ክስተት-ተኮር ንድፍ፡ org.apache.ignite.internal.processors.service.IgniteServiceProcessor.java

በማሰማራት ጊዜ ስህተት ከተፈጠረ መስቀለኛ መንገዱ ወዲያውኑ ይህንን ስህተት ወደ አስተባባሪው በላከው መልእክት ውስጥ ያካትታል። ከመልዕክት ማሰባሰብ በኋላ፣ አስተባባሪው በማሰማራት ጊዜ ስለ ሁሉም ስህተቶች መረጃ ይኖረዋል እና ይህንን መልእክት በ discovery-spi ይልካል። የስህተት መረጃ በክላስተር ውስጥ በማንኛውም መስቀለኛ መንገድ ላይ ይገኛል።

በአገልግሎት ፍርግርግ ውስጥ ያሉ ሁሉም አስፈላጊ ክስተቶች የሚከናወኑት በዚህ ኦፕሬቲንግ አልጎሪዝም ነው። ለምሳሌ፣ ቶፖሎጂን መቀየር እንዲሁ በ discovery-spi በኩል መልእክት ነው። እና በአጠቃላይ ፣ ከዚህ በፊት ከነበረው ጋር ሲነፃፀር ፣ ፕሮቶኮሉ በጣም ቀላል እና አስተማማኝ ሆኖ ተገኝቷል። በማሰማራት ጊዜ ማንኛውንም ሁኔታ ለመቋቋም በቂ ነው.

ቀጥሎ ምን ይሆናል

አሁን ስለ ዕቅዶች. በIgnite ፕሮጀክት ላይ የሚደረጉ ማናቸውም ዋና ለውጦች እንደ ኢግኒት ማሻሻያ ተነሳሽነት ይጠናቀቃሉ፣ IEP ይባላል። የአገልግሎት ፍርግርግ ድጋሚ ዲዛይን እንዲሁ IEP አለው - IEP #17 "በአገልግሎት ፍርግርግ ውስጥ የዘይት ለውጥ" በሚለው የማሾፍ ርዕስ. ግን በእውነቱ, የሞተር ዘይትን አልቀየርንም, ነገር ግን ሙሉውን ሞተር.

በ IEP ውስጥ ያሉትን ተግባራት በ 2 ደረጃዎች ከፍለናል. የመጀመሪያው ዋና ደረጃ ነው, እሱም የማሰማራት ፕሮቶኮሉን እንደገና መሥራትን ያካትታል. ቀድሞውኑ በጌታው ውስጥ ተካትቷል, አዲሱን የአገልግሎት ፍርግርግ መሞከር ይችላሉ, ይህም በስሪት 2.8 ውስጥ ይታያል. ሁለተኛው ደረጃ ብዙ ሌሎች ተግባራትን ያካትታል.

  • ትኩስ እንደገና ማሰማራት
  • የአገልግሎት ስሪት
  • የስህተት መቻቻል ይጨምራል
  • ቀጭን ደንበኛ
  • የተለያዩ መለኪያዎችን ለመከታተል እና ለማስላት የሚረዱ መሳሪያዎች

በመጨረሻም፣ ስህተትን የሚቋቋም፣ ከፍተኛ ተደራሽነት ያላቸውን ስርዓቶች ለመገንባት በService Grid ላይ ልንመክርዎ እንችላለን። እንዲሁም እንድትጎበኙን እንጋብዝሃለን። ዴቭ-ዝርዝር и የተጠቃሚ ዝርዝር ተሞክሮዎን ያካፍሉ. ልምድዎ ለማህበረሰቡ በጣም ጠቃሚ ነው፡ በቀጣይ የት መሄድ እንዳለቦት፣ ለወደፊት ክፍሉን እንዴት እንደሚያዳብሩ ለመረዳት ይረዳዎታል።

ምንጭ: hab.com

አስተያየት ያክሉ