ደህና ከሰአት ሀብር! ለመሰብሰብ የቻልኩትን የመማሪያ መጽሐፍ-ማጣቀሻ መጽሐፍን ማካፈል እፈልጋለሁ RabbitMQ
እና ወደ አጭር ምክሮች እና ድምዳሜዎች ያሰባስቡ.
ማውጫ
- RabbitMQ ክፍል 1. መግቢያ. Erlang፣ AMQP እና RPC
- RabbitMQ ክፍል 2. ልውውጦችን መረዳት
- RabbitMQ ክፍል 3. ወረፋዎችን እና ማሰሪያዎችን መረዳት
- RabbitMQ ክፍል 4. መልዕክቶች እና ፍሬሞች ምን እንደሆኑ መረዳት
- RabbitMQ ክፍል 5፡ የመልዕክት ስራን ማተም እና መጠቀም
- RabbitMQ ክፍል 6. የፌዴሬሽኑ እና የአካፋ ሞጁሎች አጠቃላይ እይታ
- RabbitMQ ክፍል 7. ስለ ግንኙነት እና ቻኔል ዝርዝሮች
- RabbitMQ ክፍል 8. RabbitMQ በ NET
- RabbitMQ ክፍል 9. ክትትል
ስለ AMQP በአጭሩ
AMQP (የላቀ የመልእክት Queuing ፕሮቶኮል) በስርዓት ክፍሎች መካከል መልዕክቶችን ለማስተላለፍ ክፍት ፕሮቶኮል ነው። ዋናው ሀሳብ የግለሰብ ንዑስ ስርዓቶች (ወይም ገለልተኛ አፕሊኬሽኖች) በዘፈቀደ በ AMQP ደላላ በኩል መልዕክቶችን መለዋወጥ ይችላሉ ፣ ይህም ማዘዋወርን ፣ ምናልባትም ማድረስ ፣ የመረጃ ፍሰት ስርጭትን ፣ ለሚፈለጉት የመልእክት ዓይነቶች መመዝገብ ።
ፕሮቶኮል AMQP
ሦስት ጽንሰ-ሐሳቦችን ያቀርባል-
exchange
(የመለዋወጫ ነጥብ ወይም ልውውጥ) - መልዕክቶች ወደ እሱ ይላካሉ. የመለዋወጫ ነጥብ መልእክቱን ያሰራጫል በአንድ ወይም በብዙ ወረፋዎች. እሷ መልዕክቶችን ወደ ወረፋ ያደርሳል በተፈጠሩ አገናኞች ላይ የተመሠረተ (binding
) በእሱ እና በወረፋው መካከልqueue
(ወረፋ) - በዲስክ ላይ ወይም በ RAM ውስጥ የውሂብ መዋቅር, ይህም የመልእክቶችን አገናኞች ያከማቻል እና የመልእክቶችን ቅጂ ይሰጣልconsumers
(ለተጠቃሚዎች)binding
(ማሰር) - አንድ ደንብ እነዚህ መልዕክቶች በየትኛው ወረፋ ውስጥ መግባት እንዳለባቸው የልውውጥ ነጥቡን ይነግረናል።
ፕሮቶኮሉ ያልፋል
ስለ ኤርላንግ በአጭሩ
የፕሮጀክት ምንጭ ኮድ በማከማቻ ማከማቻ ውስጥ ይገኛል።
Erlang
በኩባንያው የተገነባEricsson
እ.ኤ.አ. በ1980ዎቹ አጋማሽ ላይ 99,999% የስራ ጊዜ ለሚያስፈልጋቸው መተግበሪያዎች እንደ ተሰራጭ፣ ስህተትን ታጋሽ፣ የእውነተኛ ጊዜ ስርዓት።Erlang
በተለያዩ ኢንዱስትሪዎች እና ዘመናዊ አፕሊኬሽኖች ውስጥ ጥቅም ላይ ይውላል, ለምሳሌ በፌስቡክ በ19 ቢሊዮን ዶላር የገዛው የዋትስአፕ አርክቴክቸር
ስለ RabbitMQ በአጭሩ
RabbitMQ
ፕሮቶኮሉን ተግባራዊ ያደርጋል እና ያሟላል። AMQP
.
በ ውስጥ የመልእክት ሞዴል መሰረታዊ ሀሳብ RabbitMQ
ነገሩ ነው producer
(አታሚ) በቀጥታ ወደ ወረፋው መልእክት አይልክም። እንዲያውም፣ እና ብዙ ጊዜ፣ አታሚው መልእክቱ በማንኛውም ወረፋ ላይ መድረሱን እንኳን አያውቅም።
በምትኩ፣ አታሚው መልዕክቶችን ወደ ልውውጡ ብቻ መላክ ይችላል። በአንድ በኩል, ልውውጡ ከአሳታሚዎች መልዕክቶችን ይቀበላል, በሌላ በኩል ደግሞ ወደ ወረፋ ይልካል. ልውውጡ በተቀበለው መልእክት ምን ማድረግ እንዳለበት በትክክል ማወቅ አለበት. ወደ አንድ የተወሰነ ወረፋ መጨመር አለበት? ወደ ብዙ ወረፋዎች መጨመር አለበት? ወይም መልእክቱ ችላ ሊባል ይገባል።
በአጭሩ ስራ RabbitMQ
እንደሚከተለው ሊገለጽ ይችላል.
- አታሚው ለአንድ የተወሰነ ልውውጥ መልእክት ይልካል
- ልውውጡ መልእክት እንደደረሰው በእሱ እና በወረፋው መካከል ባለው አስገዳጅ ህጎች መሠረት ወደ አንድ ወይም ከዚያ በላይ ወረፋዎች ያደርሰዋል።
- ወረፋው የዚህ መልእክት አገናኝ ያከማቻል። መልእክቱ ራሱ በ RAM ወይም በዲስክ ውስጥ ተከማችቷል
- ሸማቹ ከወረፋው መልእክት ለመቀበል እንደተዘጋጀ አገልጋዩ የመልእክቱን ቅጂ በማጣቀሻ አዘጋጅቶ ይልካል
- ሸማቹ መልእክቱን ተቀብሎ ለደላላው እውቅና ይልካል
- ደላላው ማረጋገጫ ከተቀበለ በኋላ የመልእክቱን ቅጂ ከወረፋው ያስወግዳል። ከዚያ ከ RAM እና ከዲስክ ይሰርዛል
ፒ ፒ
ሂደት RabbitMQ
. ለምሳሌ፣ የደንበኛ ውሎች የመጀመሪያ ውይይቶች RabbitMQ
, የተወሰነ ሂደት ያሳያል RPC
. ይህ ቅደም ተከተል ከተጠናቀቀ በኋላ, RabbitMQ
ከደንበኛው የሚቀርቡ ጥያቄዎችን ለመቀበል ዝግጁ ይሆናል፡-
በተጨማሪም ዝርዝር ውስጥ AMQP
ሁለቱም ደንበኛ እና አገልጋይ ትዕዛዞችን ሊሰጡ ይችላሉ። ይህ ማለት ደንበኛው ከአገልጋዩ ጋር ለመገናኘት እየጠበቀ ነው ማለት ነው. ትዕዛዞች ክፍሎች እና ዘዴዎች ናቸው. ለምሳሌ, Connection.Start
- ዘዴ ጥሪ Start
ደረጃ Connection
.
ግንኙነት እና ቻናሎች
ለዚህ በደንበኛው እና በአገልጋዩ መካከል የመረጃ ልውውጥ ፣ ሰርጦች. ቻናሎች የተፈጠሩት በውስጡ ነው። የተወሰነ ግንኙነት. እያንዳንዱ ቻናል ከሌሎች ቻናሎች የተገለለ ነው። በተመሳሰለ ሁኔታ, ምላሽ እስኪያገኝ ድረስ የሚቀጥለውን ትዕዛዝ ማስፈጸም አይቻልም.
ትዕዛዞችን በትይዩ መላክ እንድትችል ብዙ ቻናሎችን መክፈት አለብህ። እያንዳንዱ ቻናል የተለየ ይፈጥራል Erlang
ሂደት. አንድ ግንኙነት ብዙ ቻናሎች ሊኖሩት ይችላል (
ግንኙነት እና ሰርጥ የመጠቀም ቀላል ምሳሌ
// ...
private void TryConnect()
{
var factory = new ConnectionFactory()
{
HostName = "host_name",
UserName = "user_name",
Password = "p@ssword",
// Включение автоматичекого восстановления
// соединения после сбоев сети
AutomaticRecoveryEnabled = true
};
_connection = factory.CreateConnection();
}
// ...
public void CreateChanel()
{
_channel = _connection.CreateModel();
// other options
}
ለእያንዳንዱ ክዋኔ አዲስ ግንኙነት መክፈት እንደ እሱ በጥብቅ ተስፋ ይቆርጣል ወደ ከፍተኛ ወጪዎች ይመራሉ. ቻናሎችም ዘላቂ መሆን አለባቸው፣ ነገር ግን ብዙ የፕሮቶኮል ስህተቶች ቻናሉን እንዲዘጋ ያደርጉታል፣ ስለዚህ የሰርጡ የህይወት ዘመን ከግንኙነት ያነሰ ሊሆን ይችላል።
RabbitMQ የት ጥቅም ላይ ይውላል?
በማይክሮ ሰርቪስ አውድ ውስጥ, ፕሮቶኮሉ AMQP
እና አተገባበሩ በ RabbitMQ
ብዙ ጊዜ ጥቅም ላይ ይውላል ያልተመሳሰለ መስተጋብር በአገልግሎቶች መካከል.
በአውድ ውስጥ IIOT
ፕሮቶኮል AMQP
እና አተገባበሩ በ RabbitMQ
በአገልጋዮች (አገልጋይ-አገልጋይ) መካከል ለመረጃ ልውውጥ ጥቅም ላይ ይውላል። እንዲሁም ተሰኪውን ይጠቀሙ
በሚቀጥለው ርዕስ ውስጥ ከልውውጦች ጋር በበለጠ ዝርዝር መረዳት እንጀምራለን.
ማጣቀሻዎች
ምንጭ: hab.com