Logo Zephyrnet

MQTT vs AMQP fun Awọn ibaraẹnisọrọ IoT: Ori si Ori

ọjọ:

MQTT vs AMQP fun Awọn ibaraẹnisọrọ IoT: Ori si Ori
Apejuwe: © IoT Fun Gbogbo

Pẹlu idagba alaye ti Intanẹẹti ti Awọn nkan (IoT), iṣakoso ibaraẹnisọrọ laarin awọn ẹrọ ati awọn eto n dagba ni pataki. Ibaraẹnisọrọ IoT jẹ ki o ṣee ṣe nipasẹ awọn ilana ila ti ifiranšẹ gẹgẹbi MQTT ati AMQP ti o dẹrọ paṣipaarọ alaye ni ọna iṣeto ati daradara.

Awọn ilana olokiki meji ti n ṣe agbara IoT ni MQTT Ilana (Ifiranṣẹ Queuing Telemetry Transport) ati AMQP (To ti ni ilọsiwaju Ifiranṣẹ Queuing Ilana). Jẹ ki a ṣawari ọkọọkan awọn ilana wọnyi ni ẹkunrẹrẹ ki o ṣe alaye awọn iyatọ bọtini wọn ati awọn ifosiwewe lati gbero nigbati yiyan laarin awọn mejeeji.

Pataki ti Ifiranṣẹ Queuing Ilana

Ni IoT, awọn ẹrọ ti o wa lati awọn sensọ ti o rọrun si awọn ẹrọ eka nilo lati ṣe ibaraẹnisọrọ pẹlu ara wọn ati pẹlu awọn eto aarin. Awọn ẹrọ wọnyi nigbagbogbo nṣiṣẹ ni awọn agbegbe pẹlu awọn ohun elo ti o ni ihamọ, gẹgẹbi agbara kekere tabi awọn nẹtiwọki ti ko gbẹkẹle.

Ifiranṣẹ queuing Ilana bi MQTT, eyiti a ṣe apẹrẹ fun iru awọn agbegbe, jẹ ki awọn ẹrọ wọnyi le ṣe ibaraẹnisọrọ daradara ati ni igbẹkẹle.

Ni awọn eto pinpin, awọn paati nigbagbogbo nilo lati paarọ alaye lakoko mimu iṣọpọ alaimuṣinṣin. Awọn ilana bii AMQP, pẹlu awọn ẹya ara ẹrọ ti o lagbara ati awọn agbara ipa-ọna idiju, pese ọna igbẹkẹle fun ibaraẹnisọrọ yii.

Awọn ilana wọnyi ṣe idaniloju pe awọn ifiranṣẹ ti wa ni jiṣẹ ni igbẹkẹle, ati pe awọn eto le ṣe iwọn ati dagbasoke ni ominira.

Kini MQTT?

MQTT, kukuru fun Ifiranṣẹ Queuing Telemetry Transport, jẹ atẹjade iwuwo fẹẹrẹ kan / ilana ṣiṣe alabapin. IBM ṣe agbekalẹ rẹ ni ọdun 1999.

Ti a ṣe apẹrẹ fun awọn ẹrọ ti o ni ihamọ ati bandiwidi-kekere, lairi giga, tabi awọn nẹtiwọọki ti ko ni igbẹkẹle, MQTT jẹ pipe fun ẹrọ-si-ẹrọ tabi awọn ọran lilo IoT nibiti a nilo ifẹsẹtẹ koodu kekere kan.

MQTT ṣiṣẹ da lori awọn jade / alabapin awoṣe. Ni awoṣe yii, olupilẹṣẹ kan, ti a mọ si olutẹjade kan, ṣẹda awọn ifiranṣẹ, ati alabara kan, ti a mọ si alabapin, gba wọn.

Ibaraṣepọ laarin olutẹjade ati alabapin jẹ iṣakoso nipasẹ alagbata kan. Alagbata naa ni iduro fun pinpin awọn ifiranṣẹ lati ọdọ awọn olutẹjade si awọn alabapin.

Irọrun ti MQTT wa ninu awọn aṣẹ ilana ti o kere julọ. O ni awọn aṣẹ diẹ nikan, ti o jẹ ki o rọrun lati ṣe ni ọpọlọpọ awọn ẹrọ ati awọn eto.

Pẹlupẹlu, awọn ipele iṣẹ-didara rẹ ngbanilaaye fun ijẹrisi ifijiṣẹ ifiranṣẹ, ni idaniloju pe ko si ifiranṣẹ ti o sọnu ni gbigbe. Jẹ ki a ṣawari MQTT ni awọn alaye diẹ sii.

MQTT Transport ati fireemu

MQTT le lo TCP, TLS, WebSocket, tabi QUIC bi awọn oniwe-irinna Layer, ṣiṣẹda awọn isopọ, Igbekale igba, ati gbigbe awọn ifiranṣẹ reliably laarin ibara ati awọn alagbata.

Awọn fireemu MQTT ni akọsori 2-baiti ti o wa titi, akọsori oniyipada, ati fifuye isanwo gigun-iyipada kan. Akọsori ni alaye gẹgẹbi iru apo, didara ipele iṣẹ, ipari ti o ku, ID idii, ati awọn ohun-ini. Isanwo alakomeji ni ifiranṣẹ gangan ti n tan.

MQTT n ṣalaye awọn iru awọn apo-iwe iṣakoso 15 ti o da lori awọn fireemu alakomeji ninu awọn pato ilana Ilana 5.0. Diẹ ninu awọn apo-iwe ti o wọpọ ti a lo lati sopọ, ṣe atẹjade ati ṣe alabapin pẹlu CONNECT, CONACK, ṢẸJẸ, PUBACK, ati ṢỌṢỌMBA.

MQTT QoS

MQTT ṣe atilẹyin awọn agbara iṣẹ mẹta fun ifijiṣẹ ifiranṣẹ:

  • QoS0 “Ni ẹẹkan”: Awọn ifiranṣẹ ti wa ni jiṣẹ ni ibamu si awọn igbiyanju ti o dara julọ ti agbegbe iṣẹ; pipadanu ifiranṣẹ le ṣẹlẹ.
  • QoS1 "O kere ju ẹẹkan": Awọn ifiranṣẹ ti wa ni idaniloju lati de, ṣugbọn awọn ẹda-ẹda le ṣẹlẹ.
  • QoS2 “Gangan lẹẹkan”: Awọn ifiranṣẹ ni idaniloju lati de ni ẹẹkan.

MQTT Anfani ati alailanfani

Pros:

  • Iyatọ: Apẹrẹ ṣiṣe alabapin ti o rọrun julọ, rọrun lati ṣeto, dagbasoke, ati ṣakoso.
  • Ìwọ̀n Fúyẹ́ àti Dádákà: Awọn ifiranṣẹ MQTT ni akọsori oriṣi 2 nikan pẹlu lilo bandiwidi kekere ti o jẹ ki ilana naa jẹ apẹrẹ fun agbara-kekere, awọn ẹrọ bandiwidi kekere.
  • Agbara: Ṣe iwọn si awọn mewa ti awọn miliọnu ti awọn asopọ MQTT, awọn akọle, ati awọn ṣiṣe alabapin.
  • Ifijiṣẹ ifiranṣẹ ti o gbẹkẹle: Didara mẹta ti Awọn ipele Iṣẹ lati rii daju ifijiṣẹ ifiranṣẹ ti o gbẹkẹle, paapaa lori awọn nẹtiwọọki ti ko ni igbẹkẹle.
  • Lairi kekere: Nitosi ifijiṣẹ ifiranṣẹ akoko gidi pẹlu airi oni-nọmba kan millisecond nitori awoṣe ọti-ọti ti o da lori koko ti o rọrun.
  • Aabo: MQTT ṣe atilẹyin awọn ibaraẹnisọrọ to ni aabo lori TLS/SSL tabi QUIC ati orisirisi awọn ọna ṣiṣe ijẹrisi nipa lilo awọn iwe-ẹri LDAP, JWT, PSK, ati X.509.
  • Ibamu ati Iṣajọpọ: MQTT le ṣepọ pẹlu ọpọlọpọ awọn ede siseto, awọn ọna ṣiṣe, ati awọn iru ẹrọ sọfitiwia.

konsi:

  • MQTT ko ni ibi-itaja-ati-siwaju queuing.

Kini AMQP?

AMQP, Ilana Queuing Ifiranṣẹ To ti ni ilọsiwaju, jẹ ilana ti o ṣe atilẹyin fun ọpọlọpọ awọn ilana fifiranṣẹ ati fifun awọn ẹya ti o lagbara. O ṣẹda nipasẹ JP Morgan Chase ni 2003. A ṣe apẹrẹ fun awọn ọna ṣiṣe ti o nilo ipele giga ti igbẹkẹle ati iṣẹ ṣiṣe.

Ko dabi MQTT, AMQP jẹ ilana ilana ẹlẹgbẹ-si-ẹlẹgbẹ, afipamo pe o ṣe atilẹyin ibaraẹnisọrọ taara laarin olupilẹṣẹ ati alabara.

AMQP nlo awoṣe nibiti a ti fi awọn ifiranṣẹ ranṣẹ si awọn paṣipaarọ, eyiti o da awọn ifiranṣẹ si awọn ila ti o yẹ ti o da lori awọn ofin ti a npe ni awọn abuda. Onibara lẹhinna gba ifiranṣẹ naa pada lati isinyi.

Awoṣe yii ngbanilaaye fun ipa-ọna eka ati awọn ilana pinpin, ṣiṣe AMQP dara fun awọn ọna ṣiṣe pinpin eka.

Agbara AMQP wa ninu eto ẹya ti o gbooro. O ṣe atilẹyin fun ọpọlọpọ awọn ohun-ini ifiranšẹ ati awọn ipo ifijiṣẹ, pẹlu fifiranšẹ alamọran, eyiti o ṣe idaniloju pe awọn ifiranṣẹ ko padanu paapaa ti alagbata ba tun bẹrẹ.

AMQP Exchange ati awọn abuda

Ni AMQP, paṣipaarọ kan dabi oluranlowo gbigbe imeeli ti o ṣayẹwo imeeli ati pinnu lori ipilẹ awọn bọtini ipa-ọna ati awọn tabili. Bọtini ipa-ọna ni ibamu si imeeli pẹlu Si:, Cc:, tabi Bcc: awọn adirẹsi, laisi alaye olupin (itọkasi jẹ inu laarin olupin AMQP kan). Asopọmọra dabi titẹ sii ninu tabili ipa ọna oluranlowo gbigbe imeeli.

AMQP n ṣalaye awọn oriṣi mẹrin ti awọn paṣipaarọ:

  1. Taara (ojuami-si-ojuami): Awọn ifiranṣẹ ti wa ni ipa taara si isinyi ti a dè si paṣipaarọ.
  2. Iyanu: Awọn ifiranṣẹ ti wa ni ipa si gbogbo isinyi ti a dè si paṣipaarọ.
  3. Koko-ọrọ (ṣe-ṣe alabapin): Awọn ifiranṣẹ ti wa ni ipalọlọ si awọn ila ti o da lori bọtini ipa-ọna ati ilana abuda si paṣipaarọ naa.
  4. Awọn akọle (ṣe-ṣe alabapin): Awọn ifiranṣẹ ti wa ni ipa si awọn ila ti o da lori ibaamu ilana ti awọn akọle ifiranṣẹ.

AMQP Transport ati fireemu

AMQP jẹ ilana ilana alakomeji ti a ṣe lori TCP/IP, nibiti igbẹkẹle, itẹramọṣẹ, ọna asopọ ṣiṣan-sisan ti iṣeto laarin alabara ati alagbata kan. Awọn ikanni lọpọlọpọ le ṣii lori asopọ iho kan, gbigba awọn ṣiṣan data lọpọlọpọ lati gbe ni nigbakannaa.

Awọn fireemu AMQP ni ẹya 1.0 ni akọsori ti o wa titi 8-baiti, akọsori ti o gbooro iyan, ati fifuye isanwo alakomeji oniyipada kan. Akọsori ti o wa titi ni alaye nipa iru fireemu, nọmba ikanni, ati iwọn ti fifuye isanwo naa.

Ẹru isanwo naa ni ifiranṣẹ gangan ti n tan kaakiri, pẹlu eyikeyi metadata ti o somọ.

AMQP anfani ati alailanfani

Pros:

  • Itaja-ati-siwaju ti isinyi: AMQP ṣe atilẹyin titosi itaja-ati-siwaju ni laibikita fun diẹ ninu ṣiṣe ati idiju afikun (akawe si MQTT).
  • Ifiranṣẹ to rọ: AMQP n pese ipa-ọna ifiranšẹ to rọ, pẹlu aaye-si-ojuami, ṣe-alabapin, ati ijade-jade.
  • Aabo: AMQP ṣe atilẹyin awọn igbese aabo gẹgẹbi TLS ati SASL fun fifi ẹnọ kọ nkan ati ijẹrisi.
  • Eto ilolupo: AMQP ni ilolupo ilolupo nla ati ti ogbo ti awọn imuse olupin orisun-ìmọ ati awọn ile-ikawe alabara fun ọpọlọpọ awọn ede siseto.

konsi:

  • Epo: AMQP ṣafihan ọpọlọpọ awọn imọran ni awoṣe rẹ ati pe o le jẹ eka ati nija lati ni oye, ṣeto, ati ṣakoso.
  • Iwuwo iwuwo: AMQP ṣafihan isodipupo ninu Layer gbigbe rẹ pẹlu “awọn ikanni.” Fireemu AMQP kọọkan ni akọsori lori ti awọn baiti 8.
  • Ibamu sẹhin: Iṣoro ti o tobi julọ ti AMQP ni pe awọn ẹya 0.9.1 ati 1.0 yatọ patapata, ti o yori si idiju diẹ sii ni aaye ojutu yii.
  • Iwọn ati iṣẹ ṣiṣe: AMQP le ni iwọn iwọn ati iṣẹ kekere ni diẹ ninu awọn igba lilo. Eyi jẹ nitori faaji rẹ, eyiti o fa idiju nla ati oke ni akawe si awọn ilana iwuwo fẹẹrẹ bii MQTT.

MQTT vs AMQP: Ori-si-ori

Tabili ti o tẹle ṣe akopọ lafiwe wa laarin AMQP ati MQTT.

  AMQP MQTT
definition To ti ni ilọsiwaju Ifiranṣẹ Queuing Ilana Ifiranṣẹ Queuing Telemetry Transport
Origins Ti a ṣe nipasẹ JPMorgan Chase ni ọdun 2003 Ti a ṣe nipasẹ IBM ni ọdun 1999
faaji EBQ (paṣipaarọ-Asopọ-Iparọ) Atẹjade/Ṣalabapin lori ipilẹ-ọrọ
mojuto ero ExchangesQueuesBindingsRouting Awọn bọtini Awọn alabapin awọn koko-ọrọ
Awọn ẹya akọkọ Ilana · 0.9.1 ti jade ni Oṣu kọkanla ọdun 2008
· 1.0 tu ni Oṣu Kẹwa ọdun 2012
· 3.1.1 ti jade ni Oṣu kejila ọdun 2015
· 5.0 ti jade ni Oṣu Kẹta ọdun 2019
Awọn Ilana Fifiranṣẹ    
Ojuami-si-Point ✅ (awọn ila-itaja ati siwaju) Atilẹyin apa kan
Ṣe atẹjade / Alabapin
Fan-jade ✅ diẹ sii ti iwọn
Olufẹ-ni
Beere / Fesi ✅ ni ẹya 5.0
Titari / fa
irinna nẹtiwọki    
TCP
TLS / SSL
WebSockets
QUIC
Ṣiṣeto    
Ẹya Fireemu Awọn fireemu ti pin si awọn agbegbe ọtọtọ mẹta:
Akọsori fireemu iwọn ti o wa titi,
Akọsori ti o gbooro si aropo,
Ayípadà iwọn fireemu body.
Apo Iṣakoso MQTT kan ni to awọn ẹya mẹta:
Akọsori ti o wa titi
Akọsori iyipada
Payload
Fix Akọsori Iwon 8 Awọn baagi 2 Awọn baagi
Akoonu isanwo alakomeji alakomeji
Iwon Isanwo ti o pọju 2GB 256MB
ifijiṣẹ    
QoS 0: Ni Julọ Lẹẹkan
QoS 1: O kere ju lẹẹkan
QoS 2: Gangan ni ẹẹkan
aabo SSL / TLS SSL / TLS

Awọn Okunfa Lati Ṣe ayẹwo Nigbati Yiyan

Nigbati o ba dojuko ipinnu laarin MQTT vs AMQP, awọn ifosiwewe pupọ wa lati ronu.

Igbelewọn Da lori Lilo irú awọn ibeere

Yiyan laarin MQTT ati AMQP da lori awọn ibeere ọran lilo. Ti o ba n ṣe pẹlu awọn ẹrọ ti o ni ihamọ tabi awọn nẹtiwọọki ti ko ni igbẹkẹle, MQTT pẹlu iseda iwuwo fẹẹrẹ le jẹ aṣayan ti o dara julọ. Ti ọran lilo rẹ ba nilo ipa-ọna eka ati igbẹkẹle giga, lẹhinna AMQP yoo dara julọ.

Igbelewọn Da lori System Architecture

Awọn faaji eto tun ṣe ipa kan ninu ipinnu. MQTT ayedero mu ki o kan ti o dara wun fun awọn ọna šiše pẹlu kan ko o ati ki o rọrun ibaraẹnisọrọ awoṣe. AMQP, pẹlu irọrun rẹ ati ṣeto ẹya ti o lagbara, dara julọ fun awọn eto eka pẹlu awọn iwulo ibaraẹnisọrọ oniruuru.

Igbelewọn Da lori Network Awọn ipo

Awọn ipo nẹtiwọki jẹ ifosiwewe pataki miiran. MQTT n ṣiṣẹ daradara ni bandiwidi-kekere, lairi giga, tabi awọn nẹtiwọọki ti ko ni igbẹkẹle. AMQP, ni ida keji, nilo asopọ nẹtiwọọki ti o gbẹkẹle nitori oke ti o ga julọ.

Igbelewọn Da lori Ti beere Didara Iṣẹ

MQTT pese awọn ipele mẹta ti didara iṣẹ, gbigba fun irọrun ni awọn iṣeduro ifijiṣẹ ifiranṣẹ. AMQP, pẹlu fifiranṣẹ ti o tẹsiwaju, ṣe idaniloju igbẹkẹle giga ni ifijiṣẹ ifiranṣẹ.

Ṣiṣe Ipinnu Rẹ

Mejeeji MQTT ati AMQP ni awọn agbara wọn ati pe wọn baamu fun awọn oju iṣẹlẹ oriṣiriṣi. Loye awọn iyatọ bọtini wọn ati iṣiro awọn ibeere rẹ lodi si awọn iyatọ wọnyi yoo ṣe iranlọwọ fun ọ lati ṣe ipinnu alaye nigbati o yan. Ranti, yiyan ti o tọ da lori awọn iwulo ati awọn ihamọ rẹ pato.

iranran_img

Titun oye

iranran_img