অ্যাক্টিভ কিউ কি জন্য ব্যবহৃত হয় - আমরা কি ডেটাবেস ব্যবহার করে মেসেজিং ধারণাটি প্রয়োগ করতে পারি?


116

আমি এটি সন্ধান করেছি এবং এটি 2 সিস্টেমের মধ্যে বার্তা প্রেরণ করত।
কিন্তু কেন? আপনি শুধু একটি ব্যবহার করবেন না কেন Database?
কিছু বৈশিষ্ট্য অবশ্যই ActiveMQআছে যা Databasesআছে না?


একই প্রশ্ন stackoverflow.com/q/2868800/460775
EMBarbosa

উত্তর:


178

এটি দুটি বিতরণ প্রক্রিয়াগুলির মধ্যে নির্ভরযোগ্যভাবে যোগাযোগ করতে ব্যবহৃত হয়।

হ্যাঁ, আপনি দুটি প্রক্রিয়ার মধ্যে কথোপকথনের জন্য একটি ডেটাবেসে বার্তা সংরক্ষণ করতে পারেন , তবে, বার্তাটি পাওয়ার সাথে সাথে আপনাকে DELETEবার্তাটি দিতে হবে, এর অর্থ একটি সারি INSERTএবং DELETEপ্রতিটি বার্তার জন্য।
আপনি যখন প্রতি সেকেন্ডে কয়েক হাজার বার্তাগুলি যোগাযোগ করার বিষয়টি স্কেল করার চেষ্টা করেন , তখন ডাটাবেসগুলি ঝরে পড়ে

ActiveMQঅন্যদিকে ম্যাসেজ-ওরিয়েন্টেড মিডল ওয়্যার [এমওএম] সেগুলি ব্যবহারের ক্ষেত্রে পরিচালনা করার জন্য নির্মিত।
তারা ধরে নিয়েছে যে স্বাস্থ্যকর সিস্টেমে থাকা বার্তাগুলি খুব দ্রুত মুছে ফেলা হবে এবং ওভারহেড এড়াতে অপ্টিমাইজেশন করতে পারে

এটি কোনও এসকিউএল কোয়েরি করে গ্রাহককে নতুন বার্তার জন্য পোল দেওয়ার পরিবর্তে গ্রাহকদের বার্তাগুলি ঠেলে দিতে পারে।
এটি সিস্টেমে প্রেরণ করা নতুন বার্তাগুলি প্রক্রিয়াজাতকরণের সাথে জড়িত বিলম্বকে আরও হ্রাস করে।


সুন্দর ব্যাখ্যা! দুটি বিতরণ প্রক্রিয়া একই প্রক্রিয়া হতে হবে? মানে একই অ্যাপ্লিকেশনটির দুটি উদাহরণ?
ম্যাভারিক 6

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

আপনি কি দয়া করে একবার দেখতে পারেন স্ট্যাকওভারফ্লো . com/ জিজ্ঞাসা / ৪৪857৯০০০/২ ?
gstackoverflow

67

ActiveMQ, বা সাধারণভাবে সমস্ত বার্তা ওরিয়েন্টেড মিডলওয়্যার (এমওএম) বাস্তবায়ন দুটি অ্যাপ্লিকেশন, বা একটি অ্যাপ্লিকেশনের ভিতরে দুটি উপাদানগুলির মধ্যে বার্তা প্রেরণের উদ্দেশ্যে তৈরি করা হয়েছে।

মূলত, এমওএম এবং ডাটাবেসগুলি একটি সাধারণ ভিত্তি ভাগ করে যাতে তারা পড়তে এবং লিখতে পারে এমন লেনদেনমূলক এবং ধ্রুবক ডেটা স্টোরেজ সরবরাহ করে।
বড় পার্থক্য হ'ল ব্যবহারের প্যাটার্ন - যেখানে ডাটাবেসগুলি খুব সাধারণ এবং একাধিক টেবিলের উপর জটিল অনুসন্ধানের জন্য অনুকূলিত হয়, এমওএম বার্তা পড়ার জন্য অনুকূলিত হয়, একবারে ফ্যাশন [কাতার] এর মতো ফিফোতে।

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

অবশ্যই, সেখানে আরো বিস্তারিত বৈশিষ্ট্য শুধুমাত্র ActiveMQ আছে, মত টেলিগ্রাম প্রোটোকল অনেক আছে OpenWire, STOMPএবং MQTT, JMS, EIPএকসঙ্গে অ্যাপাচি উটের, "অনুরোধ / উত্তর" এবং "প্রকাশ / সাবস্ক্রাইব", JMS গণনার জমকালো অনুষ্ঠান, ক্লাস্টারিং মত বার্তা ধরন (সঙ্গে " ব্রোকারদের নেটওয়ার্ক)), যা স্কেলিং এবং বিতরণ ইত্যাদির অনুমতি দেয় etc. ইত্যাদি
যদি আপনি আগ্রহী হন তবে আপনি সেগুলি কিছুটা পড়তে হবে কারণ সেগুলি বরং বড়।


25

ActiveMQদুর্দান্ত সময়সূচী সমর্থন রয়েছে যার অর্থ আপনি কোনও নির্দিষ্ট সময়ে আপনার বার্তা প্রেরণের সময়সূচী করতে পারেন ।

আমরা এই বৈশিষ্ট্যটি স্বাস্থ্যের যত্নের দৃশ্যে তাদের ওষুধের বিবরণগুলি আপলোড করে রোগীদের medicationষধের অনুস্মারক প্রেরণে ব্যবহার করেছি।


3
যে বেশ শান্ত. আমরা অনুরূপ অনুস্মারক উদ্দেশ্যে কোয়ার্টজ শিডিয়ুলিং লাইব্রেরি ব্যবহার করেছি।
সিদ্ধার্থ

আমরা Scheduled Jobsএকই উদ্দেশ্যে ওরাকল ডাটাবেস ব্যবহার করেছি।
ahmednabil88

15

আরডিবিএমএস সহ, আপনি যখন একটি সারি ডেটা প্রক্রিয়া করেন, আপনি সাধারণত একটি পতাকা আপডেট করেন যা নির্দেশ করে যে সারিটি প্রক্রিয়াজাত করা হয়েছে যাতে প্রক্রিয়া পুনরাবৃত্তি না হয়।

তবে, বার্তা সারি সহ, আপনাকে কেবল একটি বার্তা স্বীকার করতে হবে এবং পরবর্তী গ্রাহকরা পরবর্তীটির প্রক্রিয়া করবে।

পার্থক্যটি হ'ল UPDATEএকটি acknowledgeআরডিবিএমএসের স্ট্যাটমেন্টটি অ্যাকটিভেমিকের তুলনায় সত্যই ধীর অপারেশন ।


8

আমি নিম্নলিখিত জোর দিতে চাই:

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

পুনরুদ্ধার সমর্থন : কুইউজে থাকা বার্তাগুলি নিজে থেকেই রইল। কাতারে ব্যর্থ হলে বার্তাগুলি পুনরুদ্ধার করা যেতে পারে।

নির্ভরযোগ্য যোগাযোগ : ক্লায়েন্টের অনুরোধগুলি প্রক্রিয়া করে এমন একটি সিস্টেম বিবেচনা করুন। সাধারণ ক্ষেত্রে সিস্টেমটি প্রতি মিনিটে 100 টি অনুরোধ গ্রহণ করে। যখন অনুরোধের গড় গড় ছাড়িয়ে যায় তখন এই সিস্টেমটি অবিশ্বাস্য। সেক্ষেত্রে সারি অনুরোধগুলি পরিচালনা করতে পারে এবং এটি বার্তাটি ভঙ্গ না করে সিস্টেম থ্রুপুট এর উপর ভিত্তি করে ধাক্কা দিতে পারে।

অ্যাসিনক্রোনাস : ক্লায়েন্ট সার্ভার যোগাযোগ অ-ব্লক করা। একবার ক্লায়েন্ট সার্ভারে অনুরোধ পাঠালে এটি প্রতিক্রিয়া অপেক্ষা না করে অন্য ক্রিয়াকলাপ করতে পারে। যখন প্রতিক্রিয়ার এটি ক্লায়েন্ট পেয়েছে তখন যে কোনও সময় এটি পরিচালনা করতে পারে।


7

উইকিপিডিয়া থেকে

অ্যাপাচি অ্যাক্টিভএমকিউ একটি সম্পূর্ণ জাভা মেসেজ সার্ভিস (জেএমএস) ক্লায়েন্টের সাথে একত্রে জাভাতে লিখিত একটি ওপেন সোর্স বার্তা ব্রোকার। এটি "এন্টারপ্রাইজ বৈশিষ্ট্যগুলি" সরবরাহ করে যা এক্ষেত্রে একাধিক ক্লায়েন্ট বা সার্ভারের মাধ্যমে যোগাযোগকে উত্সাহিত করবে

আপনার প্রশ্নগুলি সম্পর্কিত:

আপনি কেন একটি ডাটাবেস ব্যবহার করবেন না?

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

আপনি যদি মেসেজিং সিস্টেমের পরিবর্তে ডাটাবেস ব্যবহার করেন তবে ডাটাবেসে বার্তা সন্নিবেশ করা এবং মুছে ফেলার বিষয়ে আমি @ হীরাম চিরিনো উত্তরের সাথে সম্পূর্ণরূপে সম্মত ।

এই নিবন্ধ এবং এই নিবন্ধ থেকে উপকারিতা

  1. এন্টারপ্রাইজ ইন্টিগ্রেশন : বিভিন্ন ভাষা এবং বিভিন্ন অপারেটিং সিস্টেমের সাথে নির্মিত অ্যাপ্লিকেশনগুলিকে একে অপরের সাথে সংহত করার মঞ্জুরি দেয়
  2. অবস্থানের স্বচ্ছতা : ক্লায়েন্ট অ্যাপ্লিকেশনগুলিতে পরিষেবা অ্যাপ্লিকেশনগুলি কোথায় রয়েছে তা জানা দরকার নেই
  3. নির্ভরযোগ্য যোগাযোগ - বার্তার প্রযোজক / গ্রাহকরা একই সময়ে উপলব্ধ থাকতে হবে না
  4. স্কেলিং - আরও পরিষেবা যুক্ত করে অনুভূমিকভাবে স্কেল করতে পারে
  5. অ্যাসিঙ্ক্রোনাস যোগাযোগ - কোনও ক্লায়েন্ট কোনও বার্তা ফায়ার করতে পারে এবং পরিষেবাটি কোনও প্রতিক্রিয়া না পাঠানো পর্যন্ত অবরুদ্ধকরণের পরিবর্তে অন্য প্রক্রিয়া চালিয়ে যেতে পারে;
  6. হ্রাস সংযুক্তকরণ - ক্লায়েন্ট এবং পরিষেবাদি দ্বারা অনুমানগুলি পূর্ববর্তী 5 টি সুবিধার ফলস্বরূপ হ্রাস পেয়েছে। কোনও পরিষেবা ক্লায়েন্টকে প্রভাবিত বা বিঘ্নিত না করে নিজের অবস্থান, প্রোটোকল এবং প্রাপ্যতা সহ নিজের সম্পর্কে বিশদ পরিবর্তন করতে পারে।

অ্যাক্টিভএমকিউতে অবশ্যই ডেটাবেসগুলি নেই?

এখানে অনেক. কটাক্ষপাত আছে ডকুমেন্টেশন আরো বিস্তারিত জানার জন্য পাতা। ব্যবহারের ক্ষেত্রেও একবার দেখুন ।

অ্যাক্টিভ কিউ এর ইন্টার্নালগুলি বুঝতে এই উপস্থাপনাটি একবার দেখুন ।


2

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

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