Ny kaody loharanon'ny tetikasa dia ao amin'ny tahiry at GitHub. Architecture RabbitMQ-server miankina amin'ny erlang ary BEAM.
Erlang novolavolainβny orinasa Ericsson tamin'ny tapaky ny taona 1980 ho toy ny rafitra mizara, mandefitra amin'ny fahadisoana, amin'ny fotoana tena izy ho an'ny fampiharana mitaky 99,999% ny ora fiasana. Erlang ampiasaina amin'ny indostria isan-karazany sy ny fampiharana maoderina, ohatra. WhatsApp. Afaka mamaky bebe kokoa ianao ao amin'ny lahatsoratra WhatsApp architecture, izay novidin'ny Facebook ho $19 lavitrisa
Fohy momba ny RabbitMQ
Ny bitro MQ dia mpikirakira hafatra open source. Izy io dia mandefa hafatra amin'ny fitsipika fototra rehetra amin'ny protocol AMQP voalaza ao amin'ny fepetra arahana. RabbitMQ mampihatra sy manampy ny protocol AMQP.
Ny hevi-dehibe amin'ny maodely hafatra amin'ny RabbitMQ zavatra izany producer (mpamoaka) dia tsy mandefa hafatra mivantana amin'ny filaharana. Raha ny marina, ary matetika, ny mpamoaka lahatsoratra dia tsy mahalala akory raha ho tonga any amin'ny filaharana ny hafatra.
Ny mpanonta kosa dia tsy afaka mandefa hafatra amin'ny fifanakalozana. Amin'ny lafiny iray, ny fifanakalozana dia mandray hafatra avy amin'ny mpamoaka, ary amin'ny lafiny iray, mandefa azy ireo amin'ny filaharana. Ny fifanakalozana dia tsy maintsy mahafantatra tsara ny tokony hatao amin'ny hafatra azony. Tokony ampiana filaharana manokana ve izany? Tokony ampiana filaharana maromaro ve izany? Na tsy tokony hiraharaha ny hafatra.
Asa fohy RabbitMQ azo faritana toy izao:
Mandefa hafatra amin'ny fifanakalozana manokana ny mpanonta
Ny fifanakalozam-bola, rehefa nahazo hafatra, dia mandefa izany amin'ny filaharana iray na maromaro mifanaraka amin'ny fitsipika mifamatotra eo aminy sy ny filaharana.
Ny filaharana dia mitahiry reference amin'ity hafatra ity. Ny hafatra mihitsy dia voatahiry ao amin'ny RAM na amin'ny kapila
Rehefa vonona handray hafatra avy amin'ny filaharana ny mpanjifa dia mamorona dika mitovy amin'ny hafatra amin'ny alΓ lan'ny rohy ny mpizara ary mandefa
Ny mpanjifa dia mandray ny hafatra ary mandefa fanamafisana amin'ny broker
Ny broker, rehefa nahazo fanamafisana, dia manala ny dika mitovy amin'ny hafatra amin'ny filaharana. Avy eo dia mamafa ny RAM sy ny kapila
ny famelomana
dingana RPC (antsoina amin'ny fomba lavitra) Saika ny fifandraisana rehetra amin'ny nucleus no fototry ny fifandraisana rehetra RabbitMQ. Ohatra, fifanakalozan-kevitra voalohany momba ny fepetran'ny mpanjifa amin'ny RabbitMQ, mampiseho dingana iray RPC. Rehefa vita io filaharana io, RabbitMQ dia ho vonona ny hanaiky ny fangatahana avy amin'ny mpanjifa:
Ao amin'ny specification ihany koa AMQP na ny mpanjifa na ny mpizara dia afaka mamoaka baiko. Midika izany fa miandry hifandray amin'ny mpizara ny mpanjifa. Ny baiko dia kilasy sy fomba. Ohatra, Connection.Start - fomba fiantsoana Start kilasy Connection.
Fifandraisana sy fantsona
Ho an'ny fifanakalozana vaovao toy izany eo amin'ny mpanjifa sy ny mpizara, fantsona. Ny fantsona dia noforonina ao anatiny fifandraisana manokana. Ny fantsona tsirairay dia mitokana amin'ny fantsona hafa. Amin'ny tranga synchronous, tsy azo atao ny manatanteraka ny baiko manaraka raha tsy misy valiny.
Mba hahafahana mandefa baiko mifanitsy dia mila manokatra fantsona maromaro ianao. Ny fantsona tsirairay dia mamorona manokana Erlang dingana. Ny fifandraisana iray dia mety manana fantsona maromaro (multiplexing). Ho an'ny fantsona tsirairay dia misy rafitra sy zavatra sasany ao anaty fitadidiana. Noho izany, ny bebe kokoa ny fantsona ao anatin'ny fifandraisana, ny Mampiasa fitadidiana bebe kokoa ny RabbitMQ mba hitantana fifandraisana toy izany.
Ohatra tsotra amin'ny famoronana fifandraisana sy fampiasana fantsona RabbitMQ.Client:
Ny fanokafana fifandraisana vaovao ho an'ny fandidiana tsirairay dia tena kivy toy izany hitarika ho amin`ny lafo vidy. Tokony haharitra ihany koa ny fantsona, fa ny hadisoan'ny protocole maro no mahatonga ny fantsona hikatona, ka ny androm-piainan'ny fantsona dia mety ho fohy kokoa noho ny an'ny fifandraisana.
Aiza no ampiasaina ny RabbitMQ?
Ao amin'ny tontolon'ny microservices, ny protocol AMQP sy ny fampiharana azy ao RabbitMQ matetika ampiasaina amin'ny fifandraisana asynchronous eo anelanelan'ny serivisy.
Ao amin'ny contexte IIOT fifanarahana AMQP sy ny fampiharana azy ao RabbitMQ ampiasaina amin'ny fifanakalozana angona eo amin'ny mpizara (server-server). Ampiasao koa ny plugin MQTT Plugin RabbitMQ izay fampiharana ny protocole MQTT ho an'ny fampitana angon-drakitra eo amin'ny sensor sy ny mpizara amin'ny tontolo haingam-pandeha avo lenta (misy lisitra feno amin'ny protocols tohanana voatanisa ao amin'ny tranokalan'ny tetikasa).
Ao amin'ny lahatsoratra manaraka dia hanomboka hahatakatra bebe kokoa ny Exchanges.