Zephyrnet লোগো

IoT যোগাযোগের জন্য MQTT বনাম AMQP: হেড টু হেড

তারিখ:

IoT যোগাযোগের জন্য MQTT বনাম AMQP: হেড টু হেড
চিত্র: সকলের জন্য আইওটি

ইন্টারনেট অফ থিংস (IoT) এর সূচকীয় বৃদ্ধির সাথে, ডিভাইস এবং সিস্টেমের মধ্যে যোগাযোগ পরিচালনার গুরুত্ব বাড়ছে। MQTT এবং AMQP-এর মতো বার্তা সারিবদ্ধ প্রোটোকল দ্বারা IoT যোগাযোগ সম্ভব হয়েছে যা কাঠামোগত এবং দক্ষ পদ্ধতিতে তথ্য আদান-প্রদানকে সহজতর করে।

দুটি জনপ্রিয় প্রোটোকল যা IoT কে শক্তি দেয় MQTT প্রোটোকল (মেসেজ কিউইং টেলিমেট্রি ট্রান্সপোর্ট) এবং AMQP (অ্যাডভান্সড মেসেজ কিউইং প্রোটোকল)। আসুন এই প্রোটোকলগুলির প্রতিটি বিশদভাবে অন্বেষণ করি এবং তাদের মূল পার্থক্য এবং দুটির মধ্যে নির্বাচন করার সময় বিবেচনা করার বিষয়গুলি ব্যাখ্যা করি।

বার্তা সারিবদ্ধ প্রোটোকলের গুরুত্ব

IoT-তে, সাধারণ সেন্সর থেকে জটিল মেশিন পর্যন্ত ডিভাইসগুলির একে অপরের সাথে এবং কেন্দ্রীয় সিস্টেমের সাথে যোগাযোগ করতে হবে। এই ডিভাইসগুলি প্রায়ই সীমাবদ্ধ সংস্থান সহ পরিবেশে কাজ করে, যেমন কম শক্তি বা অবিশ্বস্ত নেটওয়ার্ক।

বার্তা সারিবদ্ধ প্রোটোকল মত MQTT, যা এই ধরনের পরিবেশের জন্য ডিজাইন করা হয়েছে, এই ডিভাইসগুলিকে দক্ষতার সাথে এবং নির্ভরযোগ্যভাবে যোগাযোগ করতে সক্ষম করে।

বিতরণ করা সিস্টেমে, উপাদানগুলিকে প্রায়ই আলগা কাপলিং বজায় রাখার সময় তথ্য বিনিময় করতে হয়। AMQP এর মত প্রোটোকল, এর শক্তিশালী বৈশিষ্ট্য এবং জটিল রাউটিং ক্ষমতা সহ, এই যোগাযোগের জন্য একটি নির্ভরযোগ্য উপায় প্রদান করে।

এই প্রোটোকলগুলি নিশ্চিত করে যে বার্তাগুলি নির্ভরযোগ্যভাবে বিতরণ করা হয়, এবং সিস্টেমগুলি স্বাধীনভাবে স্কেল এবং বিকাশ করতে পারে।

MQTT কি?

MQTT, মেসেজ কিউইং টেলিমেট্রি ট্রান্সপোর্টের জন্য সংক্ষিপ্ত, একটি হালকা প্রকাশ/সাবস্ক্রাইব মেসেজিং প্রোটোকল। এটি 1999 সালে IBM দ্বারা চালু করা হয়েছিল।

সীমাবদ্ধ ডিভাইস এবং কম-ব্যান্ডউইথ, উচ্চ-লেটেন্সি, বা অবিশ্বস্ত নেটওয়ার্কগুলির জন্য ডিজাইন করা, MQTT মেশিন-টু-মেশিন বা IoT ব্যবহারের ক্ষেত্রে উপযুক্ত যেখানে একটি ছোট কোড ফুটপ্রিন্ট প্রয়োজন।

MQTT এর উপর ভিত্তি করে কাজ করে মডেল প্রকাশ/সাবস্ক্রাইব করুন. এই মডেলে, একজন প্রযোজক, একজন প্রকাশক হিসাবে পরিচিত, বার্তা তৈরি করে, এবং একজন গ্রাহক, একজন গ্রাহক হিসাবে পরিচিত, সেগুলি গ্রহণ করে।

প্রকাশক এবং গ্রাহকের মধ্যে মিথস্ক্রিয়া একটি দালাল দ্বারা পরিচালিত হয়। ব্রোকার প্রকাশক থেকে গ্রাহকদের কাছে বার্তা বিতরণের জন্য দায়ী।

MQTT এর সরলতা এর ন্যূনতম প্রোটোকল কমান্ডের মধ্যে রয়েছে। এটিতে মাত্র কয়েকটি কমান্ড রয়েছে, যা বিভিন্ন ডিভাইস এবং সিস্টেমে প্রয়োগ করা সহজ করে তোলে।

এছাড়াও, এর পরিষেবার মানের স্তরগুলি বার্তা বিতরণ নিশ্চিতকরণের অনুমতি দেয়, নিশ্চিত করে যে কোনও বার্তা প্রেরণে হারিয়ে না যায়। আরো বিস্তারিতভাবে MQTT অন্বেষণ করা যাক.

MQTT পরিবহন এবং ফ্রেমিং

MQTT TCP, TLS, WebSocket, বা ব্যবহার করতে পারে QUIC এর পরিবহন স্তর হিসাবে, সংযোগ তৈরি করা, সেশন স্থাপন করা এবং ক্লায়েন্ট এবং ব্রোকারদের মধ্যে নির্ভরযোগ্যভাবে বার্তা প্রেরণ করা।

MQTT ফ্রেমে একটি 2-বাইট ফিক্সড হেডার, একটি পরিবর্তনশীল শিরোনাম এবং একটি পরিবর্তনশীল দৈর্ঘ্যের পেলোড থাকে। হেডারে প্যাকেটের ধরন, পরিষেবা স্তরের গুণমান, অবশিষ্ট দৈর্ঘ্য, প্যাকেট আইডি এবং বৈশিষ্ট্যের মতো তথ্য রয়েছে। বাইনারি পেলোডে প্রকৃত বার্তা প্রেরণ করা হয়।

MQTT সংস্করণ 15 প্রোটোকল স্পেসিফিকেশনে বাইনারি ফ্রেমের উপর ভিত্তি করে 5.0 ধরনের নিয়ন্ত্রণ প্যাকেট সংজ্ঞায়িত করে। সংযোগ, প্রকাশ এবং সদস্যতা নিতে ব্যবহৃত কিছু সাধারণ প্যাকেটের মধ্যে রয়েছে CONNECT, CONACK, PUBLISH, PUBACK, এবং SUBSCRIBE।

MQTT QoS

MQTT বার্তা বিতরণের জন্য পরিষেবার তিনটি গুণ সমর্থন করে:

  • QoS0 “সর্বাধিক একবার”: বার্তাগুলি অপারেটিং পরিবেশের সর্বোত্তম প্রচেষ্টা অনুযায়ী বিতরণ করা হয়; বার্তা ক্ষতি হতে পারে।
  • QoS1 "কমপক্ষে একবার": বার্তা পৌঁছানোর আশ্বাস দেওয়া হয়, কিন্তু সদৃশ হতে পারে.
  • QoS2 "ঠিক একবার": বার্তা ঠিক একবার পৌঁছানোর আশ্বাস দেওয়া হয়.

MQTT সুবিধা এবং অসুবিধা

পেশাদাররা:

  • সরলতা: সহজতম প্রকাশ-সাবস্ক্রাইব ডিজাইন, সেট আপ, বিকাশ এবং পরিচালনা করা সহজ।
  • লাইটওয়েট এবং দক্ষ: MQTT বার্তাগুলিতে কম ব্যান্ডউইথ ব্যবহার সহ শুধুমাত্র 2-টাইপ হেডার ওভারহেড থাকে যা প্রোটোকলকে কম-পাওয়ার, কম-ব্যান্ডউইথ ডিভাইসের জন্য আদর্শ করে তোলে।
  • স্কেলেবিলিটি: মিলিয়ন মিলিয়ন MQTT সংযোগ, বিষয় এবং সদস্যতার স্কেল করুন।
  • নির্ভরযোগ্য বার্তা বিতরণ: নির্ভরযোগ্য মেসেজ ডেলিভারি নিশ্চিত করতে পরিষেবার তিনটি গুণমান, এমনকি অবিশ্বস্ত নেটওয়ার্কেও।
  • কম বিলম্বিতা: সাধারণ বিষয়-ভিত্তিক পাব/সাব মডেলের কারণে এক-অঙ্কের মিলিসেকেন্ড লেটেন্সি সহ রিয়েল-টাইম বার্তা বিতরণের কাছাকাছি।
  • নিরাপত্তা: MQTT TLS/SSL বা QUIC এবং LDAP, JWT, PSK, এবং X.509 সার্টিফিকেট ব্যবহার করে বিভিন্ন প্রমাণীকরণ প্রক্রিয়ার মাধ্যমে সুরক্ষিত যোগাযোগ সমর্থন করে।
  • সামঞ্জস্য এবং একীকরণ: MQTT অনেক প্রোগ্রামিং ভাষা, অপারেটিং সিস্টেম এবং সফ্টওয়্যার প্ল্যাটফর্মের সাথে একত্রিত হতে পারে।

কনস:

  • MQTT-এ স্টোর-এবং-ফরোয়ার্ড সারিবদ্ধতার অভাব রয়েছে।

AMQP কি?

AMQP, অ্যাডভান্সড মেসেজ কিউইং প্রোটোকল, একটি প্রোটোকল যা বিস্তৃত বার্তাপ্রেরণ প্যাটার্ন সমর্থন করে এবং বৈশিষ্ট্যগুলির একটি শক্তিশালী সেট অফার করে। এটি 2003 সালে JP Morgan Chase দ্বারা তৈরি করা হয়েছিল। এটি এমন সিস্টেমের জন্য ডিজাইন করা হয়েছে যেগুলির জন্য উচ্চ স্তরের নির্ভরযোগ্যতা এবং কার্যকারিতা প্রয়োজন।

MQTT এর বিপরীতে, AMQP হল একটি পিয়ার-টু-পিয়ার প্রোটোকল, যার অর্থ এটি প্রযোজক এবং ভোক্তার মধ্যে সরাসরি যোগাযোগ সমর্থন করে।

AMQP একটি মডেল ব্যবহার করে যেখানে বার্তাগুলি এক্সচেঞ্জে পাঠানো হয়, যা তারপর বার্তাগুলিকে বাইন্ডিং নামক নিয়মের উপর ভিত্তি করে উপযুক্ত সারিগুলিতে রুট করে। ভোক্তা তখন সারি থেকে বার্তাটি পুনরুদ্ধার করে।

এই মডেলটি জটিল রাউটিং এবং বিতরণ কৌশলগুলির জন্য অনুমতি দেয়, যা AMQP কে জটিল বিতরণ সিস্টেমের জন্য উপযুক্ত করে তোলে।

AMQP এর শক্তি তার বিস্তৃত বৈশিষ্ট্য সেটের মধ্যে নিহিত। এটি ক্রমাগত মেসেজিং সহ বিভিন্ন ধরনের মেসেজ প্রোপার্টি এবং ডেলিভারি মোড সমর্থন করে, যা নিশ্চিত করে যে ব্রোকার রিস্টার্ট করলেও বার্তাগুলি হারিয়ে যাবে না।

AMQP এক্সচেঞ্জ এবং বাইন্ডিং

AMQP-এ, একটি বিনিময় হল একটি ইমেল ট্রান্সফার এজেন্টের মতো যা ইমেল পরিদর্শন করে এবং রাউটিং কী এবং টেবিলের ভিত্তিতে সিদ্ধান্ত নেয়। একটি রাউটিং কী সার্ভারের তথ্য ছাড়াই To:, Cc:, বা Bcc: ঠিকানা সহ একটি ইমেলের সাথে মিলে যায় (রাউটিং একটি AMQP সার্ভারের মধ্যে অভ্যন্তরীণ)। একটি বাঁধাই ইমেল স্থানান্তর এজেন্টের রাউটিং টেবিলের একটি এন্ট্রির মতো।

AMQP চার ধরনের এক্সচেঞ্জ সংজ্ঞায়িত করে:

  1. সরাসরি (পয়েন্ট-টু-পয়েন্ট): বার্তাগুলি সরাসরি এক্সচেঞ্জে আবদ্ধ সারিতে পাঠানো হয়।
  2. ফ্যানআউট: এক্সচেঞ্জে আবদ্ধ প্রতিটি সারিতে বার্তা পাঠানো হয়।
  3. বিষয় (প্রকাশ-সাবস্ক্রাইব): রাউটিং কী এবং এক্সচেঞ্জে বাইন্ডিং প্যাটার্নের উপর ভিত্তি করে বার্তাগুলি সারিগুলিতে পাঠানো হয়৷
  4. শিরোনাম (প্রকাশ-সাবস্ক্রাইব): বার্তা শিরোনামগুলির প্যাটার্ন মিলের উপর ভিত্তি করে বার্তাগুলি সারিগুলিতে পাঠানো হয়৷

AMQP পরিবহন এবং ফ্রেমিং

AMQP হল একটি বাইনারি প্রোটোকল যা TCP/IP-এর উপর নির্মিত, যেখানে ক্লায়েন্ট এবং ব্রোকারের মধ্যে একটি নির্ভরযোগ্য, স্থায়ী, স্ট্রিম-ভিত্তিক সংযোগ স্থাপন করা হয়। একাধিক চ্যানেল একটি একক সকেট সংযোগে খোলা যেতে পারে, যাতে একাধিক স্ট্রিম ডেটা একযোগে স্থানান্তর করা যায়।

সংস্করণ 1.0-এ AMQP ফ্রেমে একটি 8-বাইট ফিক্সড হেডার, একটি ঐচ্ছিক বর্ধিত হেডার এবং একটি পরিবর্তনশীল-দৈর্ঘ্যের বাইনারি পেলোড থাকে। ফিক্সড হেডারে ফ্রেমের ধরন, চ্যানেল নম্বর এবং পেলোডের আকার সম্পর্কে তথ্য থাকে।

পেলোডে প্রকৃত বার্তা প্রেরণ করা হয়, সাথে সংশ্লিষ্ট মেটাডেটাও থাকে।

AMQP এর সুবিধা এবং অসুবিধা

পেশাদাররা:

  • স্টোর-এন্ড-ফরওয়ার্ড সারিবদ্ধ: AMQP কিছু দক্ষতা এবং অতিরিক্ত জটিলতার (MQTT এর তুলনায়) খরচে স্টোর-এবং-ফরোয়ার্ড সারি সমর্থন করে।
  • নমনীয় বার্তা রাউটিং: AMQP নমনীয় বার্তা রাউটিং প্রদান করে, যার মধ্যে পয়েন্ট-টু-পয়েন্ট, প্রকাশ-সাবস্ক্রাইব এবং ফ্যান-আউট রয়েছে।
  • নিরাপত্তা: AMQP এনক্রিপশন এবং প্রমাণীকরণের জন্য TLS এবং SASL-এর মতো নিরাপত্তা ব্যবস্থা সমর্থন করে।
  • বাস্তুতন্ত্র: AMQP-এ বিভিন্ন প্রোগ্রামিং ভাষার জন্য ওপেন-সোর্স সার্ভার বাস্তবায়ন এবং ক্লায়েন্ট লাইব্রেরির একটি বড় এবং পরিপক্ক ইকোসিস্টেম রয়েছে।

কনস:

  • জটিল: AMQP তার মডেলে অনেক ধারণা প্রবর্তন করে এবং বোঝা, সেট আপ এবং পরিচালনা করা জটিল এবং চ্যালেঞ্জিং হতে পারে।
  • হেভিওয়েট: AMQP তার পরিবহন স্তরে "চ্যানেল" সহ মাল্টিপ্লেক্সিং চালু করেছে। প্রতিটি AMQP ফ্রেমে 8 বাইটের একটি হেডার ওভারহেড থাকে।
  • অনঅগ্রসর উপযোগিতা: AMQP-এর সবচেয়ে বড় সমস্যা হল যে সংস্করণ 0.9.1 এবং 1.0 সম্পূর্ণ আলাদা, যার ফলে এই সমাধানের জায়গায় আরও জটিলতা দেখা দেয়।
  • পরিমাপযোগ্যতা এবং কর্মক্ষমতা: কিছু ব্যবহারের ক্ষেত্রে AMQP এর সীমিত পরিমাপযোগ্যতা এবং কম কর্মক্ষমতা থাকতে পারে। এটি এর স্থাপত্যের কারণে, যা MQTT-এর মতো লাইটওয়েট প্রোটোকলের তুলনায় বেশি জটিলতা এবং ওভারহেড আরোপ করে।

MQTT বনাম AMQP: হেড টু হেড

নিম্নলিখিত সারণীটি AMQP এবং MQTT এর মধ্যে আমাদের তুলনার সংক্ষিপ্ত বিবরণ দেয়।

  এএমকিউপি MQTT
সংজ্ঞা উন্নত বার্তা সারিবদ্ধ প্রোটোকল বার্তা সারিবদ্ধ টেলিমেট্রি পরিবহন
উৎপত্তি 2003 সালে JPMorgan চেজ দ্বারা উদ্ভাবিত 1999 সালে IBM দ্বারা উদ্ভাবিত
স্থাপত্য EBQ (এক্সচেঞ্জ-বাইন্ডিং-কিউ) বিষয়-ভিত্তিক প্রকাশ/সাবস্ক্রাইব করুন
কোর ধারণা এক্সচেঞ্জ সারি বাইন্ডিং রাউটিং কী বিষয় সদস্যতা
প্রধান প্রোটোকল সংস্করণ · 0.9.1 নভেম্বর 2008 সালে মুক্তি পায়
· 1.0 অক্টোবরে প্রকাশিত 2012
· 3.1.1 ডিসেম্বর 2015 এ মুক্তি পায়
· 5.0 মার্চ 2019 এ মুক্তি পায়
মেসেজিং দৃষ্টান্ত    
বিন্দু বিন্দু ✅ (স্টোর এবং ফরোয়ার্ড সারি) আংশিক সমর্থন
সাবস্ক্রাইব প্রকাশ
ফ্যান-আউট ✅ আরো মাপযোগ্য
ফ্যান-ইন
অনুরোধ/উত্তর ✅ 5.0 সংস্করণে
পুশ / টানুন
পরিবহন নেটওয়ার্ক    
বিভিন্ন TCP
টিএলএস / এসএসএল
ওয়েবসকেট
QUIC
কাঠামোবদ্ধ    
ফ্রেম স্ট্রাকচার ফ্রেম তিনটি স্বতন্ত্র এলাকায় বিভক্ত করা হয়:
স্থির প্রস্থ ফ্রেম হেডার,
পরিবর্তনশীল প্রস্থ বর্ধিত হেডার,
পরিবর্তনশীল প্রস্থ ফ্রেম বডি।
একটি MQTT কন্ট্রোল প্যাকেট তিনটি পর্যন্ত অংশ নিয়ে গঠিত:
স্থির শিরোনাম
পরিবর্তনশীল হেডার
পেলোড
হেডার সাইজ ঠিক করুন 8 বাইট 2 বাইট
পেলোড সামগ্রী বাইনারি বাইনারি
সর্বোচ্চ পেলোড সাইজ 2GB 256MB
বিলি    
QoS 0: সর্বাধিক একবার
QoS 1: অন্তত একবার
QoS 2: ঠিক একবার
নিরাপত্তা SSL / TLS SSL / TLS

নির্বাচন করার সময় বিবেচনা করার বিষয়গুলি

যখন এমকিউটিটি বনাম এএমকিউপির মধ্যে একটি সিদ্ধান্তের সম্মুখীন হয়, তখন বিবেচনা করার জন্য বেশ কয়েকটি কারণ রয়েছে।

ব্যবহারের ক্ষেত্রে প্রয়োজনীয়তার উপর ভিত্তি করে মূল্যায়ন

MQTT এবং AMQP এর মধ্যে পছন্দটি মূলত ব্যবহারের ক্ষেত্রে প্রয়োজনীয়তার উপর নির্ভর করে। আপনি যদি সীমাবদ্ধ ডিভাইস বা অবিশ্বস্ত নেটওয়ার্কগুলির সাথে কাজ করে থাকেন তবে MQTT এর হালকা প্রকৃতির সাথে আরও ভাল বিকল্প হতে পারে। যদি আপনার ব্যবহারের ক্ষেত্রে জটিল রাউটিং এবং উচ্চ নির্ভরযোগ্যতার প্রয়োজন হয়, তাহলে AMQP আরও উপযুক্ত হবে।

সিস্টেম আর্কিটেকচারের উপর ভিত্তি করে মূল্যায়ন

সিস্টেম আর্কিটেকচারও সিদ্ধান্তে একটি ভূমিকা পালন করে। MQTT এর সরলতা এটিকে একটি পরিষ্কার এবং সহজ যোগাযোগ মডেল সহ সিস্টেমগুলির জন্য একটি ভাল পছন্দ করে তোলে। AMQP, এর নমনীয়তা এবং শক্তিশালী বৈশিষ্ট্য সেট সহ, বিভিন্ন যোগাযোগের প্রয়োজনের সাথে জটিল সিস্টেমের জন্য আরও উপযুক্ত।

নেটওয়ার্ক অবস্থার উপর ভিত্তি করে মূল্যায়ন

নেটওয়ার্ক অবস্থা আরেকটি গুরুত্বপূর্ণ কারণ। MQTT কম ব্যান্ডউইথ, উচ্চ লেটেন্সি, বা অবিশ্বস্ত নেটওয়ার্কে ভাল পারফর্ম করে। অন্যদিকে, AMQP এর উচ্চ ওভারহেডের কারণে একটি নির্ভরযোগ্য নেটওয়ার্ক সংযোগ প্রয়োজন।

পরিষেবার প্রয়োজনীয় মানের উপর ভিত্তি করে মূল্যায়ন

MQTT পরিষেবার মানের তিনটি স্তর প্রদান করে, যা বার্তা প্রদানের গ্যারান্টিতে নমনীয়তার অনুমতি দেয়। AMQP, তার অবিরাম মেসেজিং সহ, বার্তা বিতরণে উচ্চ নির্ভরযোগ্যতা নিশ্চিত করে।

আপনার সিদ্ধান্ত মেকিং

MQTT এবং AMQP উভয়েরই তাদের শক্তি রয়েছে এবং বিভিন্ন পরিস্থিতির জন্য উপযুক্ত। তাদের মূল পার্থক্যগুলি বোঝা এবং এই পার্থক্যগুলির বিরুদ্ধে আপনার প্রয়োজনীয়তাগুলি মূল্যায়ন করা আপনাকে বেছে নেওয়ার সময় একটি জ্ঞাত সিদ্ধান্ত নিতে সহায়তা করবে। মনে রাখবেন, সঠিক পছন্দ আপনার নির্দিষ্ট চাহিদা এবং সীমাবদ্ধতার উপর নির্ভর করে।

স্পট_আইএমজি

সর্বশেষ বুদ্ধিমত্তা

স্পট_আইএমজি