জেএমএস এবং এএমকিউপি - রেবিটএমকিউ


133

আমি কী জেএমএস এবং এটি কীভাবে এএমকিউপি পরিভাষার সাথে সংযুক্ত তা বোঝার চেষ্টা করছি। আমি জানি জেএমএস একটি এপিআই এবং এএমকিউপি একটি প্রোটোকল।

এখানে আমার অনুমান (এবং পাশাপাশি প্রশ্ন)

  • রাবিটএমকিউ এএমকিপি প্রোটোকল ব্যবহার করে (বরং এএমকিপি প্রোটোকল প্রয়োগ করে)
  • জাভা ক্লায়েন্টদের রাবিটএমকিউ সংযোগ / ব্যবহার করতে এএমকিউ প্রোটোকল ক্লায়েন্ট লাইব্রেরি ব্যবহার করা প্রয়োজন
  • জেএমএস এপিআই এখানে খেলতে আসে? জেএমএস এপিআই-র এএমকিপি ক্লায়েন্ট লাইব্রেরি ব্যবহার করা উচিত রাবিট এমকিউতে সংযোগ করতে?
  • সাধারণত আমরা জেএমএস ব্যবহার করি ম্যাসেজ ব্রোকার যেমন র‌্যাবিটএমকিউ, অ্যাক্টিভমিকিউ ইত্যাদির সাথে সংযোগ স্থাপনের জন্য? তবে এখানে AMQP এর পরিবর্তে ডিফল্ট প্রোটোকলটি কী ব্যবহার করা হয়?

উপরের কিছু বোবা হতে পারে। :-) তবে এর চারপাশে আমার মাথা গুটিয়ে দেওয়ার চেষ্টা করা হচ্ছে।


3
@ কেভিনরেভ: নির্বাচিত উত্তরটি কিছু মূল বিষয় যা ভুল করে তা ভুল। আমি একটি মন্তব্য যুক্ত করেছি যাতে আপনি এটি দেখতে পারেন।
2020

@ কেভিন র্যাভ আমি উত্তরটি সম্পাদনা করেছি N এখন বিতর্কিত অংশটি প্রতিস্থাপন করা হয়েছে ow এখন পুরো উত্তরটি পুরোপুরি ঠিক আছে
ফ্রিক

আমি জানি না কে আমার উত্তরটি সম্পাদনা করেছিলেন এবং এই অনুপযুক্ত বিন্দুটি দিয়েছেন যা 3 নম্বরে ছিল .. কারণ আমি ইতিমধ্যে কেভিন 2 পয়েন্টে যা বলছে তা জিজ্ঞাসা করেছি 2 ভোট দেওয়ার আগে বা পরামর্শ দেওয়ার আগে সর্বদা সাবধানে পড়ুন
ফ্রিক

1
এই নিবন্ধে জেএমএস বিভাগটি দেখুন। এটির একটি বিশদ বিবরণ রয়েছে saipraveenblog.wordpress.com/2014/12/08/…
java_geek

উত্তর:


118

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

যেমনটি আপনি জানেন:

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

এখন ( উইকিপিডিয়া থেকে ):

অ্যাডভান্সড মেসেজ কুইউনিং প্রোটোকল (এএমকিউপি) বার্তা-ভিত্তিক মিডওয়্যারের জন্য একটি ওপেন স্ট্যান্ডার্ড অ্যাপ্লিকেশন স্তর প্রোটোকল। এএমকিউপি-র সংজ্ঞায়িত বৈশিষ্ট্যগুলি হ'ল বার্তা ওরিয়েন্টেশন, কুইউং, রাউটিং (পয়েন্ট-টু-পয়েন্ট এবং প্রকাশনা এবং সাবস্ক্রাইব সহ), নির্ভরযোগ্যতা এবং সুরক্ষা।

এবং সবচেয়ে গুরুত্বপূর্ণ জিনিস (আবার উইকিপিডিয়া থেকে):

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

আপনার জানা উচিত কয়েকটি গুরুত্বপূর্ণ বিষয়:

  1. মনে রাখবেন যে এএমকিউপি একটি মেসেজিং প্রযুক্তি যা জেএমএস এপিআই প্রয়োগ করে না।
  2. জেএমএস এপিআই এবং এএমকিউপি হ'ল একটি প্রোটোকল to সুতরাং জেএমএসের ডিফল্ট প্রোটোকল কি তা বলতে কোনও বোধগম্য হয় না, অবশ্যই ক্লায়েন্ট অ্যাপ্লিকেশনগুলি কোনও ওয়েবলোগিক ওয়েব পরিষেবা চালু করার সময় সংযোগ প্রোটোকল হিসাবে এইচটিটিপি / এস ব্যবহার করে।
  3. জেএমএস হ'ল একটি এপিআই অনুমান। এটি কোনও প্রোটোকল ব্যবহার করে না। একজন জেএমএস সরবরাহকারী (যেমন অ্যাক্টিভ কিউ) জেএমএস এপিআই উপলব্ধি করতে কোনও অন্তর্নিহিত প্রোটোকল ব্যবহার করতে পারে। উদাহরণস্বরূপ: অ্যাপাচি অ্যাক্টিভএমকিউ নিম্নলিখিত যে কোনও প্রোটোকল ব্যবহার করতে পারে: এএমকিপি, এমকিউটিটি, ওপেনওয়্যার, আরইএসটি (এইচটিটিপি), আরএসএস এবং এটম, স্টম্প, ডাব্লুএসআইএফ, ডাব্লুএস বিজ্ঞপ্তি, এক্সএমপিপি। আমি আপনাকে জেএমএস ট্রান্সপোর্ট ব্যবহার করে সংযোগ প্রোটোকল হিসাবে পড়ার পরামর্শ দিই ।

শুভকামনা :)


20
I am not sure but I believe that AMQP also uses HTTP/S protocol but AMQP is enhacement is messaging protocol over HTTP: না। এটি সঠিক নয়। JMS uses simple HTTP but for RabbitMQ/ActiveMq, they uses enhanced protocol.: না। এটি সঠিক নয়। জেএমএস হ'ল একটি এপিআই অনুমান। এটি কোনও প্রোটোকল ব্যবহার করে না। একজন জেএমএস সরবরাহকারী (যেমন অ্যাক্টিভ কিউ) জেএমএস এপিআই উপলব্ধি করতে কোনও অন্তর্নিহিত প্রোটোকল ব্যবহার করতে পারে। উদাহরণস্বরূপ: অ্যাপাচি অ্যাক্টিভএমকিউ নিম্নলিখিত যে কোনও প্রোটোকল ব্যবহার করতে পারে: এএমকিপি, এমকিউটিটি, ওপেনওয়্যার, আরইএসটি (এইচটিটিপি), আরএসএস এবং এটম, স্টম্প, ডাব্লুএসআইএফ, ডাব্লুএস বিজ্ঞপ্তি, এক্সএমপিপি।
2020

আমি উত্তরটি সম্পাদনা করেছি ow এখন বিতর্কিত অংশটি প্রতিস্থাপন করা হয়েছে।
ফ্রিক

1
@ ব্রেন ওভারফ্লো আমি জানি না কে আমার উত্তরটি সম্পাদনা করেছে এবং এই অনুচিত পয়েন্টটি দিয়েছে যা 3 নম্বরে ছিলো .. কারণ আপনি যা বলছেন ২ নং পয়েন্টে আমি জিজ্ঞাসা করেছি 2 ভোট দেওয়ার আগে বা পরামর্শ দেওয়ার আগে সর্বদা সাবধানে পড়ুন
ফ্রিক

আমি ইতিমধ্যে সেই পিডিএফ থেকে স্টাফ যোগ করেছি যাতে আপনি অন্য কয়েকটি
লিঙ্কেও

43

এর ভিত্তি থেকে শুরু করা যাক।

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

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

উপরের মতানুসারে, জেএমএস এপিআইয়ের কঙ্কাল গ্রহণ করা হয়েছে, এটি র‌বিট এমকিউ এবং এর জাভা ক্লায়েন্ট এপিআইয়ের একটি উদাহরণ, একটি জেএমএস বাস্তবায়ন রবিট এমকিউ ব্যবহারের বিকাশ করা সম্ভব: একমাত্র যেটি করতে হবে, সেই সময়ে, এটি বাস্তবায়ন করছে জেএমএসের স্পেসিফিকেশন অনুসারে বিনিময় প্যাটার্ন (রাবিটএমকিউ-র ওভার)

কীটি হ'ল: জেএমএসের মতো এপিআইয়ের একটি সেট প্রযুক্তির কোনও বিষয়ই প্রয়োগ করা যায় না (এই ক্ষেত্রে, রাব্বিটএমকিউ)।


টিএলসি কি দাঁড়ায়?
mvmn

@ এমভিএমএম টিএলসি এর অর্থ টেলিযোগাযোগ। দয়া করে, [1] একবার দেখুন। [1] এলাক্রোনামস
পাওলো

15

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

অন্যদিকে AMQP হ'ল একটি মেসেজিং ক্লায়েন্ট এবং মেসেজিং সার্ভারের মধ্যে একটি প্রোটোকল। একটি জেএমএস ক্লায়েন্ট মেসেজিং সার্ভারের সাথে যোগাযোগের জন্য প্রোটোকল হিসাবে AMQP ব্যবহার করতে পারে। এবং এর মতো ক্লায়েন্ট রয়েছে।

http://www.lshift.net/blog/2009/03/16/openamqs-jms-client-with-rabbitmq-server


2
  • জেএমএস এপিআই এখানে খেলতে আসে? জেএমএস এপিআই-র এএমকিপি ক্লায়েন্ট লাইব্রেরি ব্যবহার করা উচিত রাবিট এমকিউতে সংযোগ করতে?

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

  • সাধারণত আমরা জেএমএস ব্যবহার করি ম্যাসেজ ব্রোকার যেমন র‌্যাবিটএমকিউ, অ্যাক্টিভমিকিউ ইত্যাদির সাথে সংযোগ স্থাপনের জন্য? তবে এখানে AMQP এর পরিবর্তে ডিফল্ট প্রোটোকলটি কী ব্যবহার করা হয়?

এটি আপনার জেএমএস এপিআইয়ের কনফিগারেশনের উপর নির্ভর করে। ActiveMQ জন্য, এটি হতে পারে AMQP কিন্তু এটি ডিফল্ট হল 'openwire'


1

আমি একটি কাগজ সুপারিশ করতে চাই, এটি আমাকে এএমকিপি এবং জেএমএসের মধ্যে পার্থক্য কী তা আরও ভালভাবে বুঝতে সাহায্য করেছিল।

কাগজের লিঙ্কটি এখানে: http://www.wmrichards.com/amqp.pdf


0

https://spring.io/understanding/AMQP

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

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


-1

আমার সন্দেহ হয় আপনি এই ডকুমেন্টেশনটি সন্ধান করতে পারেন যা বলে, কিছু অংশে:

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


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