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