বিতরণকৃত কিউ সমস্যার সমাধান কী?


23

ডিস্ট্রিবিউটেড ক্যুয়ের সমস্যা যেভাবে সমাধান করা যেতে পারে সে সম্পর্কে আরও জানার চেষ্টা করছি। সুতরাং আমি কী পণ্য, পরিষেবা, বাস্তবায়ন এবং গবেষণা কাগজপত্রগুলি ইতিমধ্যে আছে তা জানতে চাই।

একটি বাস্তবায়ন অনেক চ্যালেঞ্জের মুখোমুখি হবে এবং ট্রেড অফ করতে বাধ্য হবে:

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

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

এছাড়াও যদি উপরোক্ত তালিকায় আমি যে কোনও চ্যালেঞ্জ মিস করে থাকতে পারি তবে।

উত্তর:


13

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

http://activemq.apache.org/what-open-source-integration-solution-works-best-with-activemq-.html

এটির শক্তিশালী নাকি অর্ডার হারানো আছে? হ্যাঁ। এটি আপনার প্রোগ্রামের প্রয়োজনের উপর নির্ভর করে উভয়ই রয়েছে। এখানে বিশদগুলি: http://activemq.apache.org/total-ordering.html

এটি কি আদর্শবান রাখে? না, তবে আপনার অ্যাপ্লিকেশন স্তরটিতে এটি প্রয়োগ করা খুবই ক্ষুদ্র you

একটি মেশিনে কী ফিট করতে পারে তার চেয়ে আমাদের কি আরও বেশি সারি থাকতে পারে? হ্যাঁ। আপনার কাছে ক্লাস্টারযুক্ত সার্ভার থাকতে পারে এবং আপনি যদি বিভিন্ন সারিতে একাধিক মেশিন সেটআপ করতে চান এবং আপনি যে কোনও একটি থেকে টানতে পারেন।

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

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

এটি কি নেট-স্প্লিটগুলি টোললেট করতে পারে? আমি মনে করি আপনি "নেট-বিভক্ত" বলতে কী বোঝাতে চেয়েছি আমি তা বুঝতে পেরেছি তবে আমি পুরোপুরি নিশ্চিত নই। আমি মনে করি আপনার বোঝার অর্থ যদি জেএমএস সার্ভারগুলি ক্লাস্টারযুক্ত থাকে এবং আমরা সার্ভারগুলির মধ্যে একটির সাথে যোগাযোগটি ছেড়ে দিই তবে এটি অন্য সার্ভারে ওঠা যায় যেখানে এটি ছেড়ে যায় pick হ্যাঁ, তবে আবার এই ধরণের পরিস্থিতি ক্লায়েন্টের কোন সংযোগটি হারিয়েছে তার উপর নির্ভর করে ডুপ্লিকেট বার্তাগুলির দিকে নিয়ে যেতে পারে।

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

যখন ক্লায়েন্টরা ক্রাশ করতে পারে তখন কি এটি সরবরাহের গ্যারান্টি দিতে পারে? হ্যাঁ এটি জেএমএসের অন্যতম প্রধান লক্ষ্য। গ্যারান্টেড ডেলিভারি মানে এই যে কোনও বার্তা সারিবদ্ধ থাকলে এটি কোনও ক্লায়েন্ট দ্বারা পরিচালিত হওয়ার নিশ্চয়তা রয়েছে।

এটি কি গ্যারান্টি দিতে পারে যে একই বার্তা একাধিকবার সরবরাহ করা হয়নি? হ্যাঁ যদি লেনদেন করা সেশনগুলি ব্যবহার করা হয়। এর অর্থ কোনও ক্লায়েন্ট বার্তাটি গ্রহণ করেছে এবং কমিট / রোলব্যাক বলেছে। কমিট বলা হয়ে গেলে এটি বার্তাটি পুনরায় বিতরণ করবে না।

কোনও নির্দিষ্ট পয়েন্টে নোড ক্র্যাশ করতে পারে, ফিরে আসতে পারে এবং আবর্জনা প্রেরণ করতে পারে না? যে ক্ষেত্রে আপনার টেকসই ক্লাস্টারযুক্ত সারি রয়েছে। হ্যাঁ ক্লাস্টারের অন্য নোডটি বার্তা দিলে এটি "জাঙ্ক" স্প্রে করবে না। এটি এখনও স্বীকৃত নয় এমন যে কোনও কিছু আবার সরবরাহ করতে পারে।

আপনি কি ডাউন টাইম ছাড়াই একটি চলমান ক্লাস্টারে নোডগুলি যোগ করতে, বা নোডগুলি সরাতে পারেন? হ্যাঁ।

আপনি কি ডাউন টাইম ছাড়াই চলমান ক্লাস্টারে নোডগুলি আপগ্রেড করতে পারেন? উত্তর দেওয়ার জন্য এটি আমার পক্ষে একটু কৌশলযুক্ত তবে আমি বিশ্বাস করি যে হ্যাঁ আপনি এটি করতে পারেন।

এটি কি ভিন্নজাতীয় সার্ভারগুলিতে সমস্যা ছাড়াই চলতে পারে? তুমি আসলে কি বোজাতে ছাচ্ছ? আমি খুঁজে পেয়েছি বেশিরভাগ জেএমএস সরবরাহকারীরা বিভিন্ন হার্ডওয়্যার, ওএস ইত্যাদি ব্যবহার করে পরিবেশে চালানো খুব সহজ, যদিও আপনি যদি পারফরম্যান্স বোঝাতে চান তবে এটি সম্পূর্ণ অন্য জিনিস। যে কোনও বিতরণ প্রক্রিয়াকরণ সিস্টেমকে ধীর নোড দ্বারা নেতিবাচকভাবে প্রভাবিত করা যেতে পারে। আমার কাছে কুই এবং গ্রাহকরা চলমান 2 8 টি কোর ইন্টেল সার্ভার রয়েছে। এটি একসাথে ১ores টি কোর এবং আমি গ্রাহক হিসাবে কোনও একটি কোর মেশিন যুক্ত করার চেয়ে কেবলমাত্র এই দুটি বাক্সই ব্যবহার করে আরও ভাল পারফরম্যান্স পেয়েছি। সেই একক কোর মেশিনটি এত ধীর ছিল যে এটি 2x এর ফ্যাক্টর দ্বারা পুরো গ্রিডটি ধীর করে দিয়েছিল। এটি প্রতি জেএমএসের সাথে কোনও সম্পর্ক ছিল না।

আপনি কি একটি গ্রুপের সার্ভারের "সারি" রাখতে পারেন? সংক্ষিপ্ত উত্তর হ্যাঁ। আমি এমন একটি উপায় সম্পর্কে ভাবতে পারি যেখানে আপনি কেবল ইওরোপীয় ডেটা সেন্টারে থাকা একটি ক্লাস্টার চালাতে পারেন এবং সেখানে সারিটি কনফিগার করতে পারেন। তারপরে আপনার বসন্তের কনফিগারেশনে আপনার ভোক্তাদের সেই সারিটি এবং অন্যান্য ক্লাস্টারে থাকা অন্যান্য সারিগুলি গ্রাস করতে হবে। আপনি ডক্সের সাথে পরামর্শ করতে চাইতে পারেন:

http://activemq.apache.org/clustering.html

যদি এটি পাওয়া যায় তবে কমপক্ষে দুটি ডাটাসেন্টারে ডেটা প্রতিলিপি স্থাপন করা নিশ্চিত করা যায়? আবার আমি এটি বিশ্বাস করি তবে ক্লাস্টারিং ডক্সের সাথে পরামর্শ করা ভাল।

আবার জেএমএসের কাছে প্রচুর অপশন রয়েছে যা আপনি আপনার প্রয়োজনীয়তা ডিক্ট করার সাথে সাথে টুইট করতে পারেন। লেনদেন সেশন এবং টেকসই সারি ব্যবহার করে পারফরম্যান্স ব্যয়। আমি সমস্ত ঘণ্টা এবং হুইসেলগুলি প্রভাবিত করে 10x হিসাবে কার্যকর পারফরম্যান্স চালু করতে দেখেছি। আমি যখন JBossMQ ব্যবহার করেছি আমরা যদি এই বৈশিষ্ট্যগুলির কয়েকটি বন্ধ করে থাকি তবে আমরা প্রায় 10,000 টি বার্তা / গুলি পেতে পারি, তবে সেগুলি চালু করে 1000 টি বার্তা / গুলি নামিয়ে আনে। বড় ড্রপ।


এই উত্তরটি দিয়ে সময় দেওয়ার জন্য আপনাকে ধন্যবাদ। একটি নেট-বিভক্ত হয় যখন একটি ক্লাস্টারের কিছু নোড বাকিগুলির সাথে আর যোগাযোগ করতে না পারে। ভিন্ন ভিন্ন সার্ভার দ্বারা আমি প্রায়শই বিভিন্ন পরিমাণের র‍্যাম বোঝায় - সার্ভারগুলি একসাথে দেখলে কিছু বিতরণকারী সিস্টেম এটিকে পছন্দ করে।
ক্রিস ভেস্ট

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

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