আমি কীভাবে এডাব্লুএস আইওটি দিয়ে একটি কাজের সারির জন্য প্রধান এবং ফেইলওভার এমকিউটিটি গ্রাহকদের সেট আপ করতে পারি?


11

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

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

এই সিস্টেমের জন্য এখানে একটি লজিকাল সিস্টেম আর্কিটেকচার অঙ্কন।

                   -----> MainSubscriber ----
                  /                          \
ClientA --> Broker                            ---> Database
                  \                          /
                   ---> FailoverSubscriber --

স্পষ্টতই, এই জাতীয় সিস্টেমের সাথে কিছু চ্যালেঞ্জ রয়েছে:

  1. মূল গ্রাহক কীভাবে ব্যর্থতার গ্রাহককে অনুরোধে কাজ করছে তা নির্দেশ করে?
  2. ফেলোভার গ্রাহক কীভাবে সনাক্ত করতে পারবেন যে প্রধান গ্রাহক অনুরোধটি গ্রহণ করেন নি এবং এটিতে কাজ শুরু করা দরকার?
  3. হঠাৎ করে অনলাইনে ফিরে এসে অনুরোধটি গ্রহণের ক্ষেত্রে ব্যর্থতা গ্রাহক কীভাবে মূল গ্রাহককে আটকে রাখবেন?
  4. প্রধান এবং ফেইলওভার গ্রাহকদের মধ্যে কীভাবে সমকালীন সমস্যাগুলি মোকাবেলা করতে হবে?

এই জাতীয় প্রকল্পের জন্য যদি ইতিমধ্যে একটি বিদ্যমান সমাধান উপস্থিত থাকে তবে আমাকে চাকাটি পুনরায় উদ্ভাবন করতে হবে না। সুতরাং, আমার প্রথম প্রশ্নটি এখানে ইতিমধ্যে কিছু আছে কিনা?

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


আপনি কি অনুসন্ধান করেছেন যে অ্যামাজন এসকিউএস এর মতো একটি বার্তার সারিটি এখানে সহায়ক হতে পারে? মনে হয় এটি ডাব্লুএস আইওটির সাথে সংহত রয়েছে এবং এটি 'ওয়ার্ক সারি' শৈলীর সমস্যার জন্য উপযুক্ত দেখাচ্ছে।
অরোরা 10001

উত্তর:


8

এডাব্লুএস এসকিউএস ডকুমেন্টেশন অনুসারে (যেমন আপনি বলেছিলেন ব্রোকার এডাব্লুএস) এটি স্থানীয় হতে হবে:

বার্তাটি পাওয়ার পরপরই এটি কাতারে থেকে যায়। অন্য গ্রাহকদের আবার বার্তা প্রক্রিয়াকরণ করা থেকে বিরত রাখতে, অ্যামাজন এসকিউএস একটি দৃশ্যমান সময়সীমা নির্ধারণ করে, এমন একটি সময়কালে আমাজন এসকিউএস বার্তা গ্রহণ ও প্রক্রিয়াজাতকরণ থেকে অন্যান্য গ্রাহক উপাদানকে বাধা দেয়।

আপনার সর্বাধিক প্রক্রিয়াকরণের সময় অনুসারে সঠিক দৃশ্যমানতার সময়সীমা খুঁজে পাওয়া সমস্যা।

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


7

আপনি এডাব্লুএস এসকিউএসের ডেড-লেটারের সারিগুলির ধারণাটি দেখতে চাইতে পারেন । এডাব্লুএস ডক্স থেকে:

একটি ডেড লেটার সারি হ'ল একটি সারি যা অন্যান্য (উত্স) সারিগুলি সফলভাবে প্রক্রিয়া করা যায় না (গ্রাস করা) বার্তাগুলির জন্য লক্ষ্যবস্তু করতে পারে। তাদের প্রক্রিয়াকরণ কেন সফল হয়নি তা নির্ধারণ করতে আপনি এই বার্তাগুলিকে মৃত চিঠির কাতারে আলাদা করে আলাদা করতে পারেন।

সুতরাং, যদি আপনি সাধারণ গ্রাহক এবং মৃত-পত্রের সারি থেকে দ্বিতীয় গ্রাহক শুনতে শোনার জন্য প্রধান গ্রাহককে নির্দেশ করেন তবে ব্যর্থতা সমস্যাটি সমাধান করা উচিত।

এছাড়াও, এটির সাথে আপনার সমস্যার 1, 2 এবং 3 টি যত্ন নেওয়া হয়। এই ক্ষেত্রে প্রধান এবং গৌণ গ্রাহকদের একে অপরের সাথে কথা বলার দরকার নেই।

এছাড়াও, Tensibai এর উত্তর উপর বিল্ডিং, যেমন একটি সময়ে এক বার্তা নিশ্চিত আপনার গ্রাহক কোড যাতে লেখা আছে করতে একাধিক গ্রাহক একই সারিতে শুনছেন যদি কারণেvisibility timeout


খারাপ দিকটি হ'ল এটি প্রসেসিংয়ে বিলম্বের পরিচয় দেয়, বার্তাগুলি মৃত চিঠির কাতারে কিছুক্ষণ পরে প্রবেশ করে।

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.