মাইক্রোসার্ভেসিগুলি আরইএসটি বা এএমকিউপি, যা ক্ষেত্রে


16

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

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

তবে কী আমার পরিষেবাগুলি তৈরির জন্য রেস্টটি সত্যিই একটি ভাল উপায়? কারণ আমি কোনও শেষ পয়েন্ট ব্যবহার করব না ... কোন ক্ষেত্রে অন্যটির চেয়ে ভাল?

আমি কখন এক বা অন্যটি ব্যবহার করব?

উত্তর:


10

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

  • কিছু বিকাশকারী কখনও এএমকিউপি ব্যবহার করেনি,

  • কিছু AMQP ব্যবহার করেছেন তবে প্রায়শই REST এবং SOAP এর সাথে বেশি পরিচিত,

  • কিছু ভাষার AMQP গ্রন্থাগারগুলি বিশেষত সোজা নয়,

  • পরিষেবাটির সাথে ম্যানুয়াল পরীক্ষাটি খুব সীমাবদ্ধ: আমি অ্যামাজন এস 3 এর জন্য যে কোনও অনুরোধ করতে সিআরএল ব্যবহার করতে পারি; আমি যদি এস 3 এর এএমকিউপি ভেরিয়েন্টের সাথে খেলতে চাই তবে আমার মেশিনে কী ইনস্টল করা উচিত ?

  • REST এবং SOAP ডিবাগ করা সহজ। আমি কেবল এইচটিটিপি এক্সচেঞ্জগুলি ট্র্যাক করি এবং সেগুলি বিশ্লেষণ করি। AMQP এক্সচেঞ্জগুলি ডিবাগ করার জন্য আমার কী কী সরঞ্জামগুলি ব্যবহার করা উচিত তা নিশ্চিত নয়।

এএমকিউপি দুর্দান্ত, তবে এটি ইভেন্টের উপর ভিত্তি করে এক্সচেঞ্জের খুব নির্দিষ্ট উদ্দেশ্যে করা হয়েছে। প্রযুক্তিগতভাবে এটিএমকিপি দিয়ে আরপিসি করা সম্ভব হলেও এটি এর প্রাথমিক উদ্দেশ্য নয়।

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

প্রাথমিক ক্রিয়াকলাপের জন্য রেস্ট রাখুন:

  • একটি পণ্য প্রাপ্তি,

  • একটি চালান সংরক্ষণ করা,

এবং সেই কার্যগুলির জন্য AMQP ব্যবহার করুন যেখানে বার্তাগুলি আসলে বোঝায়:

  • সেপ্টেম্বর থেকে সমস্ত চালানের প্রক্রিয়াজাতকরণ এবং প্রতিবেদনটি প্রদর্শিত হওয়ার জন্য প্রস্তুত হলে অ্যাপটি অবহিত করুন (প্রদত্ত যে অপারেশনটি সাধারণত দুই থেকে দশ মিনিট সময় নেয়),

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

  • ব্যাকআপগুলি আগ্রহী এমন প্রত্যেকের কাছে যেমন তথ্য সমর্থনকারী, ডাটাবেস প্রশাসক, মনিটরিং টিম, অ্যাপ্লিকেশন বিকাশকারীরা যা এই ডাটাবেস ব্যবহার করে তাদের জন্য ব্যাকআপগুলি দূষিত হয়েছিল এমন তথ্য প্রেরণ করা etc.

    অন্যদের মধ্যে এএমকিপি-র সুবিধা হ'ল অ্যাপ্লিকেশন পরিবর্তন না করে গ্রাহকগণকে যুক্ত করার ক্ষমতা যা ব্যাকআপগুলি ট্র্যাক করে এবং যখন কোনও দূষিতের সন্ধান করে তখন সতর্কতাটিকে ট্রিগার করে।


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


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

5

ব্যবহার উভয়.

জাভাস্ক্রিপ্ট, আইওএস ইত্যাদির সাথে আন্তঃব্যবহারের জন্য রেস্ট স্টাইল জেএসওন ওয়েব পরিষেবাদি দুর্দান্ত

এএমকিউপি দীর্ঘ চলমান প্রক্রিয়া, ইভেন্ট এবং মাইক্রোসার্চেসের অর্কেস্টেশনের জন্য দুর্দান্ত।

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

এএমপিকিউ ওয়েবসকেটগুলির উপরে খুব ভালভাবে প্রকাশিত কাজ করতে পারে, যা আপনি যদি এটিকে স্ক্রিন্ট করেন তবে এটি একটি রিস্টের শেষ পয়েন্টের মতো দেখতে বেশ সুন্দর দেখাবে।


1
"আপনি যদি এটির দিকে ঝুঁকেন" তবে হ্যাঁ, এটি দুর্দান্ত ছিল।
আইয়ান ডানকান

0

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

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


2
আমি একমত নই, যতদূর আমি উদ্বিগ্ন তাদের আন্তঃ উদ্দেশ্য রয়েছে; আপনার (সাধারণত) জনসাধারণের ইন্টারনেটের উপরে AMQP প্রকাশ করা উচিত নয়; এটিতে একটি জিনিসের জন্য অনেক কম লেখক সুবিধা রয়েছে এবং সাধারণত পাবলিক ইন্টারনেট ব্যবহারকারীরা তাদের ক্রিয়াকলাপগুলির কাছ থেকে প্রতিক্রিয়া চান। এই কারণে REST জনসাধারণের ইন্টারনেট ব্যবহারের জন্য উপযুক্ত to যদিও সবচেয়ে বড় পার্থক্যটি হ'ল এএমকিউপি অবিচ্ছিন্ন ( আচরণগুলি সমকালীন আচরণের মতো সম্ভব, তবে এটি এমকিউগুলির পক্ষে কী তা নয়), এবং REST সমকালীন হয় (হ্যাঁ প্রত্যাবর্তনটি 202অ্যাসিঙ্ক্রোনিকে হুকুম দিচ্ছে , তবে আপনি কেন তখন রেস্ট ব্যবহার করলেন? সম্ভবত এটি প্রকাশ্য কারণ)
জিমি হোফা

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

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

হ্যাঁ, এটি নিশ্চিতভাবে বোঝার জন্য; যদিও আমি তাঁর প্রশ্নটি অন্যভাবে পড়েছি: মনে হয় তিনি মাইক্রোসার্ভেসিস সম্পর্কে ধারণাটি পড়েছিলেন, এবং এএমকিপি বনাম আরএসইএস চয়ন করার প্রাসঙ্গিক কারণগুলি বুঝতে পারেন না। অভ্যন্তরীণভাবে আপনি যা খুশি তা ব্যবহার করতে পারেন তবে এখনও অভ্যন্তরীণভাবে এএমকিপি বনাম রিস্ট ব্যবহারের নির্দিষ্ট কারণ রয়েছে; যেসকল সংবিধান চায় সেগুলির অভ্যন্তরীণভাবে এএমকিউপি ব্যবহার করা উচিত, যে পরিষেবাগুলি সিঙ্ক্রোনাস হয় (একটি খাঁটি প্রসেসিং পরিষেবা মনে করুন: কাঁচা ডেটা ইন -> প্রক্রিয়াজাত ডেটা) পুনরায় বিশ্রাম হওয়া উচিত। উভয় আইপিসি প্রযুক্তির আলাদা সুবিধা এবং অসুবিধা রয়েছে, আপনি সেগুলি জানেন এবং আপনার উত্তরে সেগুলি তালিকাভুক্ত করা উচিত! :)
জিমি হোফা

0

এএমকিউপি পয়েন্ট-টু-পয়েন্ট যোগাযোগকেও সমর্থন করে (উদাহরণস্বরূপ, python-qpid-protonটিউটোরিয়ালটি দেখুন)। আপনি এটি ব্যবহার করে একটি রেস্ট্রফুল ইন্টারফেস প্রয়োগ করতে পারেন, আরএসটি !=এইচটিটিপি থেকে।

এএমকিউপি এইচটিটিপি-র চেয়েও অনেক ভাল পারফর্ম করে।

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