জেএমএস / বার্তার কাতারে আসল বিশ্ব ব্যবহার? [বন্ধ]


182

আমি সবে জেএমএস এবং অ্যাপাচি অ্যাকটিএমকিউ সম্পর্কে আবিত পড়ছিলাম। এবং ভাবছিলাম যে বাস্তব জগত ব্যবহারের জন্য লোকেরা এখানে জেএমএস বা অনুরূপ বার্তা সারি প্রযুক্তি ব্যবহার করেছে?

উত্তর:


191

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

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

  • কোনও ধরণের তৃতীয় পক্ষের ব্যাক-এন্ড সিস্টেমে অর্ডার সঞ্চয় করুন (যেমন এসএপি)
  • তাদের অর্ডার দেওয়া হয়েছে তা জানাতে গ্রাহককে একটি ইমেল প্রেরণ করুন

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


হাই @ জোন আপনি এই ডকুমেন্টেশন ট্যাগটি দেখেছেন? stackoverflow.com/docamentation/jms/commit বিষয়টি কেবল সক্ষম করার জন্য তাদের কেবল একটি প্রতিশ্রুতিবদ্ধ সমর্থন দরকার, আমি মনে করি আপনি একজন হতে পারেন :) যিনি তাদেরকে জেএমএস-এ দুর্দান্ত দস্তাবেজ তৈরি করতে সক্ষম করেছেন
janmf

@ জেএমএস যেমন বুঝতে পেরেছেন তেমনি এন্টারপ্রাইজ ইন্টিগ্রেশন প্যাটার্নের প্রয়োগ?
ভালিক

না, খচ্চর বা উট হবে ...
জন

1
যদি কোনও সংখ্যক অ্যাপ্লিকেশন কাতারে থাকা বার্তাগুলি গ্রাস করতে পারে তবে কীভাবে ক্রেতারা কীভাবে জানতে পারে কখন পুরানো বার্তাগুলি মুছবেন?
তুলসী বাউরিক

95

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

অনেক রিসিভারের কাছ থেকে প্রেরকদের হ্রাস করার জন্য প্রকাশ / সাবস্ক্রাইব করা আরেকটি ভাল কৌশল। এটি একটি নমনীয় আর্কিটেকচার, কারণ গ্রাহকরা প্রয়োজন মতো আসতে পারেন এবং যেতে পারেন।


41
আপনার উত্তর পড়ার পরে আমি আমার কাতারে জেএমএস যুক্ত করতে যাচ্ছি 'আমি এই বছর কী শিখছি' :)
রোমান

আমাদের দিনে, জেএমএস স্পেক ব্যবহার করার পরিবর্তে, আমরা অ্যাসিনক্রোনাস পদ্ধতি কল ব্যবহার করতে পারি। আরও তথ্যের জন্য দেখুন: docs.oracle.com/javaee/6/tutorial/doc/gkkqg.html
জিও

3
এগুলি এক রকম নয়। অ্যাসিচ পদ্ধতি কলের সাথে কোনও গ্যারান্টিযুক্ত বিতরণ নেই; একাধিক শ্রোতার কাছে একবারে পাঠাতে পারে এমন বিষয়ের কোনও ধারণা নেই।
duffymo

75

আমি জেএমএসের জন্য অনেক আশ্চর্যজনক ব্যবহার করেছি:

  • গ্রাহক পরিষেবার জন্য ওয়েব চ্যাট যোগাযোগ।

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

  • ফাইলে লগিং ডিবাগ। উপরের মত একই, শুধুমাত্র নির্দিষ্ট টুকরা ফিল্টার ব্যবহার করে টেনে আনা হয়েছিল এবং সাধারণ লগিংয়ের জন্য ফাইলটিতে লগইন করা হয়েছিল।

  • সতর্ক। আবার উপরের লগিংয়ের জন্য অনুরূপ সেটআপ, নির্দিষ্ট ত্রুটিগুলি অনুসন্ধান করা এবং বিভিন্ন মাধ্যমে লোককে সতর্ক করা (ইমেল, পাঠ্য বার্তা, আইএম, গ্রোল পপ-আপ ...)

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

  • এবং বিলিং, অর্ডার প্রসেসিং, প্রভিশন, ইমেল উত্পন্নকরণের মতো বিলম্বিত ক্রিয়াকলাপের জন্য সাধারণ - সারিবদ্ধ লেনদেন ...

আপনি যেকোনো জায়গায় বার্তা বিতরণের গ্যারান্টি দিতে চান সেখানে এটি দুর্দান্ত।


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

19

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


আমি অ্যাসিঙ্ক্রোনাস প্রসেসিং চাই কারণ রেস্ট সার্ভিস এপিআই সিঙ্ক্রোনাস। এটি কীভাবে অ্যাক্টিভম্যাক এবং জেএমএস সহ করবেন to দয়া করে এতে সহায়তা করুন। stackoverflow.com/questions/19706788/… । আপনার সহায়তার জন্য এবং
কুমার

10

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

মেসেজিং একীকরণের জন্য একটি দুর্দান্ত সরঞ্জাম।


8

আমরা এটি অ্যাসিক্রোনাস প্রসেসিং শুরু করতে ব্যবহার করি যা আমরা কোনও বিদ্যমান লেনদেনের সাথে বাধা বা বিরোধ করতে চাই না।

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


1
এই সাহায্য করুন। stackoverflow.com/questions/19706788/… । আপনার সাহায্য এবং সময় দেওয়ার জন্য ধন্যবাদ।
কুমার

2
তবে অনুরোধটি অ্যাসিনক্রোনাস, কারণ নেটওয়ার্ক সমস্যার কারণে, আপনার বার্তাটি প্রেরণ করা যাবে না। এই সম্পর্কে কি? আপনি যখন জিনিস কিনতে চান, আপনার নাইটিকেশন অবশ্যই পাঠাতে হবে। তাই না?
গ্রেপ

8

আমি এটি আমার একাডেমিক প্রকল্পের জন্য ব্যবহার করেছি যা অ্যামাজনের মতোই অনলাইন খুচরা ওয়েবসাইট ছিল। জেএমএস নিম্নলিখিত বৈশিষ্ট্যগুলি পরিচালনা করতে ব্যবহৃত হয়েছিল:

  1. চালানটি এক অবস্থান থেকে অন্য জায়গায় ভ্রমণ করার সাথে সাথে গ্রাহকদের দেওয়া অর্ডারগুলির অবস্থান আপডেট করুন। এটি জেএমএস কিউতে ক্রমাগত বার্তা প্রেরণ দ্বারা করা হয়েছিল।
  2. চালানের ক্ষেত্রে বিলম্ব হওয়া এবং তারপরে গ্রাহকের ইমেল প্রেরণের মতো কোনও অস্বাভাবিক ঘটনার বিষয়ে সতর্কতা।
  3. যদি বিতরণটি তার গন্তব্যে পৌঁছে যায় তবে একটি বিতরণ ইভেন্ট পাঠানো হয়।

আমাদের প্রধান সার্ভারের সাথে সংযুক্ত একাধিক বাস্তবায়িত দূরবর্তী ক্লায়েন্ট রয়েছে। যদি সংযোগ উপলব্ধ থাকে তবে তারা মূল ডাটাবেস অ্যাক্সেস করতে বা তাদের নিজস্ব ডাটাবেস না ব্যবহার করে। ডেটা ধারাবাহিকতা পরিচালনা করতে, আমরা 2PC প্রক্রিয়া প্রয়োগ করেছি। এর জন্য, আমরা জেএমএসকে এই সিস্টেমগুলির মধ্যে বার্তাগুলি বিনিময় করার জন্য ব্যবহার করেছি অর্থাৎ একজন সমন্বয়কারী হিসাবে অভিনয় করে যারা কাতারে বার্তা পাঠিয়ে প্রক্রিয়া শুরু করবেন এবং অন্যরা আবার সেইভাবে কাতারে বার্তা পাঠিয়ে প্রতিক্রিয়া জানাবে। অন্যরা যেমন ইতিমধ্যে উল্লেখ করেছে, এটি পাব / সাব মডেলের অনুরূপ।


6

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

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



5

আমরা অনলাইন উদ্ধৃতি উত্পন্ন করতে বার্তা ব্যবহার করেছি


4

আমরা অবিশ্বাস্য নেটওয়ার্কগুলিতে বিপুল সংখ্যক দূরবর্তী সাইটে সিস্টেমের সাথে যোগাযোগের জন্য জেএমএস ব্যবহার করছি are নির্ভরযোগ্য বার্তাপ্রেরণের সাথে মিশ্রিত আলগা সংযোগটি একটি স্থিতিশীল সিস্টেমের ল্যান্ডস্কেপ উত্পাদন করে: প্রতিটি বার্তা পাঠানো হবে যত তাড়াতাড়ি এটি প্রযুক্তিগতভাবে সম্ভব, নেটওয়ার্কে বড় সমস্যাগুলি পুরো সিস্টেমের আড়াআড়িগুলিতে প্রভাব ফেলবে না ...

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