আক্কা কি জেএমএস / এএমকিউপি বার্তা দালালদের অচল করে দেয়? [বন্ধ]


19

আমি মধ্যে গত সপ্তাহে গভীর ডাইভিং অতিবাহিত আক্কা ডক্স এবং পরিশেষে তা বুঝতে অভিনেতা সিস্টেম আছে, এবং সমস্যার যে তারা সমাধানের জন্য।

আমার বোধগম্য (এবং অভিজ্ঞতার সাথে) traditionalতিহ্যবাহী জেএমএস / এএমকিউপি বার্তা দালালগুলি হ'ল নিম্নলিখিত সরবরাহ করার জন্য তাদের উপস্থিত রয়েছে:

  • উত্পাদক এবং ভোক্তাদের মধ্যে অ্যাসিঙ্ক্রোনাস প্রসেসিং; এবং
  • বার্তা সরবরাহের গ্যারান্টি, অন্তর্ভুক্ত অধ্যবসায়, পুনরায় চেষ্টা এবং ফলব্যাক

তবে আক্কায় প্রয়োজনীয় সমস্ত অবকাঠামো এবং অপারেশনাল ওভারহেড ছাড়াই এটি সরবরাহ করে না?

  • আক্কায়, সমস্ত অভিনেতা যোগাযোগ অ্যাসিনক্রোনাস এবং অ-ব্লকিং; এবং
  • আক্কায়, SupervisorStrategiesপুনরায় চেষ্টা, ফলব্যাক এবং ক্রমবর্ধমান কাজ সম্পাদনের জন্য উপস্থিত রয়েছে। অভিনেতাদের কার্যত যে কোনও ধরণের স্টোর অব্যাহত রাখতে কনফিগার করা যেতে পারে , যদি এটিরও প্রয়োজন হয়।

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

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

থটস?


3
আপনার শেষ অনুচ্ছেদটি কী কারণে আক্কা বার্তা দালালকে অচল করে না? উদাহরণস্বরূপ, আমি একটি জাভা অ্যাপ্লিকেশন নিয়ে কাজ করছি যা একটি জেএমএস-অনুবর্তী বার্তা ব্রোকারের মাধ্যমে রিমোট সি ++ অ্যাপ্লিকেশনগুলির সাথে যোগাযোগ করে। আমি আমার জাভা অ্যাপ্লিকেশনটি আক্কা-উট ব্যবহার করে লিখতে পারি, তবে সি ++ অ্যাপ্লিকেশনটির কারণে আমার এখনও ব্রোকারের প্রয়োজন হবে।
টমাসের মালিক

আহঃ থমাস ওভেনসকে (+১) ধন্যবাদ তবে আপনি (যথাযথভাবে) আমার প্রশ্নকে ভুল বুঝেছেন। আমি কয়েক মিনিটের মধ্যে শব্দটি পরিবর্তন করব যাতে এটি আরও স্পষ্ট হয়। আমি কি সত্যিই জিজ্ঞেস করছি: যদি আমি একটি আক্কা অ্যাপ্লিকেশন নির্মাণের করছি, আমি কখনো করতে হবে আরো একটি পরিচয় করিয়ে নতুন JMS / AMQP দালাল? আমি মনে করি উত্তরটি "না", কারণ আক্কা + উট (আবার আমি মনে করি ) সাধারণত দালাল দ্বারা সমাধান করা সমস্ত সমস্যা সমাধান করে। আপনার উদাহরণে, জেএমএস ব্রোকার ইতিমধ্যে সি ++ অ্যাপের সাথে যোগাযোগের উপায় হিসাবে উপস্থিত ; আমি আমার নতুন আক্কা অ্যাপ্লিকেশন সহ এটি যোগ করছি না। এবং তাই আক্কা-উট মডিউলটি আমার জন্য বার্তাগুলির যত্ন নেবে।
বুদ্ধিমান

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

আপনাকে আবার ধন্যবাদ থমাস ওভেনস (+1) - আমি মনে করি আপনি এইটিকে মাত্রই ছাড়িয়ে যাচ্ছেন :-)। আপনার উদাহরণে একটি বিদ্যমান সি ++ অ্যাপ্লিকেশন রয়েছে - সম্ভবত কিছু উত্তরাধিকার ব্যবস্থা রয়েছে এবং এমন একটি বিদ্যমান জেএমএস-অনুগত ব্রোকার রয়েছে যা সি ++ অ্যাপ্লিকেশন ইতিমধ্যে বাইরের বিশ্বের সাথে সংহত করার জন্য ব্যবহার করে। এই ক্ষেত্রে, আমার নতুন আক্কা অ্যাপ্লিকেশনটি - যেমনটি আপনি বলেছিলেন - এই ব্রোকারের / থেকে বার্তাগুলি তৈরি / গ্রাস করতে আক্কা-উট মডিউলটি ব্যবহার করুন। তবে এখানেই আমি জিজ্ঞাসা করছি না! যদি কখনও একটি কারণ যে, আমি গড়ে তুলতে হবে আমি হতাশ করছি 2 জিনিষ (1) আমার নতুন আক্কা অ্যাপ্লিকেশন, এবং (2) JMS / AMQP দালাল: একই সময়ে ...
smeeb

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

উত্তর:


12

অভিনেতা মডেল

অভিনেতা মডেল হ'ল কম্পিউটার বিজ্ঞান কৌশল যা অ্যাপ্লিকেশন তৈরির জন্য যা প্রচুর পরিমাণে একযোগে গণনা এবং রাষ্ট্রীয় প্রক্রিয়াজাতকরণ পরিচালনা করে। এটি একমাত্র কৌশল নয় তবে এটি একটি খুব ভাল পরীক্ষিত, সহজ এবং নির্ভরযোগ্য পদ্ধতির মাধ্যমে অভিনেতাদের মধ্যে গণনা সরিয়ে নিয়ে যায় , যা বার্তাগুলির মাধ্যমে যোগাযোগ করে যে তারা একসাথে এবং ক্রমে প্রক্রিয়া করে।

আক্কা এমন একটি কাঠামো যা অভিনেতা মডেলকে কার্যকর করে এবং আপনাকে ইতিমধ্যে নির্মিত সমস্ত অবকাঠামো এবং বৈশিষ্ট্যগুলি (জাভাস্ক্রিপ্টের পরিবর্তে জিকুয়েরি ব্যবহার করার মতো) দিয়ে অভিনেতা সিস্টেমগুলি তৈরি করতে দেয়।

মেসেজিং

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

তুলনা

অভিনেতা মডেল এবং আক্কা কাঠামো হ'ল নিম্ন-স্তরের সরঞ্জাম যা বার্তাগুলির সারিগুলির মতো অ্যাপ্লিকেশন তৈরির দুর্দান্ত উপায় ।

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

যাইহোক, এটি মেসেজিং সিস্টেমগুলি অচল করে দেয়? একেবারে না. কেবলমাত্র আপনি নিজেরাই এই সমস্ত স্টাফ কোড করতে পারবেন তার অর্থ এই নয় যে আপনার প্রয়োজন, বিশেষত যখন কোনও অভিনেতার মডেল আপনার সমস্যার পক্ষে ভাল না হয় বা যোগাযোগের জন্য আপনার বিভিন্ন ভাষা, অ্যাপ্লিকেশন, বাহ্যিক এপিআই, অপারেটিং সিস্টেম, ডাটাবেস ইত্যাদির প্রয়োজন হয় when একে অপরের সাথে (তারা অভিনেতা সিস্টেম হোক বা না হোক)

আপনার যদি কেবল দুটি সিস্টেমের মধ্যে কিছু বার্তা প্রেরণ করতে হয় তবে একটি বার্তার সারি ব্যবহার করুন। আপনার যদি একই অ্যাপ্লিকেশনের মধ্যে স্কেবলযোগ্য স্টেটফুল প্রসেসিং এবং লো-লেটেন্সি মেসেজিংয়ের প্রয়োজন হয় তবে অভিনেতা মডেলটি ব্যবহার করুন। এগুলি উভয়ই সম্পূর্ণ ভিন্ন স্তরে বিদ্যমান এবং আপনি কীভাবে এগুলি ব্যবহার করবেন তা আপনার তৈরি করা সমাধানের উপর নির্ভর করে।


এই একই অভিনেতার মডেল বনাম মেসেজিংয়ের বিষয়ে এসও তে একটি দুর্দান্ত উত্তর রয়েছে: /programming/ বা-tibco

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