የመልእክት ደላላዎችን መረዳት። በActiveMQ እና በካፍካ የመልእክት መካኒኮችን መማር። ምዕራፍ 1

ሁሉም ሰው ሰላም!

አንድ ትንሽ መጽሐፍ መተርጎም ጀመርኩ፡-
«የመልእክት ደላላዎችን መረዳት«
ደራሲ፡ ጃኩብ ኮራብ፣ አሳታሚ፡ O'Reilly Media, Inc.፣ የታተመበት ቀን፡- ሰኔ 2017፣ ISBN፡ 9781492049296።

ከመግቢያው እስከ መጽሐፉ፡-
"... ይህ መጽሐፍ ስለ ደላላ የመልእክት መላላኪያ ሥርዓቶች እንዴት እንደሚያስቡ ያስተምርዎታል፣ ሁለት ታዋቂ የደላሎች ቴክኖሎጂዎችን በማነፃፀር እና በማነፃፀር Apache ActiveMQ እና Apache Kafka። ገንቢዎቻቸው ወደተመሳሳይ አካባቢ በጣም የተለያዩ አቀራረቦችን እንዲወስዱ ያደረጋቸውን የአጠቃቀም ጉዳዮችን እና የልማት ማበረታቻዎችን ይዘረዝራል - ከመካከለኛ ደላላ ጋር በስርዓቶች መካከል የመልእክት ልውውጥ። እነዚህን ቴክኖሎጂዎች ከመሠረቱ እንመለከታቸዋለን እና በመንገዱ ላይ የተለያዩ የንድፍ ምርጫዎችን ተፅእኖ እናሳያለን። ስለሁለቱም ምርቶች ጥልቅ ግንዛቤን ያገኛሉ፣እንዴት ጥቅም ላይ መዋል እንዳለባቸው እና እንደሌለባቸው እና ሌሎች የመልእክት መላላኪያ ቴክኖሎጂዎችን ወደፊት በሚመለከቱበት ጊዜ ምን መፈለግ እንዳለቦት መረዳትን ያገኛሉ። ... "

እስካሁን የተተረጎሙ ክፍሎች፡-
ምዕራፍ 1. መግቢያ
ምዕራፍ 3. ካፍካ

የተጠናቀቁ ምዕራፎች ሲተረጎሙ እለጥፋለሁ።

ምዕራፍ 1

መግቢያ

የስርዓት-ወደ-ስርዓት መልእክት መላላኪያ ብዙም ያልተረዱ የአይቲ አካባቢዎች አንዱ ነው። እንደ ገንቢ ወይም አርክቴክት ከተለያዩ ማዕቀፎች እና የውሂብ ጎታዎች ጋር በደንብ ልታውቅ ትችላለህ። ነገር ግን፣ እርስዎ በደላላ ላይ የተመሰረቱ የመልእክት መላላኪያ ቴክኖሎጂዎች እንዴት እንደሚሰሩ የማለፊያ ትውውቅ ብቻ ሳይሆን አይቀርም። እንደዚህ አይነት ስሜት ከተሰማዎት, አይጨነቁ, በጥሩ ኩባንያ ውስጥ ነዎት.

ሰዎች በተለምዶ ከመልእክት መሠረተ ልማት ጋር በጣም የተገደበ ግንኙነት አላቸው። ብዙውን ጊዜ ከረጅም ጊዜ በፊት ከተፈጠረ ስርዓት ጋር ይገናኛሉ ወይም ስርጭትን ከበይነመረቡ ያውርዱ, በ PROM ውስጥ ይጫኑት እና ለእሱ ኮድ መጻፍ ይጀምራሉ. በ PROM ውስጥ መሠረተ ልማትን ካከናወኑ በኋላ ውጤቶቹ ሊደባለቁ ይችላሉ-መልእክቶች በመሳካቶች ጠፍተዋል ፣ መላክ እንደጠበቁት አይሰራም ፣ ወይም ደላሎች አምራቾችዎን “ይሰቅላሉ” ወይም ለተጠቃሚዎችዎ መልእክት አይልኩም።

የሚታወቅ ይመስላል?

የተለመደው ሁኔታ የመልእክት ኮድዎ ለጊዜው ጥሩ የሚሰራበት ነው። መስራት እስኪያቆም ድረስ። ይህ ጊዜ የአንድ ሰው ጠባቂ ወደ የተሳሳተ የደህንነት ስሜት እንዲገባ ያደርገዋል, ይህም ስለ ቴክኖሎጂው መሰረታዊ ባህሪ በሐሰት እምነት ላይ የተመሰረተ ተጨማሪ ኮድ ያመጣል. ነገሮች መበላሸት ሲጀምሩ፣ የማይመች እውነት ያጋጥመዎታል፡ የምርቱን መሰረታዊ ባህሪ ወይም በደራሲዎች የተመረጡትን ግብይቶች በትክክል እንዳልተረዱ፣ እንደ አፈጻጸም እና አስተማማኝነት፣ ወይም ግብይት እና አግድም ልኬትን የመሳሰሉ .

ደላሎች እንዴት እንደሚሠሩ ጠለቅ ያለ ግንዛቤ ከሌለ፣ ሰዎች ስለ የመልእክት መላላኪያ ስርዓታቸው ምክንያታዊ የሚመስሉ መግለጫዎችን ይሰጣሉ፣ ለምሳሌ፡-

  • ስርዓቱ በጭራሽ መልዕክቶችን አያጣም።
  • መልዕክቶች በቅደም ተከተል ይከናወናሉ
  • ሸማቾችን ማከል ስርዓቱን ፈጣን ያደርገዋል
  • መልዕክቶች አንድ ጊዜ ብቻ ነው የሚደርሰው

እንደ አለመታደል ሆኖ ከእነዚህ መግለጫዎች ውስጥ አንዳንዶቹ በተወሰኑ ሁኔታዎች ውስጥ ብቻ በሚተገበሩ ግምቶች ላይ የተመሰረቱ ናቸው, ሌሎች ደግሞ በቀላሉ የተሳሳቱ ናቸው.

ይህ መጽሐፍ ስለ ደላላ-ተኮር የመልእክት መላላኪያ ሥርዓቶች እንዴት እንደሚያስቡ ያስተምርዎታል፣ ሁለቱን ታዋቂ የደላሎች ቴክኖሎጂዎች በማወዳደር እና በማነፃፀር Apache ActiveMQ እና Apache Kafka። ገንቢዎቻቸው ወደተመሳሳይ አካባቢ በጣም የተለያዩ አቀራረቦችን እንዲወስዱ ያደረጋቸውን የአጠቃቀም ጉዳዮችን እና የልማት ማበረታቻዎችን ይዘረዝራል - ከመካከለኛ ደላላ ጋር በስርዓቶች መካከል የመልእክት ልውውጥ። እነዚህን ቴክኖሎጂዎች ከመሠረቱ እንመለከታቸዋለን እና በመንገዱ ላይ የተለያዩ የንድፍ ምርጫዎችን ተፅእኖ እናሳያለን። ስለሁለቱም ምርቶች ጥልቅ ግንዛቤ ያገኛሉ፣ እንዴት ጥቅም ላይ መዋል እንዳለባቸው እና እንደሌለባቸው፣ እና ወደፊት ሌሎች የመልእክት መላላኪያ ቴክኖሎጂዎችን ግምት ውስጥ በማስገባት ምን መፈለግ እንዳለቦት መረዳትን ያገኛሉ።

ከመጀመራችን በፊት መሰረታዊ ነገሮችን እንቃኝ።

የመልእክት መላላኪያ ስርዓት ምንድን ነው እና ለምን ያስፈልጋል?

ሁለት አፕሊኬሽኖች እርስ በርሳቸው እንዲግባቡ በመጀመሪያ በይነገጽ መግለጽ አለባቸው። ይህንን በይነገጽ መግለጽ እንደ HTTP፣ MQTT ወይም SMTP ያሉ ትራንስፖርት ወይም ፕሮቶኮል መምረጥ እና በስርዓቶቹ መካከል የሚለዋወጡትን የመልእክት ቅርጸቶች መደራደርን ያካትታል። ይህ ምናልባት ጥብቅ ሂደት ሊሆን ይችላል፣ ለምሳሌ የኤክስኤምኤልን እቅድ ከመልዕክት ጭነት ወጪ መስፈርቶች ጋር መግለጽ ወይም በጣም ያነሰ መደበኛ ሊሆን ይችላል፣ ለምሳሌ በሁለት ገንቢዎች መካከል የተደረገ ስምምነት የኤችቲቲፒ ጥያቄ አንዳንድ ክፍል የደንበኛ መለያን ይይዛል።

የመልእክቶች ፎርማት እና የሚላኩበት ቅደም ተከተል በስርአቶች መካከል እስካልተገናኙ ድረስ ስለሌላው ስርዓት አተገባበር ሳይጨነቁ እርስ በእርስ መገናኘት ይችላሉ። እንደ የፕሮግራሚንግ ቋንቋ ወይም ማዕቀፍ ያሉ የእነዚህ ስርዓቶች ውስጣዊ ነገሮች በጊዜ ሂደት ሊለወጡ ይችላሉ። ውሉ ራሱ እስካልተያዘ ድረስ ግንኙነቱ ከሌላኛው ወገን ሳይለወጥ ሊቀጥል ይችላል። ሁለቱ ስርዓቶች በዚህ በይነገጽ በውጤታማነት ተለያይተዋል (የተለያዩ)።

የመልእክት መላላኪያ ሲስተሞች በተለምዶ በሁለት ስርዓቶች መካከል ያለውን መሃከለኛ የሚያካትቱ ሲሆን ይህም ላኪውን ከተቀባዩ ወይም ከተቀባዩ የበለጠ ለመለያየት (ለመለየት) ነው። በዚህ አጋጣሚ የመልእክት መላላኪያ ስርዓቱ ተቀባዩ የት እንዳለ፣ ንቁ እንደሆነ ወይም ምን ያህል አጋጣሚዎች እንዳሉ ሳያውቅ መልእክት እንዲልክ ያስችለዋል።

የመልእክት መላላኪያ ስርዓት ለሚፈታላቸው አይነት ችግሮች ሁለት ምሳሌዎችን እንይ እና አንዳንድ መሰረታዊ ቃላትን እናስተዋውቅ።

ነጥብ-ወደ-ነጥብ

አሌክሳንድራ ለአዳም ጥቅል ለመላክ ወደ ፖስታ ቤት ሄደች። ወደ መስኮቱ ሄዳ ለሰራተኛው ፓኬጁን ሰጠችው። ሰራተኛው ፓኬጁን አንስቶ አሌክሳንድራ ደረሰኝ ይሰጣታል። እሽጉ ሲላክ አዳም እቤት መሆን አያስፈልገውም። አሌክሳንድራ እሽጉ ወደፊት በሆነ ጊዜ ለአዳም እንደሚደርስ እና በንግዷ መቀጠሏን እንደምትቀጥል እርግጠኛ ነች። በኋላ በሆነ ጊዜ አዳም ጥቅል ተቀበለ።

ይህ የመልእክት ሞዴል ምሳሌ ነው። ነጥብ-ወደ-ነጥብ. እዚህ ያለው ፖስታ ቤት እያንዳንዱ እሽግ አንድ ጊዜ መድረሱን በማረጋገጥ እንደ የእቃ ማከፋፈያ ዘዴ ሆኖ ይሰራል። ፖስታ ቤት መጠቀም ፓኬጅ የመላክን ተግባር ከጥቅሉ አቅርቦት ይለያል።
በጥንታዊ የመልእክት መላላኪያ ሥርዓቶች፣ የነጥብ-ወደ-ነጥብ ሞዴል የሚተገበረው በዚህ ነው። ወረፋዎች. ወረፋው ለአንድ ወይም ከዚያ በላይ ሸማቾች መመዝገብ የሚችል እንደ FIFO (በመጀመሪያ ውስጥ፣ መጀመሪያ ውጪ) ቋት ሆኖ ይሰራል። እያንዳንዱ መልእክት የሚደርሰው ብቻ ነው። ከተመዘገቡት ሸማቾች ለአንዱ. ወረፋዎች በተለምዶ መልዕክቶችን በተጠቃሚዎች መካከል በትክክል ለማሰራጨት ይሞክራሉ። ይህንን መልእክት አንድ ሸማች ብቻ ይቀበላል።

"የሚበረክት" የሚለው ቃል ለወረፋዎች ይተገበራል። አስተማማኝነት ተጠቃሚው ለመልእክት ለማድረስ ወረፋውን እስኪያገኝ ድረስ የመልእክት መላላኪያ ስርዓቱ ንቁ ተመዝጋቢዎች በሌሉበት ጊዜ መልዕክቶችን እንደሚቀጥል የሚያረጋግጥ የአገልግሎት ንብረት ነው።

አስተማማኝነት ብዙውን ጊዜ ግራ ተጋብቷል ጽናት እና ሁለቱ ቃላት በተለዋዋጭነት ጥቅም ላይ ቢውሉም, የተለያዩ ተግባራትን ያገለግላሉ. ጽናት የመልእክት መላላኪያ ስርዓቱ በመቀበል እና ለተጠቃሚው በመላክ መካከል ወደ አንድ ዓይነት ማከማቻ መልእክት ይጽፋል ወይም አይጽፍ ይወስናል። ወደ ወረፋው የተላኩ መልዕክቶች ቋሚ ላይሆኑም ላይሆኑ ይችላሉ።
ነጥብ-ወደ-ነጥብ መላላኪያ ጥቅም ላይ የሚውለው የአጠቃቀም ጉዳይ በመልእክቱ ላይ የአንድ ጊዜ እርምጃ ሲፈልግ ነው። ምሳሌዎች ገንዘቦችን ወደ መለያ ማስገባት ወይም የመላኪያ ማዘዣን መሙላት ያካትታሉ። የመልእክት መላላኪያ ስርዓቱ በራሱ ለምን የአንድ ጊዜ ማድረስ እንዳልቻለ እና ለምን ወረፋዎች የመላኪያ ዋስትና እንደሚሰጡ በኋላ እንነጋገራለን ቢያንስ አንድ ጊዜ.

አታሚ-ተመዝጋቢ

ጋብሪኤላ የኮንፈረንስ ቁጥሩን ትደውላለች። ከጉባኤው ጋር ስትገናኝ፣ ከተቀሩት የጥሪ ተሳታፊዎች ጋር ተናጋሪው የሚናገረውን ሁሉ ትሰማለች። ስታስተካክል የተነገረውን ትናፍቃለች። እንደገና ስትገናኝ የሚነገረውን መስማቷን ቀጥላለች።

ይህ የመልእክት ሞዴል ምሳሌ ነው። አትም-ደንበኝነት ይመዝገቡ. የኮንፈረንስ ጥሪ እንደ የስርጭት ዘዴ ይሰራል። የሚናገረው ሰው በአሁኑ ጊዜ በጥሪው ላይ ምን ያህል ሰዎች እንዳሉ አይጨነቅም - ስርዓቱ በአሁኑ ጊዜ የተገናኘ ማንኛውም ሰው የሚናገረውን እንደሚሰማ ያረጋግጣል.
በጥንታዊ የመልእክት መላላኪያ ሥርዓቶች፣ የህትመት-ደንበኝነት ተመዝጋቢ የመልእክት መላላኪያ ሞዴል ተተግብሯል። ጫፎች. ርዕስ ከኮንፈረንስ ዘዴ ጋር ተመሳሳይ የስርጭት ዘዴ ያቀርባል። መልእክት ወደ አንድ ርዕስ ሲላክ ይሰራጫል። ለሁሉም የተመዘገቡ ተጠቃሚዎች.

ርዕሰ ጉዳዮች በአብዛኛው ናቸው። የማይታመን (የማይታመን). ልክ አንድ አድማጭ በኮንፈረንስ ላይ የሚነገረውን መስማት እንደማይችል አድማጩ ሲቋረጥ፣ አርእስት ተመዝጋቢዎች ከመስመር ውጭ ሆነው የሚላኩ ማንኛውንም መልዕክቶች ያመልጣሉ። በዚህ ምክንያት, ርዕሶች የመላኪያ ዋስትና ይሰጣሉ ማለት እንችላለን ከአንድ ጊዜ በላይ አይደለም ለእያንዳንዱ ሸማች.

አትም-ደንበኝነት መመዝገብ አብዛኛውን ጊዜ ጥቅም ላይ የሚውለው መልእክቶቹ በባህሪያቸው መረጃ ሰጭ ሲሆኑ እና የአንድ መልእክት መጥፋት ልዩ ትኩረት በማይሰጥበት ጊዜ ነው። ለምሳሌ፣ አንድ ርዕስ በሴኮንድ አንድ ጊዜ የሙቀት ንባቦችን ከአንድ ዳሳሾች ቡድን ሊያስተላልፍ ይችላል። ለአሁኑ የሙቀት መጠን ፍላጎት ያለው እና ለአንድ ርዕስ የተመዘገበ ስርዓት መልእክት ካጣ አይጨነቅም - ሌላ በቅርብ ጊዜ ውስጥ ይመጣል።

ድብልቅ ሞዴሎች

የመደብሩ ድር ጣቢያ መልዕክቶችን በ"የመልእክት ወረፋ" ውስጥ ያስቀምጣል። የእነዚህ መልዕክቶች ዋነኛ ተጠቃሚ የአስፈፃሚ ስርዓት ነው. በተጨማሪም የኦዲት ስርዓቱ ለቀጣይ ክትትል የእነዚህ የትዕዛዝ መልዕክቶች ቅጂዎች ሊኖሩት ይገባል. ሁለቱም ስርዓቶች መልእክቶች እንዲተላለፉ መፍቀድ አይችሉም፣ ምንም እንኳን ስርዓቶቹ እራሳቸው ለተወሰነ ጊዜ የማይገኙ ቢሆኑም። ድህረ ገጹ ስለሌሎች ስርዓቶች ማወቅ የለበትም።

የአጠቃቀም ጉዳዮች ብዙ ጊዜ የሕትመት-ደንበኝነት እና ነጥብ-ወደ-ነጥብ የመልእክት ሞዴሎች ጥምረት ያስፈልጋቸዋል፣ ለምሳሌ ብዙ ስርዓቶች የመልእክት ቅጂ ሲፈልጉ እና የመልእክት መጥፋትን ለመከላከል ሁለቱም አስተማማኝነት እና ጽናት ያስፈልጋል።

እነዚህ ጉዳዮች መልእክቶችን በመሠረቱ እንደ ርዕስ የሚያሰራጭ መድረሻ (ለወረፋ እና አርእስቶች አጠቃላይ ቃል) ይፈልጋሉ ፣ ስለሆነም እያንዳንዱ መልእክት ለእነዚያ መልእክቶች ፍላጎት ላለው የተለየ ስርዓት ይላካል ፣ ግን እያንዳንዱ ስርዓት ገቢ የሚቀበሉ ብዙ ሸማቾችን ሊገልጽ ይችላል ። መልዕክቶች፣ እሱም እንደ ወረፋ ነው። በዚህ ጉዳይ ላይ የንባብ አይነት ነው ለእያንዳንዱ ባለድርሻ አንድ ጊዜ. እነዚህ የተዳቀሉ መዳረሻዎች ብዙ ጊዜ ዘላቂነት ይጠይቃሉ ስለዚህ ሸማቹ ከመስመር ውጭ ከሄዱ በዚያን ጊዜ የሚላኩ መልእክቶች ተጠቃሚው እንደገና ከተገናኘ በኋላ ይደርሳቸዋል።

የተዳቀሉ ሞዴሎች አዲስ አይደሉም እና በአብዛኛዎቹ የመልእክት መላላኪያ ሥርዓቶች ውስጥ ጥቅም ላይ ሊውሉ ይችላሉ፣ ሁለቱንም ActiveMQ (ርዕሶችን እና ወረፋዎችን በሚያጣምሩ ምናባዊ ወይም የተቀናጁ መዳረሻዎች በኩል) እና ካፍካ (በተዘዋዋሪ፣ የመዳረሻ ንድፉ መሰረታዊ ባህሪ ሆኖ)።

አሁን አንዳንድ መሰረታዊ የቃላት አገባብ እና የመልእክት መላላኪያ ስርዓትን ምን ልንጠቀምበት እንደምንችል ግንዛቤ ካለን ወደ ዝርዝሩ እንውረድ።

ትርጉም ተከናውኗል፡- tele.gg/middle_java

የሚከተለው የተተረጎመ ክፍል: ምዕራፍ 3. ካፍካ

ይቀጥላል…

ምንጭ: hab.com

አስተያየት ያክሉ