RabbitMQ. Qaybta 1. Hordhac. Erlang, AMQP

Hello, Habr! Waxaan jeclaan lahaa in aan wadaago buug-tixraac buug oo ah aqoonta aan ku guuleystey in aan ururiyo. RabbitMQ kuna soo ururi talooyinka gaagaaban iyo gabagabada.

Tusmada

  • RabbitMQ. Qaybta 1. Hordhac. Erlang, AMQP iyo RPC
  • RabbitMQ. Qaybta 2. Fahamka Isdhaafsiga
  • RabbitMQ. Qaybta 3. Fahamka safafka iyo xidhidhiyaha
  • RabbitMQ. Qaybta 4. Fahamka fariimaha iyo qaab-dhismeedka
  • RabbitMQ. Qaybta 5: Daabacaadda iyo Isticmaalka Farriinta Waxqabadka
  • RabbitMQ. Qaybta 6. Dulmar guud oo ku saabsan Moduleska Federaalka iyo Majarafada
  • RabbitMQ. Qeybta 7. Faahfaahinta ku saabsan Xiriirinta iyo Chanel
  • RabbitMQ. Qaybta 8. RabbitMQ gudaha .NET
  • RabbitMQ. Qaybta 9. Korjoogteynta

Si kooban oo ku saabsan AMQP

AMQP (Advanced Message Queuing Protocol) waa borotokool furan oo fariimaha la isugu gudbiyo qaybaha nidaamka. Fikradda aasaasiga ah ayaa ah in nidaamyada hoose ee shakhsi ahaaneed (ama codsiyada madaxbannaan) ay ku beddelan karaan farriimaha aan sharciga ahayn iyada oo loo marayo dallaal AMQP, kaas oo ka shaqeeya marin-u-socodka, suurtogalka ah dammaanad-qaadista, qaybinta xogta xogta, iyo ku biirista noocyada fariimaha gaarka ah.

Protocol AMQP waxay soo bandhigaysaa saddex fikradood:

RabbitMQ. Qaybta 1. Hordhac. Erlang, AMQP

  • exchange (goobta sarrifka ama sarrifka) - fariimaha ayaa loo diraa. Barta sarrifka qaybiya fariinta hal ama ka badan oo saf ah. iyada Jidadka fariimaha safka ku salaysan xiriiriyeyaasha la abuuray (binding) isaga iyo safka dhexdooda
  • queue (kuyuuga) waa qaab-dhismeedka xogta ee diskka ama RAM taas kaydiyaa xiriirinta fariimaha oo soo celisa nuqullada fariimaha consumers (macaamiisha)
  • binding (binding) - xeer kaas wuxuu sheegayaa barta is dhaafsiga safka ay tahay inay fariimahani galaan

Hab-maamuusku wuxuu ku socdaa dusha sare TCP/IP.

Si kooban oo ku saabsan Erlang

Koodhka isha ee mashruuca wuxuu ku yaalaa kaydka ee GitHubDhismaha RabbitMQ-server ku salaysan erlang iyo BEAM.

Erlang ay soo saartay shirkadu Ericsson badhtamihii 1980-meeyadii sida qaybsan, khalad-dulqaadka, nidaamka wakhtiga-dhabta ah ee codsiyada u baahan 99,999% wakhtiga la joogo. Erlang waxaa loo isticmaalaa warshadaha kala duwan iyo codsiyada casriga ah, sida WhatsAppWaxaad wax badan ka akhrisan kartaa maqaalka. Qaab dhismeedka WhatsApp, oo Facebook uu ku iibsaday $19 bilyan

Si kooban oo ku saabsan RabbitMQ

BakayleMQ waa dilaal fariin il furan. Waxay u marisaa fariimaha iyadoo la raacayo dhammaan mabaadi'da borotokoolka aasaasiga ah. AMQP lagu tilmaamay faahfaahinta. RabbitMQ waxay fulisaa oo ay kordhisaa hab-maamuuska AMQP.

Fikradda aasaasiga ah ee qaabka fariinta gudaha RabbitMQ waa kaas producer (Daabacaha) si toos ah fariimaha uguma diro safka Dhab ahaantii, iyo inta badan, madbacaduhu xitaa ma oga in farriinta la gayn doono saf kasta.

Taa beddelkeeda, daabacaaduhu wuxuu kaliya u diri karaa fariimaha beddelka. Sarifku wuxuu helayaa farriimaha daabacayaasha wuxuuna u diraa safafka. Sarifku waa inuu si sax ah u ogaadaa waxa lagu sameeyo fariinta la helay. Ma in lagu daro saf gaar ah? Ma in lagu daro safaf badan? Mise fariinta ha la iska indhatiro.

RabbitMQ. Qaybta 1. Hordhac. Erlang, AMQP

Si kooban oo ku saabsan shaqada RabbitMQ waxa lagu tilmaami karaa sidan soo socota:

  1. Daabacadu waxay fariin u dirtaa wax is dhaafsi gaar ah
  2. Wax-is-weydaarsiga, marka uu helo farriinta, wuxuu u wadaa hal ama in ka badan oo saf ah iyadoo la raacayo qawaaniinta u dhexeeya isaga iyo safka.
  3. Safku wuxuu kaydiyaa tixraaca farriintan. Fariinta lafteeda waxa lagu kaydiyaa RAM ama saxanka.
  4. Marka macaamilku diyaar u yahay inuu farriin ka helo safka, server-ku wuxuu abuuraa nuqul fariinta isagoo tixraacaya oo soo diraya
  5. Macmiilku waxa uu helayaa fariinta oo waxa uu caddayn u soo diraa dilaaliyaha
  6. Ka dib markii la helo xaqiijin, dullaalku wuxuu ka saarayaa nuqulka fariinta safka. Kadib waxay ka tirtirtaa RAM iyo diskka.

RPC

habka RPC (wacitaanka nidaamka fog) Waxay hoosta ka xariiqday dhammaan isdhexgalka xuddunta RabbitMQTusaale ahaan, wadahadalada bilowga ah ee shuruudaha macmiilka RabbitMQ, waxay muujinaysaa hab gaar ah RPCMarka taxanahan la dhammaystiro, RabbitMQ wuxuu diyaar u noqon doonaa inuu aqbalo codsiyada macmiilka:

RabbitMQ. Qaybta 1. Hordhac. Erlang, AMQP

Sidoo kale qeexitaanka AMQP Macmiilka iyo server-ka labaduba waxay soo saari karaan amarro. Tani waxay ka dhigan tahay in macmiilku filanayo isdhexgalka server-ka. Amaradu waa fasallo iyo habab. Tusaale ahaan, Connection.Start - habka wac Start fasalka Connection.

Isku xirka iyo kanaalada

Isweydaarsiga macluumaadka ee u dhexeeya macmiilka iyo serverka, kuwan soo socda ayaa loo isticmaalaa: kanaalka. Kanaalka ayaa lagu abuuray gudaha xiriir gaar ahKanaal kastaa wuu ka go'doonsan yahay kanaalada kale. Kiis isku mid ah, suurtogal maaha in la fuliyo amarka xiga ilaa jawaab laga helayo.

Si loo awoodo in loo diro amarrada isbarbar-dhigga, dhowr kanaal waa in la furo. Kanaal kastaa wuxuu abuuraa mid gaar ah Erlang habka. Hal xiriir ayaa yeelan kara kanaalo badan (isku dhufasho). Kanaal kasta, waxaa jira dhismayaal gaar ah iyo walxo xusuusta ku jira. Sidaa darteed, inta badan kanaalada waxaa jira xiriir gudaha, the RabbitMQ waxay isticmaashaa xasuus badan si loo xakameeyo xidhiidhka noocaas ah.

RabbitMQ. Qaybta 1. Hordhac. Erlang, AMQP

Tusaale fudud oo ah abuurista xidhiidh iyo kanaal la isticmaalayo RabbitMQ.Client:

// ...
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 
}

Furitaanka xiriir cusub ee hawlgal kasta si xoog leh ayaa loo niyad jabiyaa waxay horseedi doontaa kharashyo badanKanaalka ayaa sidoo kale loo malaynayaa inay yihiin kuwo joogto ah, laakiin khaladaad badan oo borotokool ah ayaa keena in kanaalka la xidho, markaa cimriga kanaalka ayaa laga yaabaa inuu ka gaaban yahay kan isku xidhka.

Halkee loo isticmaalaa RabbitMQ?

Marka la eego adeegyadda-yaraha, borotokoolka AMQP iyo hirgalinteeda RabbitMQ inta badan loo isticmaalo isdhexgalka asynchronous inta u dhaxaysa adeegyada.

Marka la eego IIOT hab maamuuska AMQP iyo hirgalinteeda RabbitMQ loo isticmaalo in la isku dhaafsado xogta u dhaxaysa server-yada (server-to-server). Waxay kaloo isticmaalaan plugin. MQTT Plugin RabbitMQ kaas oo ah dhaqan gelinta hab-maamuuska MQTT gudbinta xogta u dhaxaysa dareemayaasha iyo server-ka ee xawaaraha hooseeya, jawiga daahitaanka sare (liiska buuxa ee borotokoolka la taageeray ayaa ku taxan website-ka mashruuca).

Maqaalka soo socda, waxaan bilaabi doonaa inaan si faahfaahsan u sahamino wax-isweydaarsiga.

tixraacyada

Source: www.habr.com

U soo iibso martigelin lagu kalsoonaan karo oo loogu talagalay bogagga leh ilaalinta DDoS, VPS VDS servers 🔥 Iibso martigelin degel oo lagu kalsoonaan karo oo leh ilaalinta DDoS, VPS VDS servers | ProHoster