முயல்MQ. பகுதி 1. அறிமுகம். எர்லாங், AMQP

நல்ல மதியம், ஹப்ர்! நான் சேகரிக்க முடிந்த ஒரு பாடநூல்-குறிப்பு புத்தகத்தைப் பகிர்ந்து கொள்ள விரும்புகிறேன் RabbitMQ மற்றும் குறுகிய பரிந்துரைகள் மற்றும் முடிவுகளில் சுருக்கவும்.

உள்ளடக்க அட்டவணை

  • முயல்MQ. பகுதி 1. அறிமுகம். எர்லாங், AMQP மற்றும் RPC
  • முயல்MQ. பகுதி 2. பரிமாற்றங்களைப் புரிந்துகொள்வது
  • முயல்MQ. பகுதி 3. வரிசைகள் மற்றும் பிணைப்புகளைப் புரிந்துகொள்வது
  • முயல்MQ. பகுதி 4. செய்திகள் மற்றும் சட்டங்கள் என்ன என்பதைப் புரிந்துகொள்வது
  • முயல்MQ. பகுதி 5: செய்தியை வெளியிடுதல் மற்றும் நுகர்தல்
  • முயல்MQ. பகுதி 6. கூட்டமைப்பு மற்றும் மண்வெட்டி தொகுதிகளின் கண்ணோட்டம்
  • முயல்MQ. பகுதி 7. இணைப்பு மற்றும் சேனல் பற்றிய விவரங்கள்
  • முயல்MQ. பகுதி 8. .NET இல் RabbitMQ
  • முயல்MQ. பகுதி 9. கண்காணிப்பு

AMQP பற்றி சுருக்கமாக

AMQP (Advanced Message Queuing Protocol) என்பது கணினி கூறுகளுக்கு இடையே செய்திகளை அனுப்புவதற்கான ஒரு திறந்த நெறிமுறை ஆகும். அடிப்படை யோசனை என்னவென்றால், தனிப்பட்ட துணை அமைப்புகள் (அல்லது சுயாதீன பயன்பாடுகள்) ஒரு AMQP தரகர் மூலம் தன்னிச்சையான முறையில் செய்திகளை பரிமாறிக்கொள்ள முடியும், இது ரூட்டிங் செய்கிறது, ஒருவேளை டெலிவரிக்கு உத்தரவாதம் அளிக்கிறது, தரவு ஸ்ட்ரீம்களை விநியோகம் செய்கிறது மற்றும் விரும்பிய செய்தி வகைகளுக்கு குழுசேருகிறது.

நெறிமுறை AMQP மூன்று கருத்துகளை அறிமுகப்படுத்துகிறது:

முயல்MQ. பகுதி 1. அறிமுகம். எர்லாங், AMQP

  • exchange (பரிமாற்ற புள்ளி அல்லது பரிமாற்றம்) - செய்திகள் அதற்கு அனுப்பப்படும். பரிமாற்ற புள்ளி செய்தியை விநியோகிக்கிறார் ஒன்று அல்லது அதற்கு மேற்பட்ட வரிசைகளில். அவள் செய்திகளை வரிசைக்கு அனுப்புகிறது உருவாக்கப்பட்ட இணைப்புகளின் அடிப்படையில் (binding) அவருக்கும் வரிசைக்கும் இடையில்
  • queue (வரிசை) - வட்டில் அல்லது RAM இல் உள்ள தரவு அமைப்பு செய்திகளுக்கான இணைப்புகளை சேமித்து செய்திகளின் நகல்களை வழங்குகிறது consumers (நுகர்வோருக்கு)
  • binding (பிணைத்தல்) - ஒரு விதி இந்த செய்திகள் எந்த வரிசையில் செல்ல வேண்டும் என்பதை பரிமாற்ற புள்ளியை சொல்கிறது

நெறிமுறை மேலே இயங்குகிறது டிசிபி / ஐபி.

எர்லாங்கைப் பற்றி சுருக்கமாக

திட்டத்தின் மூலக் குறியீடு களஞ்சியத்தில் உள்ளது மகிழ்ச்சியா. கட்டிடக்கலை RabbitMQ-சர்வர் அடிப்படையில் எர்லாங் மற்றும் பீம்.

Erlang நிறுவனத்தால் உருவாக்கப்பட்டது Ericsson 1980களின் நடுப்பகுதியில், 99,999% இயக்க நேரம் தேவைப்படும் பயன்பாடுகளுக்கான விநியோகிக்கப்பட்ட, தவறு-சகிப்புத்தன்மை கொண்ட, நிகழ்நேர அமைப்பாக இருந்தது. Erlang பல்வேறு தொழில்கள் மற்றும் நவீன பயன்பாடுகளில் பயன்படுத்தப்படுகிறது, எ.கா. WhatsApp. கட்டுரையில் நீங்கள் மேலும் படிக்கலாம் ஃபேஸ்புக் $19 பில்லியன் கொடுத்து வாங்கிய வாட்ஸ்அப் கட்டிடக்கலை

RabbitMQ பற்றி சுருக்கமாக

முயல்MQ ஒரு திறந்த மூல செய்தி தரகர். இது நெறிமுறையின் அனைத்து அடிப்படைக் கொள்கைகளிலும் செய்திகளை அனுப்புகிறது AMQP இல் விவரிக்கப்பட்டுள்ளது விவரக்குறிப்புகள். RabbitMQ நெறிமுறையை செயல்படுத்துகிறது மற்றும் நிரப்புகிறது AMQP.

செய்தியிடல் மாதிரியின் முக்கிய யோசனை RabbitMQ விஷயம் producer (வெளியீட்டாளர்) வரிசையில் நேரடியாக செய்திகளை அனுப்புவதில்லை. உண்மையில், மற்றும் அடிக்கடி, எந்த வரிசையிலும் செய்தி அனுப்பப்படுமா என்பது கூட வெளியீட்டாளருக்குத் தெரியாது.

மாறாக, வெளியீட்டாளர் பரிமாற்றத்திற்கு செய்திகளை மட்டுமே அனுப்ப முடியும். ஒருபுறம், பரிமாற்றம் வெளியீட்டாளர்களிடமிருந்து செய்திகளைப் பெறுகிறது, மறுபுறம், அது அவர்களை வரிசைகளுக்கு அனுப்புகிறது. பரிமாற்றம் பெறும் செய்தியை சரியாக என்ன செய்ய வேண்டும் என்பதை அறிந்திருக்க வேண்டும். இது ஒரு குறிப்பிட்ட வரிசையில் சேர்க்கப்பட வேண்டுமா? இது பல வரிசைகளில் சேர்க்கப்பட வேண்டுமா? அல்லது செய்தி புறக்கணிக்கப்பட வேண்டும்.

முயல்MQ. பகுதி 1. அறிமுகம். எர்லாங், AMQP

சுருக்கமான வேலை RabbitMQ பின்வருமாறு விவரிக்கலாம்:

  1. வெளியீட்டாளர் ஒரு குறிப்பிட்ட பரிமாற்றத்திற்கு ஒரு செய்தியை அனுப்புகிறார்
  2. ஒரு பரிமாற்றம், ஒரு செய்தியைப் பெற்ற பிறகு, அதற்கும் வரிசைக்கும் இடையே உள்ள பிணைப்பு விதிகளின்படி அதை ஒன்று அல்லது அதற்கு மேற்பட்ட வரிசைகளுக்கு அனுப்புகிறது.
  3. வரிசை இந்த செய்திக்கான குறிப்பைச் சேமிக்கிறது. செய்தி ரேம் அல்லது வட்டில் சேமிக்கப்படுகிறது
  4. நுகர்வோர் வரிசையில் இருந்து ஒரு செய்தியைப் பெறத் தயாரானதும், சேவையகம் இணைப்பு வழியாக செய்தியின் நகலை உருவாக்கி அனுப்புகிறது
  5. நுகர்வோர் செய்தியைப் பெற்று தரகருக்கு உறுதிப்படுத்தல் அனுப்புகிறார்
  6. தரகர், உறுதிப்படுத்தலைப் பெற்றவுடன், செய்தியின் நகலை வரிசையில் இருந்து அகற்றுகிறார். பின்னர் RAM மற்றும் வட்டில் இருந்து நீக்குகிறது

RPC ஐ

செயல்முறை RPC (தொலை நடைமுறை அழைப்பு) அணுக்கருவுடன் கிட்டத்தட்ட அனைத்து தொடர்புகளுக்கும் அடிகோலுகிறது RabbitMQ. எடுத்துக்காட்டாக, வாடிக்கையாளரின் விதிமுறைகள் பற்றிய ஆரம்ப விவாதங்கள் RabbitMQ, ஒரு குறிப்பிட்ட செயல்முறையை நிரூபிக்கிறது RPC. இந்த வரிசை முடிந்ததும், RabbitMQ வாடிக்கையாளரின் கோரிக்கைகளை ஏற்க தயாராக இருக்கும்:

முயல்MQ. பகுதி 1. அறிமுகம். எர்லாங், AMQP

மேலும் விவரக்குறிப்பில் AMQP கிளையன்ட் மற்றும் சர்வர் இரண்டும் கட்டளைகளை வழங்க முடியும். இதன் பொருள் வாடிக்கையாளர் சேவையகத்துடன் தொடர்பு கொள்ள காத்திருக்கிறார். கட்டளைகள் வகுப்புகள் மற்றும் முறைகள். உதாரணத்திற்கு, Connection.Start - முறை அழைப்பு Start வர்க்கம் Connection.

இணைப்பு மற்றும் சேனல்கள்

கிளையன்ட் மற்றும் சர்வர் இடையே இத்தகைய தகவல் பரிமாற்றத்திற்கு, சேனல்கள். சேனல்கள் உள்ளே உருவாக்கப்படுகின்றன குறிப்பிட்ட இணைப்பு. ஒவ்வொரு சேனலும் மற்ற சேனல்களிலிருந்து தனிமைப்படுத்தப்பட்டுள்ளது. ஒத்திசைவான வழக்கில், பதில் கிடைக்கும் வரை அடுத்த கட்டளையை இயக்க முடியாது.

கட்டளைகளை இணையாக அனுப்ப, நீங்கள் பல சேனல்களைத் திறக்க வேண்டும். ஒவ்வொரு சேனலும் தனித்தனியாக உருவாக்குகிறது Erlang செயல்முறை. ஒரு இணைப்பில் பல சேனல்கள் இருக்கலாம் (மல்டிபிளெக்சிங்) ஒவ்வொரு சேனலுக்கும் நினைவகத்தில் சில கட்டமைப்புகள் மற்றும் பொருள்கள் உள்ளன. எனவே, ஒரு இணைப்பிற்குள் அதிக சேனல்கள் உள்ளன RabbitMQ அதிக நினைவகத்தைப் பயன்படுத்துகிறது அத்தகைய இணைப்பை நிர்வகிக்க.

முயல்MQ. பகுதி 1. அறிமுகம். எர்லாங், AMQP

இணைப்பு மற்றும் சேனலை உருவாக்குவதற்கான எளிய எடுத்துக்காட்டு RabbitMQ. வாடிக்கையாளர்:

// ...
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 சேவையகங்களுக்கு இடையே தரவு பரிமாற்றத்திற்கு பயன்படுத்தப்படுகிறது (சர்வர்-சர்வர்). சொருகியையும் பயன்படுத்தவும் MQTT செருகுநிரல் RabbitMQ இது நெறிமுறையை செயல்படுத்துவதாகும் MQTT சென்சார் மற்றும் சர்வர் இடையே தரவை குறைந்த வேகம், அதிக தாமத சூழல்களில் கடத்துவதற்கு (ஆதரவு நெறிமுறைகளின் முழு பட்டியல் இங்கே பட்டியலிடப்பட்டுள்ளது திட்ட இணையதளம்).

அடுத்த கட்டுரையில் நாம் பரிவர்த்தனைகளை இன்னும் விரிவாகப் புரிந்துகொள்ளத் தொடங்குவோம்.

குறிப்புகள்

ஆதாரம்: www.habr.com

கருத்தைச் சேர்