মোসকুইটো একাধিক ব্রোকারকে সমর্থন করতে পারে?


20

আমি বিবেচনা করে থাকেন Mosquitto একটি বাড়িতে IOT নেটওয়ার্কের জন্য একটি MQTT বার্তা দালাল জন্য, কিন্তু আমি উদ্বিগ্ন যে দালাল ব্যর্থতা যা নিচে আমার পুরো নেটওয়ার্ক আনতে পারে যদি এটি ব্যর্থ হয়েছে একটি একক বিন্দু হতে পারে, সব বার্তা মধ্য দিয়ে যেতে যেহেতু ব্রোকার কোনও কারণে অফলাইনে গেলে (যেমন দুর্ঘটনাযুক্ত আনপ্লাগিং, হার্ডওয়্যার ব্যর্থতা, ইত্যাদি) ব্রোকার এবং কোনও বার্তা প্রেরণ করা যায় না all

নেটওয়ার্কের নির্ভরযোগ্যতা উন্নত করতে মোসকিটো ইনস্টল থাকা একাধিক ব্রোকার ব্যবহার করা সম্ভব হবে? যদি এটি সম্ভব হয় তবে একাধিক ব্রোকার ব্যবহারে কোনও অসুবিধা / উল্লেখযোগ্য ওভারহেড রয়েছে কি?

উত্তর:


12

হ্যাঁ, মোসকুইটো একাধিক ব্রোকারকে সমর্থন করে।

মশকুই একাধিক ব্রোকারকে সংযুক্ত করতে এমকিউটিটি ব্রিজ ব্যবহার করে এইভাবে এই মশার দালালদের মধ্যে বার্তাগুলিকে রাউটিং করে। এইভাবে আপনার প্রাথমিক ব্রোকারের মধ্যে একটি ফ্যালব্যাক সিস্টেমের মধ্যে একটি সেতু স্থাপন করা যেতে পারে। যদিও লুপ তৈরি করা এড়িয়ে চলুন। যদি উভয় দালাল আপনার ক্লায়েন্টদের প্রাথমিক ব্রোকারের কাছে প্রকাশ করে তবে এটি প্রতিটি এবং ব্রিজড গৌণ দালাল সহ যে কোনও গ্রাহককে বিষয় প্রকাশ করে। প্রাথমিক ব্যর্থ হলে আপনার ক্লায়েন্টরা নোট করবে (সংযোগ প্রত্যাখ্যান, সার্ভার অনুপলব্ধ) এবং সরাসরি মাধ্যমিকটিতে প্রকাশ করতে ফ্যালব্যাক করতে পারে। (কীভাবে অন্য উপায়ে এটি ঠিক করবেন আমি এখনও নিশ্চিত নই।) যেহেতু আপনি ক্লায়েন্টটি অনর্থকভাবে সংযোগ বিচ্ছিন্ন করার প্রত্যাশা করছেন না আমি মনে করি যে "শেষ উইল এবং টেস্টামেন্ট" এখানে প্রযোজ্য হবে না (এটি ব্রোকারকে জানাতে ব্যবহৃত হবে) সংযোগ বিচ্ছিন্ন ক্লায়েন্টের পক্ষে)।

এই পোস্টটি তবে বিশেষত স্কেল্যাবিলিটি এবং প্রাপ্যতার ক্ষেত্রে এই পদ্ধতির ত্রুটিগুলি তালিকাবদ্ধ করে:

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

10

.NET এ প্রয়োগটি একটি ক্লায়েন্টকে একটি ব্রোকারের সাথে সংযোগ করতে দেয়, তাই আমি কেন বলব না ...

MqttClient mqtt;
string broker = ini.getData("MQTT", "hostname");
mqtt = new MqttClient(broker);
mqtt.MqttMsgPublishReceived += mqtt_received;
mqtt.Connect(Guid.NewGuid().ToString());

কথাটি হ'ল, যখন অন্য ব্রোকার বার্তা প্রেরণ শুরু করবে বা ক্লায়েন্টদের সতর্ক করবে তখন আপনাকে ফ্যালব্যাকের ক্ষেত্রে ডুপ্লিকেটগুলি পরিচালনা করতে হবে

একাধিক সম্ভাবনা থাকতে পারে যেমন প্রতিটি ব্রোকার একে অপরের সাবস্ক্রাইব করে এবং নিজের এবং তাদের ক্লায়েন্টদের সতর্ক করতে একটি শেষ উইল এবং টেস্টামেন্ট সেট করে যে ফলব্যাক হবে!


কীভাবে কোনও ব্রোকার সাবস্ক্রাইব করতে বা আরও কিছু অন্য ব্রোকারের সাথে সংযুক্ত হতে পছন্দ করে?
বেনস কৌলিক্স

1
আমি ব্রোকারের সার্ভারে নেস্টেড কোনও ক্লায়েন্টের কথা ভাবছিলাম।
গফালাইট

@ গফালাইট, সাধারণভাবে এটি এমকিউটিটি-র জন্য সত্যই কার্যকর thanks প্রশ্নটিতে আমি যে দালালটি নিয়ে আলোচনা করেছি মোসাকিট্টো সম্পর্কে আপনি কি আরও কিছু জানতে পারবেন ?
অরোরা 10001

এটি এমকিউটিটি সম্পর্কে আমি সবচেয়ে কম জিনিস জানি (আমি বুঝতে পারিনি যে আইওটি এসই তে আসার আগে হিভএমকিউয়ের মতো অন্যান্য ব্রোকারও ছিল)। আপনি আর কি জানতে চান? আপনি বাস্তবায়ন মানে?
গফালাইট

@ গৌফালাইট কেবল আগ্রহী যে মোসকুইটো নিজেই সমান্তরালভাবে একাধিক দালাল চালানোর উপায় আছে কিনা। আপনি যদি এটির জন্য ম্যাসকিউটো বা লিঙ্ক ডকুমেন্টেশনের সাথে কোনও উপায় করার পরামর্শ দিতে পারেন তবে দুর্দান্ত।
অরোরা 10001
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.